Tengo el OpenSSL 9.8 predeterminado (Mac OS X 10.6.8) y decidí instalar la versión más reciente (1.0.1) a través de MacPorts ( sudo port install openssl
).
Estas son salidas de consola decualydónde escomandos:
$ whereis openssl
/usr/bin/openssl
(este es el sistema predeterminado)
$which openssl
/opt/local/bin/openssl
(esto se instala a través de MacPorts)
$ openssl version
OpenSSL 1.0.1c 10 May 2012
(hay la versión del puerto mac en PATH)
¿Por qué se devuelven rutas diferentes para whereis
y which
? ¿Está bien? ¿Hay alguna manera de obtener resultados iguales?
Respuesta1
En la página de manual de whereis
, dice claramente (el énfasis es mío):
La utilidad Whereis comprueba eldirectorios binarios estándarpara los programas especificados, imprimiendo las rutas de cualquiera que encuentre.
La ruta buscada es la cadena devuelta por la utilidad sysctl(8) para la cadena ``user.cs_path''.
Al contrario de eso, which
es la herramienta comúnmente utilizada para verificar dónde está un binario para la ruta de su usuario.
La utilidad Which toma una lista de nombres de comandos y busca la ruta de cada archivo ejecutable que se ejecutaría.si estos comandos realmente hubieran sido invocados.
Eso explica su diferencia, ya que /opt/local/bin
no es una ruta "estándar" para todo el sistema (después de todo, MacPorts es una instalación completamente opcional) y sysctl
solo tiene /usr/bin:/bin:/usr/sbin:/sbin
su user.cs_path
configuración predeterminada.
En general, utilice which
o which -a
busque un binario en lugar de utilizar whereis
.
Teóricamente puedes cambiar user.cs_path
a través de
sysctl -w user.cs_path=/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
pero no sé si es tan buena idea.