[CentOS] python 2.6.6 がインストールされているが python3.5.0 も追加する手順
python 2.6.6 がインストール済みの CentOS 6.6 に python 3.5.0 を追加でインストールしようと思います。
CentOS release 6.6 (Final)
# python -V
Python 2.6.6
#
yum search python を実行するとたくさんのパッケージが表示されてどれが python 3 なのか確認するのが面倒だったのでソースファイルをダウンロードしてコンパイル、インストールすることにしました。
python 3.5.0 のインストール場所は /usr/local/bin とし、/usr/local/bin/python3 で使えるようにします。インストールは root で実行しています。
1.ソースファイルのダウンロード
wget でダウンロードします。
# wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
–2015-10-03 20:47:04– https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
www.python.org (http://www.python.org/) をDNSに問いあわせています… 103.245.222.223
www.python.org|103.245.222.223|:443 (http://www.python.org%7C103.245.222.223%7C:443/) に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 20053428 (19M) [application/octet-stream]
`Python-3.5.0.tgz’ に保存中100%[======================================================================================>] 20,053,428 1.12M/s 時間 17s2015-10-03 20 (tel:2015100320):47:21 (1.12 MB/s) – `Python-3.5.0.tgz’ へ保存完了 [20053428/20053428]# ls -tlr Python*
-rw-r—r–. 1 root root 20053428 9月 13 20:47 2015 Python-3.5.0.tgz
#
tar で解凍して cd で移動します。
Python-3.5.0/
Python-3.5.0/Objects/
Python-3.5.0/Objects/descrobject.c
(途中省略)
Python-3.5.0/Modules/timemodule.c
Python-3.5.0/Modules/_operator.c
Python-3.5.0/Modules/_heapqmodule.c
# ls -F
Python-3.5.0/ Python-3.5.0.tgz
# cd Python-3.5.0
# pwd
/usr/local/src/Python-3.5.0
#
インストールオプションを知りたいと思い、README を読んでみる。
Doc/
Grammar/
Include/
LICENSE
Lib/
Mac/
Makefile.pre.in
Misc/
Modules/
Objects/
PC/
PCbuild/
Parser/
Programs/
Python/
README
Tools/
aclocal.m4
config.guess*
config.sub*
configure*
configure.ac
install-sh*
pyconfig.h.in
setup.py
# more README
This is Python version 3.5.0
============================Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012, 2013, 2014, 2015 Python Software Foundation. All rights reserved.Python 3.x is a new version of the language, which is incompatible with the
2.x line of releases. The language is mostly the same, but many details,
especially how built-in objects like dictionaries and strings work,
have changed considerably, and a lot of deprecated features have finally
been removed.Build Instructions
——————On Unix, Linux, BSD, OSX, and Cygwin:
./configure
make
make test
sudo make install
This will install Python as python3.
You can pass many options to the configure script; run “./configure —help” to
find out more. On OSX and Cygwin, the executable is called python.exe;
elsewhere it’s just python.
./configure —help でインストールオプションが確認できるとあるので、その通り叩いてみると下記のような記述が見つかった。
`/usr/local/bin’, `/usr/local/lib’ etc. You can specify
an installation prefix other than `/usr/local’ using `—prefix’,
for instance `–prefix=$HOME’.
どうやら –prefix オプションでいいらしい。
さっき more README で README ファイルを表示された中に、Build Instructions という箇所があり、この通りやればインストールができることがわかる。
最初が ./configure となっているがこれに —prefix オプションをつけてインストール場所を指定してやれば良いはず。README に書かれている通りに下記4つのコマンドを実施した。インストール状況は大量に表示されるので省略。
# make
# make test
# make install
/usr/local/bin/python もしくは /usr/local/bin/python3 が作られると思っていたのですが、/usr/local/bin/bin/python3 となってしまいました。
/usr/local/bin/python3 として使いたいのでシンボリックリンクを作ります。
# ls -l /usr/local/bin/python3
lrwxrwxrwx. 1 root root 26 10月 3 22:07 2015 /usr/local/bin/python3 → /usr/local/bin/bin/python3
# which python3
/usr/local/bin/python3
# which python
/usr/bin/python
# python3 -V
Python 3.5.0
# python -V
Python 2.6.6
#
うん。これでいい。共存できてるみたい。