Một trong số đó


27

Tôi đã có OpenSSL 9.8 mặc định (Mac OS X 10.6.8) và quyết định cài đặt phiên bản mới nhất (1.0.1) qua MacPorts ( sudo port install openssl).

Đây là giao diện điều khiển đầu ra của đówhereis lệnh:

$ whereis openssl
/usr/bin/openssl

(đây là hệ thống mặc định)

$which openssl
/opt/local/bin/openssl

(cái này được cài đặt qua MacPorts)

$ openssl version
OpenSSL 1.0.1c 10 May 2012

(có phiên bản cổng mac trong PATH)

Tại sao các đường dẫn khác nhau được trả về whereiswhich, và điều này có ổn không? Có cách nào để có được kết quả như nhau?

Câu trả lời:


31

Trong trang chủ của whereisnó, nó nói rõ ràng (nhấn mạnh của tôi):

Tiện ích whereis kiểm tra các thư mục nhị phân tiêu chuẩn cho các chương trình đã chỉ định, in ra các đường dẫn của bất kỳ nó tìm thấy.

Đường dẫn được tìm kiếm là chuỗi được trả về bởi tiện ích sysctl (8) cho chuỗi `` user.cs_path ''

Trái ngược với điều đó, whichlà công cụ thường được sử dụng để kiểm tra vị trí nhị phân cho đường dẫn người dùng của bạn.

Tiện ích này lấy danh sách các tên lệnh và tìm kiếm đường dẫn cho mỗi tệp thực thi sẽ được chạy nếu các lệnh này thực sự được gọi .

Điều đó giải thích cho sự khác biệt của bạn, vì rốt cuộc /opt/local/binkhông phải là một đường dẫn "tiêu chuẩn" trên toàn hệ thống, MacPorts là một bản cài đặt hoàn toàn tùy chọn và sysctlchỉ có /usr/bin:/bin:/usr/sbin:/sbintrong user.cs_pathmỗi mặc định.

Nói chung, gắn bó whichhoặc which -ađể tìm một nhị phân hơn là sử dụng whereis.


Về lý thuyết bạn có thể thay đổi user.cs_paththông qua

sysctl -w user.cs_path=/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

nhưng tôi không biết nếu đó là một ý tưởng tốt.


Cảm ơn, bạn đã đánh giá cao rằng "Tiện ích whereis kiểm tra các thư mục nhị phân tiêu chuẩn " - đó là câu trả lời! không thể bỏ phiếu cho bạn trả lời nguyên nhân của danh tiếng nhỏ ((
jctim

Đừng lo lắng, bạn chắc chắn sẽ sớm có được danh tiếng hơn. Chào mừng bạn đến với Siêu người dùng! :)
slhck

Có cùng một vấn đề với psql trên OS X - thật không may user.cs_path không thể ghi được. Đến gần hơn với giải pháp của tôi, cảm ơn vì một câu trả lời hữu ích như vậy!
dùng208769
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.