RHEL 7.9 VM에서 YUM이 손상됨: /usr/bin/python: 잘못된 해석기: 해당 파일 또는 디렉터리가 없음

RHEL 7.9 VM에서 YUM이 손상됨: /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의 기본값)이 기본 버전으로 설정됩니다.

관련 정보