Debian 终端缓存可执行路径?

Debian 终端缓存可执行路径?

看来 Debian 6.0.2.1 终端会缓存可执行文件的路径,从而避免在同一终端上运行新的可执行文件。我想知道这是否是一项功能,如果是,如何更改它。

这是我尝试过的一个示例场景。系统已预装 python 2.6.6。我打开一个新终端并运行“python”。现在,我下载了 python 2.7.2,并执行了 make install。我验证了安装成功,并且 PATH 在 /usr/bin(python 2.6.6 所在的位置)之前有 /usr/local/bin。现在,当我运行“python”时,它始终执行 python 2.6.6。示例屏幕截图:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ which python
/usr/local/bin/python
$ `which python`
Python 2.7.2 (default, Aug  8 2011, 14:21:09) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

现在,我打开一个新终端并执行 python。它运行正常并运行较新的 2.7.2 python。

有什么建议可以将此“功能”更改为正常工作模式?

答案1

安装后,有时需要hash -r在某些 shell 中给出命令,或者rehash新的可执行路径才能生效。

相关内容