有人搞砸了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
看起来一切都应该正常。有什么建议吗?
答案 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二进制文件然后我们可以弄清楚如何以原始方式链接它们。而且,我从来没有使用过替代方案,所以也许它会有一些移动二进制文件的魔力,但我对此表示怀疑。