はじめに
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 がインストールされました。
これで、あらたに 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
を実行できるのは便利だと感じました。