CentOS7のPythonを2系から3系に変えてみる

今回はpyenvを使うのではなく、CentOS7のシステムのPythonを切り替えてみようという内容です

なぜそんな事をするのか?

pyenvなどのソフトだと僕がよくわからなくなってしまい、失敗するのではないかというからです。以前phpのバージョン管理できるのをいれたことありましたが、失敗しました。見事にそれ以来phpもバージョン管理を止めているのでPythonも止めてみました

CentOS7のデフォルトはバージョン2系

なぜCentOS7のPythonはバージョン3ではなく2系なのか?知らないですが止めて欲しいです。RedHatが2系だからなのかな・・・?
本などもでPython3系がお勧めなのでPython3系に変えてみます
※OSが壊れたり何か変な事起きても責任とれませんので自己責任でお願いします

CentOS7をインストールした状態にする

今回はさくらのクラウドにCentOS7をインストールしただけの状態にしました
ApacheやPHPなども一切入っていません。
Pythonの確認をします

[root@localhost ~]# python --version
Python 2.7.5
[root@localhost ~]# 

2.7.5です・・・

3系をインストールする

気にしてもしょうがないので、まずは3系をインストールします3系をいれるには
・ソースからインストール
・yumでインストール
の二通りありますが、今回はyumでインストールします

IUSリポジトリを使用

yumでインストールするには、IUSリポジトリからインストールします

[root@localhost ~]#  yum install -y https://centos7.iuscommunity.org/ius-release.rpm

IUSリポジトリがインストールできたら今度はPythonを探します

[root@localhost ~]#  yum search python3
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo: ftp.yz.yamagata-u.ac.jp
 * epel: mirror.dmmlabs.jp
 * ius: mirrors.tongji.edu.cn
============================================================================================================ N/S matched: python3 ============================================================================================================
python3-jinja2-doc.noarch : Documentation for python3-jinja2
python3-sqlalchemy-doc.noarch : Documentation for python3-sqlalchemy
python34-autowrap.noarch : Generates Python3 Extension modules from [Cython] PXD files
python34-cairo-devel.x86_64 : Libraries and headers for python34-cairo
python34-decorator.noarch : Module to simplify usage of decorators in python3
python34-easygui.noarch : Very simple, very easy GUI programming in Python3
python34-greenlet-devel.x86_64 : C development headers for python34-greenlet
python34-idstools.noarch : Snort and Suricata Rule and Event Utilities For Python2 for Python3
python34-lensfun.x86_64 : Python3 lensfun bindings

色々出てきましたが、どうやら3.6が入っているみたいです

Python3.6をインストール

というわけでPythonのインストールをします

[root@localhost ~]# yum install python36u python36u-libs python36u-devel python36u-pip
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: mirror.dmmlabs.jp
* ius: mirrors.tongji.edu.cn
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ python36u.x86_64 0:3.6.5-1.ius.centos7 を インストール
---> パッケージ python36u-devel.x86_64 0:3.6.5-1.ius.centos7 を インストール
---> パッケージ python36u-libs.x86_64 0:3.6.5-1.ius.centos7 を インストール
---> パッケージ python36u-pip.noarch 0:9.0.1-1.ius.centos7 を インストール
--> 依存性の処理をしています: python36u-setuptools のパッケージ: python36u-pip-9.0.1-1.ius.centos7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ python36u-setuptools.noarch 0:39.0.1-1.ius.centos7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==============================================================================================================================================================================================================================================
Package                                                          アーキテクチャー                                   バージョン                                                         リポジトリー                                     容量
==============================================================================================================================================================================================================================================
インストール中:
python36u                                                        x86_64                                             3.6.5-1.ius.centos7                                                ius                                              57 k
python36u-devel                                                  x86_64                                             3.6.5-1.ius.centos7                                                ius                                             839 k
python36u-libs                                                   x86_64                                             3.6.5-1.ius.centos7                                                ius                                             8.7 M
python36u-pip                                                    noarch                                             9.0.1-1.ius.centos7                                                ius                                             1.8 M
依存性関連でのインストールをします:
python36u-setuptools                                             noarch                                             39.0.1-1.ius.centos7                                               ius                                             642 k
トランザクションの要約
==============================================================================================================================================================================================================================================
インストール  4 パッケージ (+1 個の依存関係のパッケージ)
総ダウンロード容量: 12 M
インストール容量: 55 M
Is this ok [y/d/N]: 

yを押してインストールします

Downloading packages:
警告: /var/cache/yum/x86_64/7/ius/packages/python36u-3.6.5-1.ius.centos7.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 9cd4953f: NOKEY                                                                  ]  0.0 B/s |    0 B  --:--:-- ETA 
python36u-3.6.5-1.ius.centos7.x86_64.rpm の公開鍵がインストールされていません
(1/5): python36u-3.6.5-1.ius.centos7.x86_64.rpm                                                                                                                                                                        |  57 kB  00:00:00     
(2/5): python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm                                                                                                                                                                  | 839 kB  00:00:01     
(3/5): python36u-setuptools-39.0.1-1.ius.centos7.noarch.rpm                                                                                                                                                            | 642 kB  00:00:01     
(4/5): python36u-libs-3.6.5-1.ius.centos7.x86_64.rpm                                                                                                                                                                   | 8.7 MB  00:00:02     
(5/5): python36u-pip-9.0.1-1.ius.centos7.noarch.rpm                                                                                                                                                                    | 1.8 MB  00:00:08     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                          1.4 MB/s |  12 MB  00:00:08     
file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY から鍵を取得中です。
Importing GPG key 0x9CD4953F:
 Userid     : "IUS Community Project <coredev@iuscommunity.org>"
 Fingerprint: 8b84 6e3a b3fe 6462 74e8 670f da22 1cdf 9cd4 953f
 Package    : ius-release-1.0-15.ius.centos7.noarch (installed)
 From       : /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : python36u-libs-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                     1/5 
  インストール中          : python36u-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                          2/5 
  インストール中          : python36u-setuptools-39.0.1-1.ius.centos7.noarch                                                                                                                                                              3/5 
  インストール中          : python36u-pip-9.0.1-1.ius.centos7.noarch                                                                                                                                                                      4/5 
  インストール中          : python36u-devel-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                    5/5 
  検証中                  : python36u-pip-9.0.1-1.ius.centos7.noarch                                                                                                                                                                      1/5 
  検証中                  : python36u-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                          2/5 
  検証中                  : python36u-devel-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                    3/5 
  検証中                  : python36u-libs-3.6.5-1.ius.centos7.x86_64                                                                                                                                                                     4/5 
  検証中                  : python36u-setuptools-39.0.1-1.ius.centos7.noarch                                                                                                                                                              5/5 

インストール:
  python36u.x86_64 0:3.6.5-1.ius.centos7                 python36u-devel.x86_64 0:3.6.5-1.ius.centos7                 python36u-libs.x86_64 0:3.6.5-1.ius.centos7                 python36u-pip.noarch 0:9.0.1-1.ius.centos7                

依存性関連をインストールしました:
  python36u-setuptools.noarch 0:39.0.1-1.ius.centos7                                                                                                                                                                                          

完了しました!
[root@localhost ~]# 

インストール完了しました

バージョン確認

3.6をインストールしたのでなったか確認します

[root@localhost ~]# python --version
Python 2.7.5
[root@localhost ~]# 

(´・ω・`)あれ・・・

(´・ω・`)きっとあれかなー、対話モードにすれば変わっているさ(`・ω・´)

というわけで対話モードにしてみます

[root@localhost ~]# python
Python 2.7.5 (default, Jul 13 2018, 13:06:57) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

(´・ω・`)うん、変わってない

後ろに数値をいれればOK

[root@localhost ~]# python3.6
Python 3.6.5 (default, Apr 10 2018, 17:08:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

バージョンを入れればちゃんと3.6になりました。今は2.7と3.6の二つがあるって状態です

(`・ω・´)これをやりたいんじゃないんだ!

通常(デフォルト)だと2.7なのですが、僕はこれを3.6にしたい。python --versionっていれたら3をでるようにしたい・・・

というわけでリンクを張り直します

[root@localhost ~]# ln -s /bin/python3.6 /bin/python3
[root@localhost ~]# unlink /bin/python
[root@localhost ~]# ln -s /bin/python3 /bin/python
[root@localhost ~]# ln -s /bin/pip3.6 /bin/pip
[root@localhost ~]# 

リンクを張り直しました。

バージョンを見て見ます

[root@localhost ~]# python --version
Python 3.6.5
[root@localhost ~]# 

よし、3.6になりました

対話モードも見て見る

[root@localhost ~]# python
Python 3.6.5 (default, Apr 10 2018, 17:08:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

切り替わりました。これでPythonが使えます

リンクを貼り替えるとyumが使えなくなる

システムのPythonを切り替えると、CentOSのyumが使えなくなります。
詳しくはPython3系にするとyumが使えなくなるを見てください

Python3系を入れ替えないでつかうというのもありかもしれません


この記事が気に入ったらサポートをしてみませんか?