"Де" і "які" повертають різні шляхи в Mac OS X


27

Я отримав OpenSSL 9.8 за замовчуванням (Mac OS X 10.6.8) і вирішив встановити нову версію (1.0.1) через MacPorts ( sudo port install openssl).

Це консольний висновок яких і WhereIs команди:

$ whereis openssl
/usr/bin/openssl

(це стандартна система)

$which openssl
/opt/local/bin/openssl

(це встановлено через MacPorts)

$ openssl version
OpenSSL 1.0.1c 10 May 2012

(у PATH є версія порта Mac)

Чому різні шляхи повертаються до whereisі which, і це нормально? Чи можна отримати рівні результати?

Відповіді:


31

На сторінці сторінки whereisчітко сказано (моє наголос):

Утиліта thatis перевіряє стандартні бінарні каталоги для зазначених програм, друкуючи шляхи будь-яких знайдених.

Шлях, що шукається - це рядок, повернута утилітою sysctl (8) для рядка `` user.cs_path ''

На противагу цьому, whichце інструмент, який зазвичай використовується для перевірки, де бінарний шлях для вашого користувача.

Яка утиліта приймає список імен команд і шукає шлях до кожного виконуваного файлу, який запускався, якби ці команди були фактично викликані .

Це пояснює вашу різницю, так як /opt/local/binце не в масштабі всієї системи «стандарт» шляхом в кінці кінців, MacPorts є обов'язковим встановленням, і sysctlмає тільки /usr/bin:/bin:/usr/sbin:/sbinв його user.cs_pathпо - замовчуванням.

Загалом, дотримуйтесь whichабо which -aшукайте двійкове, а не використовуйте whereis.


Ви можете теоретично змінити user.cs_pathчерез

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

але я не знаю, чи це така гарна ідея.


Дякую, ви наголосили, що "Утиліта whereis перевіряє стандартні бінарні каталоги " - це відповідь! не могли голосувати за вас відповісти на причину малої репутації ((
jctim

Не хвилюйтеся, незабаром ви напевно отримаєте більше репутації. Ласкаво просимо до Супер Користувача! :)
slhck

У вас однакова проблема з psql в OS X - на жаль, користувач.cs_path не може бути записаний. Однак наблизившись до мого рішення, дякую за таку корисну відповідь!
користувач208769
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.