Python2.6.6/CentOS5 †CentOS 5.6(32bit版)にpython2.6.6をインストールする手順とpython2.6.6にあわせた CentOS5 †CentOS 5.5(32bit)をインストールしています。update後CentOS 5.6に更新されます。 Install †以下のような設定でCentOS 5.5をインストールしています。 パッケージ:Server (NoGUI) 言語、キーボード: Japanese パーティション:default パーティション ネットワーク:DHCP システムタイム:UTC FireWall,SELinux :Disable また、以下のパッケージの追加と削除を行っています。 customパッケージ 追加パッケージ:開発ツール、開発ライブラリ 削除パッケージ:DNSネームサーバ削除 CentOSの設定 †yumコマンドでCentOSを最新の状態にアップデートしています。 yum install yum-fastestmirror <- リポジトリを最も近いリポジトリに変更、確認 yum update <- OSのアップデート yum update後のkernel versionは以下のとおりです。 uname -a Linux localhost.localdomain 2.6.18-238.9.1.el5PAE #1 SMP Tue Apr 12 18:52:55 EDT 2011 i686 i686 i386 GNU/Linux ntp †上記設定ではUTCを使用していますので、時刻を合わせるためntpをインストールします。 $ sudo yum install ntp 現在のマシンの時刻をntpから取得した時刻に修正します。 # data # /usr/sbin/ntpdate -s ntp.nict.jp 修正した時刻をハードウェアに記録します。 # clock -w 以下の3つの日本のntpサーバを/etc/ntp/step-tickersに登録します。 # vi /etc/ntp/step-tickers ntp.nict.jp ntp.jst.mfeed.ad.jp ntp.ring.gr.jp 導入済みpythonの確認 †上記手順でCentOSに導入されているpythonのバージョンとディレクトリは以下のとおりです。 # python -V Python 2.4.3 # pwd /usr/bin # ls -l python* -rwxr-xr-x 2 root root 8304 3月 6 11:27 python lrwxrwxrwx 1 root root 6 5月 3 00:02 python2 -> python -rwxr-xr-x 2 root root 8304 3月 6 11:27 python2.4 python2.6系の設定 †CentOSの標準リポジトリでは2.4系のバージョンしか取得できないのでepelのリポジトリを追加し $ wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm $ sudo rpm -Uvh epel-release-5-4.noarch.rpm 必要時以外はepelのリポジトリを呼び出さない設定に変更します。 $ sudo vi /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5& arch=$basearch failovermethod=priority enabled=0 <-1から0に変更します。 gpgcheck=1 python26をインストールする前にlibffi(python26であわせてインストールされます)が $ rpm -qa libffi <- libffiをインストールするので既にインストールされているか確認 $yum install --enablerepo=epel python26 Installed: python26.i386 0:2.6.5-6.el5 ...<略> Dependency Installed: libffi.i386 0:3.0.5-1.el5 python26-libs.i386 0:2.6.5-6.el5 あわせて、python26の開発用ライブラリをインストールします。 yum install python26-devel --enablerepo=epel インストール完了後バージョンの確認をします。ここではpythonコマンドでは2.4.3を指し、 $ python -V Python 2.4.3 python26 -V Python 2.6.5 $ python2.6 -V Python 2.6.5 python2.6.6の導入 †python2.6.6をソースコードからconfig、makeしインストールします。またconfigで共有ライブラリを LD_LIBRARY_PATHの先頭にpython2.6.6のファイルの展開先ディレクトリを追加します。 export LD_LIBRARY_PATH=/home/beat/python-orig/Python-2.6.6/Lib:$LD_LIBRARY_PATH 以下のconfigオプションを使用しています。enable-unicode=ucs4はdistributeのインストール時に $ cd /home/beat/python-orig/Python-2.6.6 ./configure --with-threads --enable-shared --enable-unicode=ucs4 --prefix=/usr/local/python266 configureコマンドでLDLFLAGS と-Lのオプションを追加するとエラーになるので $ vi Makefile Makefile CPPFLAGS= -I. -IInclude -I$(srcdir)/Include LDFLAGS= -L$(srcdir)/Lib <-追加 LDLAST= $ make $ ./python -V Python 2.6.6 $ ldd ./python linux-gate.so.1 => (0x00270000) libpython2.6.so.1.0 (0x00271000) libpthread.so.0 => /lib/libpthread.so.0 (0x009ee000) libdl.so.2 => /lib/libdl.so.2 (0x009bc000) libutil.so.1 => /lib/libutil.so.1 (0x00c0f000) libm.so.6 => /lib/libm.so.6 (0x009c3000) libc.so.6 => /lib/libc.so.6 (0x00861000) /lib/ld-linux.so.2 (0x0083d000) $ sudo make install make install後、libpythonが/usr/libを参照しているので以下のように # vi /etc/ld.so.conf.d/python266.conf /usr/local/python266/lib <-記入 ldconfigを実行し設定を反映させます。 # /sbin/ldconfig usr/local/python266に移動しpythonが2.6.6を指しているかを確認します。 $ cd /usr/local/python266 $ ./python -V Python 2.6.6 $ ldd python linux-gate.so.1 => (0x007a8000) libpython2.6.so.1.0 => /usr/local/python266/lib/libpython2.6.so.1.0 (0x0013a000) libpthread.so.0 => /lib/libpthread.so.0 (0x009ee000) libdl.so.2 => /lib/libdl.so.2 (0x009bc000) libutil.so.1 => /lib/libutil.so.1 (0x00c0f000) libm.so.6 => /lib/libm.so.6 (0x009c3000) libc.so.6 => /lib/libc.so.6 (0x00861000) /lib/ld-linux.so.2 (0x0083d000) 上記のpython2.6.6の設定が反映されるように、bashrcを以下のように追記しておきます。 $ vi .bashrc ...<略> #source /usr/local/pythonbrew/etc/bashrc export PATH=/usr/local/python266/bin:$PATH alias python='python2.6' export LD_LIBRARY_PATH=/usr/local/pyhon266/lib:$LD_LIBRARY_PATH $ source .bashrc distribute †distributeはsetuptoolsからフォークしたプロジェクトです。pip(easy_install)も $ cd /home/beat/python-orig $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.16.tar.gz $ tar xvfz distribute-0.6.16.tar.gz $ cd distribute-0.6.16 $ python setup.py build # python setup.py install --prefix=/usr/local/python266 指定しているディレクトリにインストールできているかの確認をします。 $ which easy_install /usr/local/python266/bin/easy_install PIL †PILはpythonに画像処理機能を追加します。ここでは、PIL(Python Imaging Library)のバージョン $ cd /home/beat/PIL/Imaging-1.1.7 $ python setup.py clean <-以前のビルド時の物を削除 $ python setup.py build $ sudo python setup.py install セルフテストを行いPILが正しく設定されているかの確認とバージョンの確認をします。 $ python selftest.py -------------------------------------------------------------------- PIL 1.1.7 TEST SUMMARY -------------------------------------------------------------------- Python modules loaded from ./PIL Binary modules loaded from /usr/local/python266/lib/python2.6/site-packages/PIL ...<略> Running selftest: --- 57 tests passed. mod_wsgi †mod_wsgiはpythonのアプリケーションをサポートするためのApacheのモジュールです。 mod_wsgiのインストール前にapxsのインストールをします。apxsはAPache eXtenSion toolの略称です。
$ sudo yum install httpd-devel home/beat/mod_wsgiにmod_wsgi-3.3のアーカイブをダウンロードし展開しています。 $ cd /home/beat/mod_wsgi/mod_wsgi-3.3 $ ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/python266/bin/python $ make $ sudo make install $ ldd /usr/lib/httpd/modules/mod_wsgi.so linux-gate.so.1 => (0x009f4000) libpython2.6.so.1.0 => /usr/local/python266/lib/libpython2.6.so.1.0 (0x00df3000) libpthread.so.0 => /lib/libpthread.so.0 (0x004bc000) libdl.so.2 => /lib/libdl.so.2 (0x00fcc000) libutil.so.1 => /lib/libutil.so.1 (0x00a52000) libm.so.6 => /lib/libm.so.6 (0x00955000) libc.so.6 => /lib/libc.so.6 (0x0068d000) /lib/ld-linux.so.2 (0x0083d000) サンプルpythonスクリプトでインストールしたmod_wsgiが動作しているかを確認します。 $ sudo vi /etc/httpd/conf.d/modwsgi_test.conf LoadModule wsgi_module modules/mod_wsgi.so WSGIPythonHome /usr/local/python266 WSGIScriptAlias /test /var/www/cgi-bin/hello.py hello.pyは以下の内容を記載しています。 $ sudo vi /var/www/cgi-bin/hello.py #!/usr/local/bin/python-2.6 def application(environ, start_response): status = '200 OK' response_headers = [('Content-type', 'text/plain')] start_response(status, response_headers) return ["It's works!"] httpdを再起動します。 $ sudo /etc/init.d/httpd restart 正しく設定できている場合は、以下のURLにアクセスするとIt's works!の表示を確認することができます。 http://マシンのIPアドレス/test OpenCV †OpenCVは画像解析などのコンピュータビジョン向けのソフトウェア ライブラリです。 ffmpeg:disable TTB:disable OpenMP:enable pythonは2.6.6にバインド OpenCVの詳細については以下のURLをご覧ください。 cmakeの導入 †cmakeが標準リポジトリにないためepelからインストールをします。 # yum search cmake --enablerepo=epel OpenCV-2.2.0 †home/beat/OpenCV/OpenCV-2.2.0/releaseディレクトリでビルドを行います。 http://opencv.jp/opencv2-x-tips/install-linuxubuntu $ cd OpenCV $ tar xvfj OpenCV-2.2.0.tar.bz2 $ cd OpenCV-2.2.0 $ mkdir release $ cd release $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D ENABLE_OPENMP=ON ../ ...<略>option情報 ... -- General configuration for opencv 2.2.0 ===================================== -- -- Built as dynamic libs?: ON -- Compiler: -- C++ flags (Release): -Wall -pthread -march=i686 -ffunction-sections -O3 -DNDEBUG -fomit-frame-pointer -O3 -ffast-math -msse -msse2 -mfpmath=387 -DNDEBUG -- C++ flags (Debug): -Wall -pthread -march=i686 -ffunction-sections -g -O0 -ggdb3 -DDEBUG -D_DEBUG -- Linker flags (Release): -- Linker flags (Debug): -- -- GUI: -- GTK+ 2.x: 1 -- GThread: 1 -- -- Image I/O: -- JPEG: TRUE -- PNG: TRUE -- TIFF: build -- JPEG 2000: build -- OpenEXR: NO -- -- Video I/O: -- DC1394 1.x: 0 -- DC1394 2.x: 0 -- FFMPEG: 0 -- codec: 0 -- format: 0 -- util: 0 -- swscale: 0 -- gentoo-style: -- GStreamer: 0 -- UniCap: FALSE -- PvAPI: -- V4L/V4L2: / -- Xine: FALSE -- -- Interfaces: -- Python: ON -- Python interpreter: /usr/local/python266/bin/python2.6 -- Python numpy: NO (Python interface will not cover OpenCV 2.x API) -- Use IPP: NO -- Use TBB: NO -- Use Cuda: No -- Use Eigen2: NO -- -- Documentation: -- Build PDF NO -- Doxygen HTMLs YES -- -- Install path: /usr/local -- -- cvconfig.h is in: /home/beat/OpenCV/OpenCV-2.2.0/release -- ----------------------------------------------------------------- -- -- Configuring done -- Generating done -- Build files have been written to: /home/beat/OpenCV/OpenCV-2.2.0/release $ make opencv_test_coreコマンドを実行しセルフテストを行います。 $ ./bin/opencv_test_core ...<略> [49f4d0d1dc035294] stat-sum: .................................................... Ok ================================================= Summary: 0 out of 78 tests failed Running time: 00:01:02 make installでインストーし/usr/local以下にOpenCVの各ファイルがインストールされていることを $ sudo make install $ cd /usr/local/bin $ ls opencv_createsamples opencv_haartraining opencv_performance opencv_traincascade |