Tenho 2 versões do curl instaladas no meu sistema, uma com suporte a http2.
Achei que poderia usar which
para apontar para o binário, mas não parece funcionar da maneira que espero.
$ curl --http2 -I https://something.example.com
curl: (1) Unsupported protocol
$ which curl
/usr/local/bin/curl
$ /usr/local/bin/curl --http2 -I https://something.example.com
HTTP/2 200
server: nginx/1.10.0 (Ubuntu)
date: Thu, 08 Jun 2017 20:55:09 GMT
content-length: 928
last-modified: Thu, 08 Jun 2017 19:43:10 GMT
cache-control: public, max-age=31536000
accept-ranges: bytes
which
está apontando para meu binário construído localmente, /usr/local/bin/curl
mas o comando real está executando o pacote binário/usr/bin/curl
Eu não tenho um alias para curl, então alguém pode me explicar por que isso acontece? E qual comando devo executar para encontrar o caminho real para curl, que eu sei é/usr/bin/curl
Responder1
Se você executar:
echo $PATH
Você obterá algo semelhante a:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Como você pode ver, /usr/local/bin
tem uma prioridade mais alta, então o bash encontrará primeiro a versão do curl instalada localmente e parará de pesquisar mais.
Você pode alterar esse comportamento editando PATH
a variável de ambiente, por exemplo (in .profile
):
PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin