¿Por qué el comando "which" no le da la ruta correcta?

5

Ver la siguiente versión mvn. Me pregunto por qué el comando "which" no te da la información correcta.

LM-SIN-00676037:myproject haibliu$ mvn --version
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /usr/share/maven
Java version: 1.6.0_37, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8", arch: "x86_64", family: "mac"

LM-SIN-00676037:myproject haibliu$ which mvn
/usr/local/bin/mvn

LM-SIN-00676037:myproject haibliu$ /usr/local/bin/mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: /usr/local/Cellar/maven/3.0.4/libexec
Java version: 1.6.0_37, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8", arch: "x86_64", family: "mac"

Solo para aclarar: / usr / bin / mvn viene con mi Max OS X, Mountain Lion. Y utilicé Homebrew para instalar / usr / local / bin / mvn. Después de eso, cambié el orden de PATH en / etc / paths.

LM-SIN-00676037:myproject haibliu$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
LM-SIN-00676037:myproject haibliu$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Eso es todo lo que hice. Y estoy usando bash shell.

    
pregunta haibin 05.12.2012 - 17:29

2 respuestas

5

que es un programa externo, que intenta determinar cómo tu shell resolverá un comando del $ PATH existente, pero es posible que se equivoque.

Si estás usando bash como tu shell, usa el comando incorporado "bash" de bash para que el shell te diga cómo resolverá ese comando:

$ which mvn
/usr/bin/mvn
$ type mvn
mvn is /usr/bin/mvn
$ type type
type is a shell builtin
$ type which
which is hashed (/usr/bin/which)

Aquí puede ver que en mi entorno coinciden / usr / bin / which y el tipo de shell incorporado. En el tuyo parece que no lo hacen, aunque tengo curiosidad de por qué no lo hacen. ¿Quizás tienes cambios en PATH que no fueron exportados? Intente "exportar RUTA" y luego "cuál mvn" otra vez.

    
respondido por el Tim B 05.12.2012 - 17:50
0

¿Qué hay en tu $PATH ? y lo que es más importante, ¿dónde instaló mvn ? Recuerdo que cuando intenté usar MacPorts Phyton 2.7.3 tuve que agregar /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python al comienzo del $PATH para which para darme el pitón correcto. Para obtener el camino correcto tuve que agregar esto en ~/.bash_profile :

source ~/.bashrc

# MacPorts Installer addition on 2010-03-17_at_21:13:03: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:$PATH

por lo tanto, dependiendo de lo que tengas que editar la ruta de acceso de acuerdo con donde mvn 3.0.3 es tener el puño.

    
respondido por el user1256923 05.12.2012 - 17:54

Lea otras preguntas en las etiquetas