コンピュータ/ソフトウェア関連Tips

本文へ

CentOS 6.4にPython 2.7.5をインストール(altinstall)し、さらに、デフォルトで2.6.6ではなく2.7.5が起動するようにする

更新: 2013年06月03日(月) 22:39
公開: 2013年06月02日(日) 16:58

LinkChecker 8.4をインストールするのに、Python 2.6系ではなく Python 2.7系が必要だったため、やっとの思いでインストール。LinkChecker は「sudo /usr/local/bin/python2.7 setup.py install」とすればよかったようなので、Pythonは単にaltinstallするだけで良かったかも知れない...。

手順

参考

CentOS 6.2 に Python 2.7.2をインストールする http://wasure-memo.h-tsk.com/2012/03/centos-62-python-272.html

How to install Python 2.7 and 3.3 on CentOS 6 http://toomuchdata.com/2012/06/25/how-to-install-python-2-7-3-on-centos-6-2/

$ sudo yum groupinstall "Development tools"
$ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

$ cd
$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
$ tar xvf Python-2.7.5.tar.bz2
$ cd Python-2.7.5
$ ./configure --with-threads --enable-shared --prefix=/usr/local
$ make

参考: LinuxでPythonをビルドするときの --enable-shared オプションについて http://qiita.com/items/bf0b74550bee125cdea4 

(後述する、デフォルトでPython2.7が起動されるようにする設定のため、--enable-sharedを指定した)。

$ vi ./Modules/Setup

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
#_ssl _ssl.c \
#-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#-L$(SSL)/lib -lssl -lcrypto
↓
SSL=/usr
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
$ sudo make altinstall

※make install ではなく、make altinstall

$ sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/
$ python2.7
Python 2.7.5 (default, Jun  1 2013, 14:19:30)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

デフォルトでPython2.7が起動するようにする

ライブラリ等のシンボリックリンク設定

参考: How to Upgrade Python in CentOS http://www.nerdsmind.com/how-to-upgrade-python-in-centos/

$ sudo ln -s /usr/local/lib/libpython2.7.so /usr/lib
$ sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /usr/lib
$ sudo /sbin/ldconfig -v
$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python

LinkChecker 8.4をインストールするときに、「Python.hが見つからない」というエラーが発生したので、以下も実行。(sudo時にPATHが引き継がれていなかったせいかもしれないので、ひょっとするとこの設定は不要かも)。

(2013.6.3記: 下記includeパスのシンボリックリンク設定は無くてもLinkChecker 8.4をコンパイル出来ました)

$ sudo ln -s  /usr/local/include/python2.7 /usr/include/python2.7

sudo時のPATH設定

sudoしたときに/usr/local/bin内ファイルを実行できるようにsudoerファイルのsecure_pathを修正。(すでに設定済の場合は、ここはスキップ)。

参考: sudo実行時に$PATHが通っていない場合の設定 http://blog.bungu-do.jp/archives/3525

(選択肢は他にもあり)

$ sudo visudo

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
↓
Defaults    secure_path = /usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

動作確認

ログインし直す。

$ python

Python 2.7.5 (default, Jun  1 2013, 14:19:30)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
$ sudo python

Python 2.7.5 (default, Jun  1 2013, 14:19:30)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

デフォルト起動のバージョンを変えたことにより悪影響が出ていないかを、「sudo yum search php」にてチェック。(参考Webページ "How to Upgrade Python in CentOS" にて、"Very important last step"と記されている)。

$ sudo yum search php

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
base                                                     | 3.7 kB     00:00
extras                                                   | 3.5 kB     00:00
updates                                                  | 3.4 kB     00:00
=============================== N/S Matched: php ===============================
cups-php.x86_64 : Common Unix Printing System - php module
graphviz-php.x86_64 : PHP extension for graphviz
php.x86_64 : PHP scripting language for creating dynamic web sites
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
(略)
php-enchant.x86_64 : Human Language and Character Encoding Support
php-pecl-apc-devel.x86_64 : APC developer files (header)
php-pecl-memcache.x86_64 : Extension to work with the Memcached caching daemon

  Name and summary matches only, use "search all" for everything.

既存バージョンの動作確認

最初から導入されているPython2.6.6が動作するかチェック。

$ python2.6

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
$ sudo python2.6

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

同一カテゴリーの記事

Tags: CentOS LINUX

© Someone in the TERRA

編集