CentOS Logo

CentOS 7 Python 3 설치 후 yum 에러 해결

In Server by FlatureLeave a Comment

CentOS Logo

CentOS 7 Python 3 설치 후 yum 에러 해결 포스트입니다.
저는 모든 리눅스 OS를 CentOS 7을 사용중입니다.
다른 OS에서도 같은 현상이 발생하는지는 모르겠습니다.
우선 제가 겪은 버전에서의 에러에 대해 공유드리고 해결 방법에 대해 공유드리고자 합니다.

오랜만에 공부할게 있어 GCP에 들어가서 죽어있던 VM을 켠 후에 접속하여 yum 업데이트부터 진행하려고 했는데 아래와 같은 에러가 발생하였습니다.

$ yum update
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

뭔가해서 검색해보니 많은 분들이 겪고 있는 상황이라 쉽게 원인을 찾을 수 있었습니다.

CentOS에서 기본적으로 사용하고 있는 Python 버전은 2버전인데, 3버전을 설치하는 과정을 밟으면서 python의 Symbolic Link까지 바꾸는 작업을 했기 때문이었습니다.
모든 동작을 2(19.6월 기준) 버전에서 동작하는 CentOS에서 저 Link를 따라가보니 3버전이라 Syntax Error가 발생하는 것이었습니다.

이 문제를 해결하기 위해서는 2가지 방법이 있습니다.

  1. Symbolic Link 원복
  2. /usr/bin/yum 파일 수정

대부분 2번의 방법으로 해결을 진행합니다.
저 또한 이번 포스트에서 공유드리고자 하는 방법도 2번에 해당하는 방법인데요.
개인적으로 오늘 해결해본 이후 느낀바, 1번 방법으로 진행하는게 좋을 것 같습니다.

그 이유는 2번 방법으로 해결하면 yum 기능을 사용할 수 있지만, 대부분의 서비스에서 python을 바라보고 있는데, 아직 3버전을 지원하지 않는 서비스들이 있어서 yum update시 롤백되는 서비스들이 몇개 보였습니다.

아직은 3버전에 해당하는 Link를 별개로 가져가면서 진행하는게 좋을 것 같습니다.
그럼 개인적인 견해는 여기서 마치고 2번 방법을 소개해드리겠습니다.

/usr/bin/yum 파일 수정

# vi /usr/bin/yum

#!/usr/bin/python
==> //해당 파일 맨 윗줄을 아래와 같이 수정해줍니다.
#!/usr/bin/python2.7

위에 적어둔 것처럼 python이라고 되어있는 부분을 2.7까지 명시해주면 문제가 해결됩니다.

하지만, 위 조치만으로 yum을 온전히 사용할 순 없었습니다.
발생하던 syntax error는 해결이 되었지만, 그 이후에 또 다른 에러가 발생하였습니다.

Downloading packages:
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax

위와 같은 에러가 다시 발생하게 됩니다.
이제는 유추해볼 수 있는대로 이 것 또한 python 링크 때문입니다.

/usr/libexec/urlgrabber-ext-down 파일 수정

# vi /usr/libexec/urlgrabber-ext-down

#!/usr/bin/python
==> //해당 파일 맨 윗줄을 아래와 같이 수정해줍니다.
#!/usr/bin/python2.7

위 파일에 들어가 방금 조치한 것과 마찬가지로 수정해주면 됩니다.
그럼 당장 제가 마주쳤던 에러에 대해서는 해결이 됩니다.

지금까지 CentOS 7 Python 3 설치 후 yum 에러 해결 포스트였습니다.
Server 관련 글을 더 보고싶으시다면 여기를 눌러주세요.
ThinkGround Twitter

Leave a Reply