てくなべ (tekunabe)

ansible / network / automation

CentOS 7.7 で リポジトリ追加なしで Python 3 を yum でインストールする

はじめに

CentOS 7.7 (1908) がリリースされました。

リリースノートの「5. Major Changes」には以下のように記載があります。

Python 3 is now available. Installing the python3 package gives you the Python 3.6 interpreter.

IUS Community Project といったリポジトリ追加なしに、さくっと Python 3 をインストールできるようなので試してみます。

なお、Red Hat Enterprise Linux 7.7 のリリースノートの「新しいパッケージ - python3」にも同じ旨の記載はありました。

※記事を書いた後に追記 少し気になって、以前のバージョンの CentOS にさかのぼって試したところ、リポジトリ追加なしで yum install python3 できました。以前からできましたっけ・・・・。少し記憶が曖昧です。もし CentOS 7.7 の「Python 3 is now available.」とは関係ないようでしたら、@akira6592 までご連絡いただけると幸いです。CentOS 7 系のパッケージを確認すると python3* があるので、CentOS 7 系共通で使えるようになったということでしょうか。

CentOS 7.7 (1908) の準備

現時点で、7.7 の Vagrant boxや、Docker イメージはありません。そのため、centos.orgでイメージをダウンロードしてインストールします。今回は VirtualBox 上のVM として準備しました。

$ cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

デフォルトの状態の確認

OS インストール後のデフォルトの Python バージョンは Python 2.7 系のままです。

$ python --version
Python 2.7.5

リポジトリリストは以下の通り。

$ yum repolist 
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
リポジトリー ID                    リポジトリー名                        状態
base/7/x86_64                      CentOS-7 - Base                       10,097
extras/7/x86_64                    CentOS-7 - Extras                        304
updates/7/x86_64                   CentOS-7 - Updates                       310
repolist: 10,711

yum list python3* は以下のような結果になりました。

$ yum list python3*
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                                                                                        | 3.6 kB  00:00:00     
extras                                                                                                                      | 2.9 kB  00:00:00     
updates                                                                                                                     | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                               | 165 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                           | 152 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                                                          | 1.1 MB  00:00:00     
(4/4): base/7/x86_64/primary_db                                                                                             | 6.0 MB  00:00:00     
利用可能なパッケージ
python3.i686                                                                   3.6.8-10.el7                                                    base
python3.x86_64                                                                 3.6.8-10.el7                                                    base
python3-debug.i686                                                             3.6.8-10.el7                                                    base
python3-debug.x86_64                                                           3.6.8-10.el7                                                    base
python3-devel.i686                                                             3.6.8-10.el7                                                    base
python3-devel.x86_64                                                           3.6.8-10.el7                                                    base
python3-idle.i686                                                              3.6.8-10.el7                                                    base
python3-idle.x86_64                                                            3.6.8-10.el7                                                    base
python3-libs.i686                                                              3.6.8-10.el7                                                    base
python3-libs.x86_64                                                            3.6.8-10.el7                                                    base
python3-pip.noarch                                                             9.0.3-5.el7                                                     base
python3-rpm-generators.noarch                                                  6-2.el7                                                         base
python3-rpm-macros.noarch                                                      3-32.el7                                                        base
python3-setuptools.noarch                                                      39.2.0-10.el7                                                   base
python3-test.i686                                                              3.6.8-10.el7                                                    base
python3-test.x86_64                                                            3.6.8-10.el7                                                    base
python3-tkinter.i686                                                           3.6.8-10.el7                                                    base
python3-tkinter.x86_64                                                         3.6.8-10.el7                                                    base
python3-wheel.noarch                                                           0.31.1-4.el7                                                    base

python 3 のインストール

それでは python3 をインストールします。

$ sudo yum install python3
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
base                                                                                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                                                                                   | 2.9 kB  00:00:00     
(1/4): extras/7/x86_64/primary_db                                                                                                                                         | 152 kB  00:00:00     
(2/4): base/7/x86_64/group_gz                                                                                                                                             | 165 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                                                                                                        | 1.1 MB  00:00:00     
(4/4): base/7/x86_64/primary_db                                                                                                                                           | 6.0 MB  00:00:01     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ python3.x86_64 0:3.6.8-10.el7 を インストール
--> 依存性の処理をしています: python3-libs(x86-64) = 3.6.8-10.el7 のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: python3-setuptools のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: python3-pip のパッケージ: python3-3.6.8-10.el7.x86_64
--> 依存性の処理をしています: libpython3.6m.so.1.0()(64bit) のパッケージ: python3-3.6.8-10.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ python3-libs.x86_64 0:3.6.8-10.el7 を インストール
--> 依存性の処理をしています: libtirpc.so.1()(64bit) のパッケージ: python3-libs-3.6.8-10.el7.x86_64
---> パッケージ python3-pip.noarch 0:9.0.3-5.el7 を インストール
---> パッケージ python3-setuptools.noarch 0:39.2.0-10.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libtirpc.x86_64 0:0.2.4-0.16.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=================================================================================================================================================================================================
 Package                                               アーキテクチャー                          バージョン                                        リポジトリー                             容量
=================================================================================================================================================================================================
インストール中:
 python3                                               x86_64                                    3.6.8-10.el7                                      base                                     69 k
依存性関連でのインストールをします:
 libtirpc                                              x86_64                                    0.2.4-0.16.el7                                    base                                     89 k
 python3-libs                                          x86_64                                    3.6.8-10.el7                                      base                                    7.0 M
 python3-pip                                           noarch                                    9.0.3-5.el7                                       base                                    1.8 M
 python3-setuptools                                    noarch                                    39.2.0-10.el7                                     base                                    629 k

トランザクションの要約
=================================================================================================================================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 9.5 M
インストール容量: 48 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/base/packages/python3-3.6.8-10.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
python3-3.6.8-10.el7.x86_64.rpm の公開鍵がインストールされていません
(1/5): python3-3.6.8-10.el7.x86_64.rpm                                                                                                                                    |  69 kB  00:00:00     
(2/5): libtirpc-0.2.4-0.16.el7.x86_64.rpm                                                                                                                                 |  89 kB  00:00:00     
(3/5): python3-pip-9.0.3-5.el7.noarch.rpm                                                                                                                                 | 1.8 MB  00:00:00     
(4/5): python3-setuptools-39.2.0-10.el7.noarch.rpm                                                                                                                        | 629 kB  00:00:00     
(5/5): python3-libs-3.6.8-10.el7.x86_64.rpm                                                                                                                               | 7.0 MB  00:00:01     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                             6.1 MB/s | 9.5 MB  00:00:01     
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-7.1908.0.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                   1/5 
  インストール中          : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                          2/5 
  インストール中          : python3-pip-9.0.3-5.el7.noarch                                                                                                                                   3/5 
  インストール中          : python3-3.6.8-10.el7.x86_64                                                                                                                                      4/5 
  インストール中          : python3-libs-3.6.8-10.el7.x86_64                                                                                                                                 5/5 
  検証中                  : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                   1/5 
  検証中                  : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                          2/5 
  検証中                  : python3-libs-3.6.8-10.el7.x86_64                                                                                                                                 3/5 
  検証中                  : python3-3.6.8-10.el7.x86_64                                                                                                                                      4/5 
  検証中                  : python3-pip-9.0.3-5.el7.noarch                                                                                                                                   5/5 

インストール:
  python3.x86_64 0:3.6.8-10.el7                                                                                                                                                                  

依存性関連をインストールしました:
  libtirpc.x86_64 0:0.2.4-0.16.el7             python3-libs.x86_64 0:3.6.8-10.el7             python3-pip.noarch 0:9.0.3-5.el7             python3-setuptools.noarch 0:39.2.0-10.el7            

完了しました!
$

Python 3.6.8 がインストールされました。

これで、あらたに python3python3.6 などのコマンドを利用できるようになました。

$ python3 --version
Python 3.6.8
$ python # tab 
python      python2     python2.7   python3     python3.6   python3.6m  

フルパスの確認です。

$ which python3
/usr/bin/python3
$  which python3.6
/usr/bin/python3.6

pip3 コマンドも利用できるようになりました。

 # pip3 search ansible
(...略...)
ansible (2.8.5)                            - Radically simple IT automation
(...略...)

バージョンなしの pip コマンドは使えませんでした。

なお、Python コマンド自身は Python 2.7 のままです。

$ python --version
Python 2.7.5

まとめ

CentOS 7.7 (1908) でリポジトリ追加なしで yum install python3Python 3 がインストールできることを確認しました。

「あのリポジトリのパスなんだったけな」と調べずに、いきなり yum install python3 を実行できるのは便利だと感じました。