YUM 在 RHEL 7.9 VM 上损坏:/usr/bin/python:错误的解释器:没有这样的文件或目录

YUM 在 RHEL 7.9 VM 上损坏:/usr/bin/python:错误的解释器:没有这样的文件或目录

我只是在我的家庭实验室中使用 RHEL 的免费版本,因此没有 Red Hat 的支持。 CentOS 的相同修复应适用于此处...

我什至不应该尝试升级 Python3,但事后看来(一如既往)20/20。这是我尝试使用 YUM 时得到的结果:

[root@RHEL7 ~]# yum update
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
[root@RHEL7 ~]# yum
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

通过阅读有关此错误的信息,我似乎必须完全重新安装 Python2 和/或 3,但我想知道是否还有其他修复方法。 Python2 和 Python3 实际上仍然可以正常工作(至少在 REPL 中):

[root@RHEL7 ~]# python3
Python 3.6.8 (default, Aug 13 2020, 07:46:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
[root@RHEL7 ~]# python2
Python 2.7.5 (default, Aug 13 2020, 02:51:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

这是当我尝试将 Python2 设置为默认值时得到的结果(没有返回,问题仍然存在):

[root@RHEL7 bin]# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
[root@RHEL7 bin]#
[root@RHEL7 bin]# yum
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

奇怪的是,Python2 似乎已经被别名化了,python但是当我尝试运行时python什么也没发生......?符号链接肯定已经存在:

[root@RHEL7 bin]# pwd
/usr/bin
[root@RHEL7 bin]# python
-bash: python: command not found
[root@RHEL7 bin]# ln -s python2 python
ln: failed to create symbolic link ‘python’: File exists
[root@RHEL7 bin]# ls -l python
lrwxrwxrwx 1 root root 24 Jul  9 11:30 python -> /etc/alternatives/python

答案1

嗯找不到/usr/bin/python。它应该看起来像这样:

[root@centos7 ~]# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Jul  9 11:08 /usr/bin/python -> python2
[root@centos7 ~]#

如果 python2 本身仍然存在,但符号链接本身丢失,请使用以下命令恢复:

[root@centos7 ~]# cd /usr/bin
[root@centos7 bin]# ln -s python2 python
[root@centos7 bin]# ls -l python
lrwxrwxrwx. 1 root root 7 Jul  9 11:10 python -> python2
[root@centos7 bin]#

请注意,Romeo 的解决方案可能会解决该问题,但它会使其看起来与原始符号链接略有不同。对于您的家庭实验室来说,这可能并不重要。

[root@centos7 ~]# update-alternatives --install /usr/bin/python python /usr/bin/                                                                                                                        python2.7 1
[root@centos7 ~]# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 24 Jul  9 11:11 /usr/bin/python -> /etc/alternatives/python
[root@centos7 ~]# ls -l /etc/alternatives/python
lrwxrwxrwx. 1 root root 18 Jul  9 11:11 /etc/alternatives/python -> /usr/bin/python2.7
[root@centos7 ~]#

答案2

看来您丢失了 .python使用的“可执行文件” yum。所以你需要的是重新创建它:

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

这会将 python 2.7(RHEL 7 中的默认值)设置为首选版本。

相关内容