Rhel

YUM 在 RHEL 7.9 VM 上損壞:/usr/bin/python:錯誤的解釋器:沒有這樣的文件或目錄

  • July 9, 2022

我只是在我的 homelab 中使用免費版本的 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

百勝找不到/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 ~]#

引用自:https://unix.stackexchange.com/questions/709186