前回、Matomo に Apache ログを食べさせようとしたら、予めインストールされている python
コマンドでは SSL 関連のエラーが出て、それならと Python 3.7.1 をインストールしようと試みるも、ビルド時にエラー。3.6.5 のインストールにありつけたものの、いざ、ログのインポートスクリプトを走らせると、Python 3 には対応してないというメッセージ。ということで、2.7.15 をインストールしてみる。
方法はもう味をしめたというか、同じことの繰り返しなので、おさらいになる。
ファイルの入手
現時点(2018/11/07)では 2.7.x は 2.7.15 が最新のよう。ここからダウンロード: https://www.python.org/downloads/release/python-2715/ $HOME/tmp
など任意の場所にダウンロードし、展開する。
1 2 3 4 |
% wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz % tar xvf Python-2.7.15.tgz % cd Python-2.7.15.tgz |
次に設定に移る。
設定
Modules/setup.dist
を編集。以下のラインをアンコメントする。
1 2 |
<span class="crayon-p">#_socket socketmodule.c</span> |
1 2 3 4 5 |
#SSL=/usr/local/ssl #_ssl _ssl.c \ # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ # -L$(SSL)/lib -lssl -lcrypto_ |
次に .configure
。
1 2 |
% ./configure --prefix=$HOME/local/ CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" |
そしてコンパイルへ。
ビルド
例のごとく、make
、 make install
を実行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
% make ...(略) running build_scripts creating build/scripts-2.7 copying and adjusting /home/{user name}/tmp/Python-2.7.15/Tools/scripts/pydoc -> build/scripts-2.7 copying and adjusting /home/{user name}/tmp/Python-2.7.15/Tools/scripts/idle -> build/scripts-2.7 copying and adjusting /home/{user name}/tmp/Python-2.7.15/Tools/scripts/2to3 -> build/scripts-2.7 copying and adjusting /home/{user name}/tmp/Python-2.7.15/Lib/smtpd.py -> build/scripts-2.7 changing mode of build/scripts-2.7/pydoc from 644 to 755 changing mode of build/scripts-2.7/idle from 644 to 755 changing mode of build/scripts-2.7/2to3 from 644 to 755 changing mode of build/scripts-2.7/smtpd.py from 644 to 755 /usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
% make install ...(略) (cd /home/{user name}/local/bin; ln -s python2.7 python2) rm -f /home/{user name}/local/bin/python2-config (cd /home/{user name}/local/bin; ln -s python2.7-config python2-config) rm -f /home/{user name}/local/bin/python-config (cd /home/{user name}/local/bin; ln -s python2-config python-config) test -d /home/{user name}/local/lib/pkgconfig || /usr/bin/install -c -d -m 755 /home/{user name}/local/lib/pkgconfig rm -f /home/{user name}/local/lib/pkgconfig/python2.pc (cd /home/{user name}/local/lib/pkgconfig; ln -s python-2.7.pc python2.pc) rm -f /home/{user name}/local/lib/pkgconfig/python.pc (cd /home/{user name}/local/lib/pkgconfig; ln -s python2.pc python.pc) rm -f /home/{user name}/local/share/man/man1/python2.1 (cd /home/{user name}/local/share/man/man1; ln -s python2.7.1 python2.1) rm -f /home/{user name}/local/share/man/man1/python.1 (cd /home/{user name}/local/share/man/man1; ln -s python2.1 python.1) if test "xno" != "xno" ; then case no in upgrade) ensurepip="--upgrade" ;; install|*) ensurepip="" ;; esac; ./python -E -m ensurepip $ensurepip --root=/ ; fi |
パスが通っていないので、リログイン。.cshrc
ファイルは前回編集済みなので、今回は Path
を設定する必要はない。してない場合は $HOME/local
をPath
に足す必要有り
結果
1 2 3 4 5 6 7 8 9 |
% python2 --version Python 2.7.15 % which python2 /home/{user name}/local/bin/python2 % python --version Python 2.7.15 % which python /home/{user name}/local/bin/python |
通った。今回は python
と python2
コマンド両方に関連付けられている。
SSL の関連付けはどうか。
1 2 3 |
% python2 -c 'import ssl; print(ssl.OPENSSL_VERSION)' OpenSSL 1.0.2o 27 Mar 2018 |
OK!レンタルサーバでの環境構築は至難の業。一難去るとまた一難という感じだけど、今回は、一山というか、一つなだらかな丘を登った感じ。まだ、Apache ログのインポートまでありつけていないので、喜ぶのは早い。