written: 2013-04-13 .. 2018-11-27

さくらインターネットのレンタルサーバーで最新版の Perl / Python を使えるようにする

さくらよ!

さくらのレンタルサーバーの Perl のバージョン管理対策が遅れ気味なのに業を煮やし、毎年のアンケートでも不平を言い続けていました。2013年末、さくらはサーバーのアップデートを実施し、Perl と PHP についてはコントロールパネルでバージョンの選択ができるような仕組にして、最高 5.14 までのバージョンが選択できるようになりました。これは従来の状況からすると、相当画期的なことで、僕は大喜びしました。

それ以降、新しい Perl のバージョンがリリースされたら、選択肢を増やしてくれるのかと思っていたのですが、現時点ではその気配はありません。

そうこうしているうちに、Perl は 5.20 がリリースされ、5.14 は瞬く間のうちに、セキュリティサポートも含めて完全にサポートが打ち切られました……(現状は、5.24 と 5.22 のみがサポート対象)。

また Python については、従来の状態(2.7 のみ)のまま、完全放置状態です。

自分のディスクスペースに Perl / Python の最新版をインストールする

ということで、さくらインターネット側の対応を待っていたら、思うようにはかどらないことは確かです。結局、自分のディスクスペースに自前の Perl や Python の環境をインストールしてしまうのが手っ取り早い。検索したら、やはり可能なようで、あまり多くはありませんが Python についてはいくつか情報(ある nakagami の日記)が見付かりました。

まあ普通に Python の公式サイトからソースファイルをダウンロードしてきて、make してインストールするという流れになります。

ただし、この作業を行うには、SSH でサーバーに接続して遠隔コンソール画面を通じてコマンド入力による作業を行なう必要があります(参考:さくらのレンタルサーバにSSHでログインしてみた)。

僕が実際にやった作業は下のような感じです:

mkdir ~/local
mkdir ~/local/src

まずは以上のようにして、公式サイトからダウンロードするファイルの置き場として ~/local/src を作成しておきました。以降は Python のインストール作業です:

Python

cd ~/local/src
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
tar -xjf Python-3.6.7.tgz
cd Python-3.6.7
./configure --prefix=$HOME/local/python/ CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib"
make
make install
cd ..
rm -rf Python-3.6.7
rm Python-3.6.7.tgz

インストールする先は ~/local/python を使っています。wget で公式サイトから最新バージョンのソースファイルをダウンロードしています。

ちなみに、configure オプションの CPPFLAGS と LDFLAGS は、pip のエラーに対応するためのものです(参考)。

Perl

Perl は Perlbrew という究極兵器があるので、トップページの簡潔な説明に従うだけでした。

~/perl5 以下にインストールされます。

これで、Perl も Python もソースコード内先頭に記述するシェバン記法で絶対アドレスを指定しておけば、CGI スクリプトとして問題なく使えるようになります。

#!/home/(さくらのアカウント名)/perl5/perlbrew/perls/perl-(Perl のバージョン)/bin/perl
#!/home/(さくらのアカウント名)/local/python/bin/python3.3

原則としては上だが、(特に Perlbrew を使っていたりすると)バージョンを更新する度に path が変わってしまい、その都度、該当するすべてのスクリプトのシェバンを修正するのは大変。そこで、~/bin に perl や python のシンボリックリンクを作成しておき、リンク先で各バージョンの path に辿り着くようにしておくとよい。各スクリプトのシェバンではこのシンボリックリンクへの path を使う。そうすれば、バージョン更新時に修正するのは、シンボリックリンクだけで済む。

#!/home/(さくらのアカウント名)/bin/perl
#!/home/(さくらのアカウント名)/bin/python

さらに Perl の CPAN を使えるようにする

CPAN の各種の拡張モジュールをインストールするために、cpan コマンドを利用します。

cpan はデフォルトでは、~/.cpan 以下に各種設定ファイルや作業用スペースとして使います。古い cpan 環境をリセットしたければ、この隠しフォルダを次のようにして削除すれば ok です。

rm -rf ~/.cpan

最初に cpan を立ち上げると対話式で色々と質問されますが、基本的にはデフォルトで ok です。


comp