"Whereis" e "which" restituiscono percorsi diversi in Mac OS X.


27

Ho il OpenSSL 9.8 predefinito (Mac OS X 10.6.8) e ho deciso di installare la versione più recente (1.0.1) tramite MacPorts ( sudo port install openssl).

Questi sono output della console di cui e dove sono i comandi:

$ whereis openssl
/usr/bin/openssl

(questo è quello di sistema predefinito)

$which openssl
/opt/local/bin/openssl

(questo è installato tramite MacPorts)

$ openssl version
OpenSSL 1.0.1c 10 May 2012

(c'è la versione di mac port in PATH)

Perché vengono restituiti percorsi diversi per whereise which, e va bene? C'è un modo per ottenere risultati uguali?

Risposte:


31

Nella manpage di whereis, si dice chiaramente (enfatizzare il mio):

L'utility whereis controlla le directory binarie standard per i programmi specificati, stampando i percorsi di tutti quelli che trova.

Il percorso cercato è la stringa restituita dall'utilità sysctl (8) per la stringa `` user.cs_path ''

Contrariamente a ciò, whichè lo strumento comunemente usato per verificare dove si trova un binario per il percorso dell'utente.

L'utilità quale prende un elenco di nomi di comandi e cerca il percorso per ogni file eseguibile che verrebbe eseguito se questi comandi fossero stati effettivamente richiamati .

Questo spiega la tua differenza, dal momento che /opt/local/binnon è un sistema a livello di percorso-dopo "standard" tutto, MacPorts è completamente opzionale installazione-e sysctlha solo /usr/bin:/bin:/usr/sbin:/sbinnella sua user.cs_pathper impostazione predefinita.

In generale, attenersi a whicho which -aper trovare un file binario anziché utilizzare whereis.


È teoricamente possibile modificare user.cs_pathattraverso

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

ma non so se sia una buona idea.


Grazie, hai sottolineato che "L'utility whereis controlla le directory binarie standard " - questa è la risposta! non ho potuto votare per la tua risposta a causa della scarsa reputazione ((
jctim

Non preoccuparti, presto otterrai presto più reputazione. Benvenuto in Super User! :)
slhck,

Hanno lo stesso problema con psql su OS X - purtroppo user.cs_path non è scrivibile. Mi sto avvicinando alla mia soluzione, grazie per una risposta così utile!
user208769
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.