看来 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
新的可执行路径才能生效。