概要
CentOS 7には標準でPython 2系がインストールされている。
本記事ではyumを使ってPython 3を追加インストールする。
システム環境
CentOS Linux release 7.9.2009 (Core)
Python 3インストール
インストール前はPython 2しかインストールされていない。
[root@testserver /]# yum list installed | grep "^python.x86_64"
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
python.x86_64 2.7.5-89.el7 @CentOS
[root@testserver /]# python -V
Python 2.7.5
[root@testserver /]#
yumを使ってPython 3をインストールする。
[root@testserver /]# yum install python3.x86_64
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: centos-distro.cavecreek.net
* extras: mirrors.sonic.net
* updates: mirrors.raystedman.org
Resolving Dependencies
--> Running transaction check
---> Package python3.x86_64 0:3.6.8-18.el7 will be installed
--> Processing Dependency: python3-libs(x86-64) = 3.6.8-18.el7 for package: python3-3.6.8-18.el7.x86_64
--> Processing Dependency: python3-setuptools for package: python3-3.6.8-18.el7.x86_64
--> Processing Dependency: python3-pip for package: python3-3.6.8-18.el7.x86_64
--> Processing Dependency: libpython3.6m.so.1.0()(64bit) for package: python3-3.6.8-18.el7.x86_64
--> Running transaction check
---> Package python3-libs.x86_64 0:3.6.8-18.el7 will be installed
--> Processing Dependency: libtirpc.so.1()(64bit) for package: python3-libs-3.6.8-18.el7.x86_64
---> Package python3-pip.noarch 0:9.0.3-8.el7 will be installed
---> Package python3-setuptools.noarch 0:39.2.0-10.el7 will be installed
--> Running transaction check
---> Package libtirpc.x86_64 0:0.2.4-0.16.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================
Package Arch Version Repository Size
=========================================================================================================
Installing:
python3 x86_64 3.6.8-18.el7 updates 70 k
Installing for dependencies:
libtirpc x86_64 0.2.4-0.16.el7 base 89 k
python3-libs x86_64 3.6.8-18.el7 updates 6.9 M
python3-pip noarch 9.0.3-8.el7 base 1.6 M
python3-setuptools noarch 39.2.0-10.el7 base 629 k
Transaction Summary
=========================================================================================================
Install 1 Package (+4 Dependent packages)
Total download size: 9.3 M
Installed size: 48 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): python3-3.6.8-18.el7.x86_64.rpm | 70 kB 00:00:00
(2/5): libtirpc-0.2.4-0.16.el7.x86_64.rpm | 89 kB 00:00:00
(3/5): python3-setuptools-39.2.0-10.el7.noarch.rpm | 629 kB 00:00:00
(4/5): python3-pip-9.0.3-8.el7.noarch.rpm | 1.6 MB 00:00:00
(5/5): python3-libs-3.6.8-18.el7.x86_64.rpm | 6.9 MB 00:00:02
---------------------------------------------------------------------------------------------------------
Total 3.2 MB/s | 9.3 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libtirpc-0.2.4-0.16.el7.x86_64 1/5
Installing : python3-setuptools-39.2.0-10.el7.noarch 2/5
Installing : python3-pip-9.0.3-8.el7.noarch 3/5
Installing : python3-3.6.8-18.el7.x86_64 4/5
Installing : python3-libs-3.6.8-18.el7.x86_64 5/5
Verifying : libtirpc-0.2.4-0.16.el7.x86_64 1/5
Verifying : python3-setuptools-39.2.0-10.el7.noarch 2/5
Verifying : python3-libs-3.6.8-18.el7.x86_64 3/5
Verifying : python3-3.6.8-18.el7.x86_64 4/5
Verifying : python3-pip-9.0.3-8.el7.noarch 5/5
Installed:
python3.x86_64 0:3.6.8-18.el7
Dependency Installed:
libtirpc.x86_64 0:0.2.4-0.16.el7 python3-libs.x86_64 0:3.6.8-18.el7
python3-pip.noarch 0:9.0.3-8.el7 python3-setuptools.noarch 0:39.2.0-10.el7
Complete!
[root@testserver /]#
これでPython 3がインストールできた。
[root@testserver /]# yum list installed | grep "^python3.x86_64"
python3.x86_64 3.6.8-18.el7 @updates
[root@testserver /]# python3 -V
Python 3.6.8
[root@testserver /]#
pythonコマンドのシンボリックリンク変更
インストールしただけでは、pythonコマンドはPython 2系のままになっている。
[root@testserver /]# python -V
Python 2.7.5
[root@testserver /]#
この原因は以下のシンボリックリンクが設定されているからである。
[root@testserver /]# ls -l /usr/bin/python
lrwxrwxrwx 1 root root 7 Nov 13 2020 /usr/bin/python -> python2
[root@testserver /]#
シンボリックリンクを変更することで、pythonコマンドでPython 3系が実行されるようになる。
[root@testserver /]# unlink /usr/bin/python
[root@testserver /]# ls -l /usr/bin/python
ls: cannot access /usr/bin/python: No such file or directory
[root@testserver /]#
[root@testserver /]# ln -s /usr/bin/python3 /usr/bin/python
[root@testserver /]# ls -l /usr/bin/python
lrwxrwxrwx 1 root root 16 Oct 1 09:09 /usr/bin/python -> /usr/bin/python3
[root@testserver /]#
[root@testserver /]# python -V
Python 3.6.8
[root@testserver /]#