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系を入れ替えないでつかうというのもありかもしれません
この記事が気に入ったらサポートをしてみませんか?