はじめに
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
それでは 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 がインストールされました。
これで、あらたに python3
、python3.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 python3
で Python 3 がインストールできることを確認しました。
「あのリポジトリのパスなんだったけな」と調べずに、いきなり yum install python3
を実行できるのは便利だと感じました。