■本記事は下記実施後の続き
■はじめに
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
■はじめに
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への影響が判明したが、影響範囲が広そうだな。。。最適解がわからん。。
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への影響が判明したが、影響範囲が広そうだな。。。最適解がわからん。。