Mac OS X'te “whereis” ve “hangileri” farklı yollar döndürüyor


27

Varsayılan OpenSSL 9.8'i (Mac OS X 10.6.8) aldım ve en yeni sürümü (1.0.1) MacPorts ( sudo port install openssl) aracılığıyla yüklemeye karar verdim .

Bunlar arasında konsol çıkışı vardır ki ve whereis komutları:

$ whereis openssl
/usr/bin/openssl

(bu varsayılan sistemin bir tanesidir)

$which openssl
/opt/local/bin/openssl

(bu MacPorts aracılığıyla yüklenir)

$ openssl version
OpenSSL 1.0.1c 10 May 2012

(PATH'ta mac portunun sürümü var)

Neden farklı yolları için döndürülür whereisve whichve bu sorun olur mu? Eşit sonuç elde etmenin bir yolu var mı?

Yanıtlar:


31

Manpage'de whereisaçıkça yazıyor (benimkine vurgu yapıyor):

Whereis yardımcı programı , belirtilen programlar için standart ikili dizinleri kontrol eder ve bulduğu yolların çıktısını alır.

Aranan yol, `` user.cs_path '' dizesi için sysctl (8) yardımcı programının döndürdüğü dizedir

Bunun aksine, whichbir ikili dosyasının kullanıcı yolunda nerede olduğunu kontrol etmek için yaygın olarak kullanılan araçtır.

Hangi yarar komut adlarının bir listesini alır ve çalıştırmak olurdu her yürütülebilir dosyasının yolunu arar bu komutlar aslında çağrılan edilmiş vardı .

Beri bu senin farkını açıklıyor /opt/local/bindeğil sistem genelinde olduğu "standart" yol-sonuçta MacPorts tamamen isteğe bağlıdır kurulum-ve sysctlyalnızca vardır /usr/bin:/bin:/usr/sbin:/sbinonun içinde user.cs_pathbaşına varsayılan.

Genel olarak, kullanmak yerine bir ikiliyi bulmak whichya which -ada bulmak whereis.


Sen teorik değiştirebilir user.cs_pathyoluyla

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

ama bunun iyi bir fikir olup olmadığını bilmiyorum.


Teşekkürler, "Whereis yardımcı programı standart ikili dizinleri kontrol ediyor " - cevap budur! Küçük şöhretin sebebini cevaplayamadınız mı? ((
jctim

Endişelenmeyin, yakında yakında daha fazla itibar göreceksiniz. Süper Kullanıcıya Hoşgeldiniz! :)
slhck

OS X'te psql ile aynı sorunu yaşayın - ne yazık ki user.cs_path yazılabilir değil. Çözümüme daha da yaklaşıyorum, böyle faydalı bir cevap için teşekkürler!
user208769
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.