4 votos

¿Por qué 'que' señalar un binario diferente?

Tengo 2 versiones de curl instalado en mi sistema, uno con http2 de apoyo.

Pensé que podría usar which a punto para el binario, pero no parece funcionar de la manera que yo esperaba.

$ 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á apuntando a mi construidos localmente binario /usr/local/bin/curl pero el comando que se está ejecutando el paquete binario /usr/bin/curl

No tengo un alias para curl, por lo que pueden por favor alguien que me explique por qué esto es así? Y qué comando debo correr para encontrar la ruta de acceso real a curl, que sé que es /usr/bin/curl

2voto

user264781 Puntos 276

Si ejecutas:

echo $PATH

Vas a conseguir algo similar a:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Como se puede ver, /usr/local/bin tiene una prioridad más alta, así que bash encontrará su versión localmente instalada de enrollamiento primero y dejar de buscar más.

Puede cambiar este comportamiento mediante la edición de PATH entorno variable, por ejemplo (en .profile ):

PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: