python:命令未找到错误

时间:2014-06-03 10:33:52

标签: python linux redhat

有人搞砸了redhat服务器上的符号链接,我现在不能使用python,我尝试了很多东西。当我尝试运行python时,我得到了python:command not found。

我有这个信息:

alternatives --display python
python - status is auto.
link currently points to /usr/bin/python2.4
/usr/bin/python2.4 - priority 1
Current `best' version is /usr/bin/python2.4.

当我尝试更改ln -sf /usr/bin/python /usr/bin/python2.4时,我会收到以下信息:

ln: accessing `/usr/bin/python2.4': Too many levels of symbolic links

当我删除/usr/bin/python时,它也没有帮助。

我也用这些命令来填充它:

readlink /usr/bin/python
/etc/alternatives/python

readlink /usr/bin/python2.4
/usr/bin/python

readlink python
/usr/bin/python

看起来一切都应该正常。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为你有ln命令向后。您收到此错误的原因是因为您创建的链接python2.4指向python,但python是指向python2.4的链接。在ln命令中反转您的源和目标,它应该可以工作。

我从未使用过替代品,但你可能不应该手动编辑这些符号链接。

修改

正如我在评论中提到的,你可能已经覆盖了原始的python二进制文件。在RHEL5系统上,我可以访问/usr/bin目录的内容:

$ ls -l /usr/bin/python*
-rwxr-xr-x 2 root root 8304 Oct 23  2012 /usr/bin/python
lrwxrwxrwx 1 root root    6 Jan 11  2013 /usr/bin/python2 -> python
-rwxr-xr-x 2 root root 8304 Oct 23  2012 /usr/bin/python2.4

如果你查看两个非符号链接文件的inode,你会发现它们是同一个文件:

$ stat -c %i /usr/bin/python
3290164
$ stat -c %i /usr/bin/python2.4
3290164

所以你需要找到原始的python二进制文件然后我们可以弄清楚如何以原始方式链接它们。而且,我从来没有使用过替代方案,所以也许它会有一些移动二进制文件的魔力,但我对此表示怀疑。