Eu tenho o OpenSSL 9.8 padrão (Mac OS X 10.6.8) e decidi instalar a versão mais recente (1.0.1) via MacPorts ( sudo port install openssl
).
Estas são saídas do console dequaleOnde écomandos:
$ whereis openssl
/usr/bin/openssl
(este é o padrão do sistema)
$which openssl
/opt/local/bin/openssl
(isso é instalado via MacPorts)
$ openssl version
OpenSSL 1.0.1c 10 May 2012
(existe a versão da porta mac no PATH)
Por que caminhos diferentes são retornados para whereis
e which
e está tudo bem? Existe alguma maneira de obter resultados iguais?
Responder1
Na página de manual do whereis
, diz claramente (ênfase minha):
O utilitário whereis verifica odiretórios binários padrãopara os programas especificados, imprimindo os caminhos de qualquer um que encontrar.
O caminho pesquisado é a string retornada pelo utilitário sysctl(8) para a string ``user.cs_path''
Ao contrário disso, which
é a ferramenta comumente usada para verificar onde está um binário para o caminho do seu usuário.
O utilitário which pega uma lista de nomes de comandos e pesquisa o caminho de cada arquivo executável que seria executadose esses comandos realmente tivessem sido invocados.
Isso explica sua diferença, já que /opt/local/bin
não é um caminho "padrão" para todo o sistema - afinal, MacPorts é uma instalação totalmente opcional - e sysctl
só tem /usr/bin:/bin:/usr/sbin:/sbin
como user.cs_path
padrão.
Em geral, atenha-se which
ou which -a
encontre um binário em vez de usar whereis
.
Você pode teoricamente mudar user.cs_path
através
sysctl -w user.cs_path=/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
mas não sei se isso é uma boa ideia.