自由気ままに書いちゃおう

好きなことをつらつらと・・・

python2系→3系へのアップグレード後にyumが動かなくなる

■本記事は下記実施後の続き

www.guri2o1667.work


■はじめに
Python3系をインストールした後にやりたくなるのが、デフォルトで3系を使えるようにする事。
デフォルトのpythonのパスは/bin/pythonになっており、/usr/bin/python2のシンボリックリンクになっている。

↓こんな感じ↓
# ls -l /bin/python
  lrwxrwxrwx. 1 root root 7 1月 29 2019 /bin/python -> python2  ※シンボリックリンクになっている。

これをPython3系に変更する際に注意が必要。。。
具体的には・・・yumが動かなくなる。。。

ひとまず、2系→3系への切り替え(?)を実施してみる。。。

■作業前のPython3情報

  # python3 --version
  Python 3.7.3

  # python --version
  Python 2.7.5


Pythonパスを2系→3系への変更手順 
1.alias設定を変更
  # vi /root/.bash_profile
  → 以下を最終行に追記
  alias python="python3"

  # source /root/.bash_profile
  # alias | grep python
  alias python='python3'   ※このように表示されていればOK
 
  # python --verion
  Python 3.7.3    ※alias設定するまでは2.7.5表示だったが、3.7.3に変わった。


2./bin/pythonのシンボリックを解除、およびpython3に紐づけ
  # find / -name python2
  /usr/bin/python2

  # ls -l /bin/python
  lrwxrwxrwx. 1 root root 7 1月 29 2019 /bin/python -> python2  ※シンボリックリンクになっている。

  # unlink /bin/python
  # ls -l /bin/python
  ls: /bin/python にアクセスできません: そのようなファイルやディレクトリはありません

  # ln -s /usr/local/python/bin/python3 /bin/python
  # ls -l /bin/python
  lrwxrwxrwx 1 root root 29 12月 6 12:41 /bin/python -> /usr/local/python/bin/python3

この時点で、ひとまずpythonと打てば、python3系で実行されるようになった。。。

■yumの実行
# yum repolist
File "/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax

上記のように、エラーとなる。。。。

■理由
yumが参照しているPythonのパスが変更になったから。

■修正
以下ファイルを修正する。
# vi /bin/yum
 修正前: #!/usr/bin/python
 修正後: #!/usr/bin/python2

# vi /usr/libexec/urlgrabber-ext-down
 修正前: #!/usr/bin/python
 修正後: #!/usr/bin/python2

■修正後のyum実行
# yum repolist
読み込んだプラグイン:amazon-id, rhui-lb, search-disabled-repos
リポジトリー ID リポジトリー名 状態
rhui-REGION-client-config-server-7/x86_64 Red Hat Update Infrastruct 4
rhui-REGION-rhel-server-releases/7Server/x86_64 Red Hat Enterprise Linux S 26,713
rhui-REGION-rhel-server-rh-common/7Server/x86_64 Red Hat Enterprise Linux S 239
repolist: 26,956

ひとまず動いた。。。

■まとめ
今回はyumへの影響が判明したが、影響範囲が広そうだな。。。最適解がわからん。。