CentOS6にPython2.7をインストールする方法

CentOS6系にはデフォルトでPython2.6が入っています。Let’s Encryptを使ったり、Google Cloud Strageを使ったりする時には、Python2.7が要求されるので、インストールしましょう。

[dacelo@space ~]$ cat /etc/redhat-release 
CentOS release 6.6 (Final)
[dacelo@space ~]$ python --version
Python 2.6.6

ここで普通にPython2.7をインストールしようとしても、CentOS6の標準レポジトリにはないのでインストールできません。

[dacelo@space ~]$ sudo yum install python27
読み込んだプラグイン:fastestmirror, priorities
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* rpmforge: mirror.fairway.ne.jp
* updates: ty1.mirror.newmediaexpress.com
100 packages excluded due to repository priority protections
パッケージ python27 は利用できません。
エラー: 何もしません

というわけで、まずは ソフトウェアコレクション(centos-release-scl-rh)のインストールを実行します。ソフトウェアコレクションとは、Red Hat Enterprise Linux(RHEL)とは別のライフサイクルで、安定した最新バージョンのソフトウェアをインストールする方法として提供されているものです。これで、2.6とは別に2.7をインストールする(共存させる)ことができます。

[dacelo@space ~]$ sudo yum install centos-release-scl-rh
読み込んだプラグイン:fastestmirror, priorities
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* rpmforge: mirror.fairway.ne.jp
* updates: ty1.mirror.newmediaexpress.com
100 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package centos-release-scl-rh.noarch 0:2-4.el6.centos will be インストール
--> 依存性解決を終了しました。
(略)

インストール:
centos-release-scl-rh.noarch 0:2-4.el6.centos

完了しました!

これで晴れてPython2.7をインストールできます。

[dacelo@space ~]$ sudo yum install python27
読み込んだプラグイン:fastestmirror, priorities
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* centos-sclo-rh: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* rpmforge: mirror.fairway.ne.jp
* updates: ty1.mirror.newmediaexpress.com
centos-sclo-rh                                                                                                                                                        | 2.9 kB     00:00
centos-sclo-rh/primary_db                                                                                                                                             | 1.4 MB     00:00
112 packages excluded due to repository priority protections
依存性の解決をしています
(略)

依存性を解決しました

(略)

総ダウンロード容量: 22 M
インストール済み容量: 87 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
(略)
合計                                                                                                                                                          29 MB/s |  22 MB     00:00

途中、RPMパッケージにGnuPGを使った署名が行われていないという旨の警告が出るのですが、インストールに支障はないと判断して先へ進めます。

警告: rpmts_HdrFromFdno: ヘッダ V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
Importing GPG key 0xF2EE9D55:
Userid : CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>
Package: centos-release-scl-rh-2-4.el6.centos.noarch (@extras)
From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
これでいいですか? [y/N]y
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています  : xml-common-0.6.3-33.el6.noarch                                                                                                                              1/24
(略)

インストール:
python27.x86_64 0:1.1-25.el6

依存性関連をインストールしました:
(略)

完了しました!

この状態でも、デフォルトでは2.6が読み込まれています。

[dacelo@space ~]$ python --version
Python 2.6.6

SCLを有効にしてBashを再読み込みすると、Python2.7が使えます。

[dacelo@space ~]$ scl enable python27 bash
[dacelo@space ~]$ python --version
Python 2.7.16

しかし毎回こんな事してられないので、profile.dにシンボリックリンクを登録して、常にPythonは2.7がデフォルトで起動するようにします。

広告

[dacelo@space ~]$ sudo ln -s /opt/rh/python27/enable /etc/profile.d/python27.sh

これで新しくログインすれば、常にPython2.7が使用できます。

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *