¿Qué determina la ruta donde el sistema busca un archivo?

¿Qué determina la ruta donde el sistema busca un archivo?

estoy tratando de conseguirnpmtrabajar. En el proceso, parece que tengo dos versiones instaladas: una corrupta instalada en ~/bin y otra que acabo de compilar y ejecutar make installpara colocarla /usr/local/bin/npm.

Entonces, moví toda la carpeta ~/bin a ~/old/bin... pero aún así, cuando ejecuto npmlas búsquedas del sistema en ~/bin:

$ which npm
/usr/local/bin/npm
$ alias npm
-bash: alias: npm: not found
$ npm
-bash: /home/ubuntu/bin/npm: No such file or directory
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$

¿Qué hace que Ubuntu busque npm en ~/bin/npm? Estoy usando Ubuntu 11.10. No sé si la pregunta es específica de Ubuntu o no, se puede mover a Askubuntu si es necesario.

Veo ~/bin en la RUTA, pero hasta donde tengo entendido, esto solo significa que si npm estuviera presente en ~/bin entonces lo habría usado... pero ¿por qué bash insiste en buscarlo específicamente allí? ¿Por qué no lo encuentra /usr/local/bin/npm, aunque el whichcomando sí lo encuentra?

Respuesta1

Es probable que el shell haya codificado la ubicación previamente conocida del ejecutable. Restablecer el caché del shell hash -rdebería solucionar el problema.

Si no desea restablecer todo el caché, puede eliminar la entrada individual para npmusar hash -d npm.

información relacionada