Synology DiskStationに「perl-5.16.2」をインストールします。DiskStation(DSM 4.1)には標準で5.8.6(ipkgでインストールできるバージョンは5.8.8)がインストールされていますが、古いため新バージョンを別途インストールします。
コンパイルの際に「Errno_pm.PL」でヘッダファイル関連でエラーが発生しましたので簡単なパッチを当ててからコンパイルを実行しています。
※以降の操作はrootではなく作業用ユーザでログインして作業します。
※環境の準備は「環境の準備-1:基本設定」以降の各ページを参照のことです。
まず、パッチファイルを用意します。内容は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
diff -uNr perl-5.16.2-org/ext/Errno/Errno_pm.PL perl-5.16.2-m1/ext/Errno/Errno_pm.PL --- perl-5.16.2-org/ext/Errno/Errno_pm.PL 2012-10-26 11:44:15.000000016 +0900 +++ perl-5.16.2-m1/ext/Errno/Errno_pm.PL 2012-11-26 00:00:00.000000016 +0900 @@ -144,8 +144,10 @@ ) { # Some Linuxes have weird errno.hs which generate # no #file or #line directives - my $linux_errno_h = -e '/usr/include/errno.h' ? - '/usr/include/errno.h' : '/usr/local/include/errno.h'; +# my $linux_errno_h = -e '/usr/include/errno.h' ? +# '/usr/include/errno.h' : '/usr/local/include/errno.h'; + my $linux_errno_h = -e "/opt/include/errno.h" ? + "/opt/include/errno.h" : '/usr/local/include/errno.h'; $file{$linux_errno_h} = 1; } elsif ($^O eq 'beos' || $^O eq 'haiku') { # hidden in a special place |
上記を「perl-5.16.2-m1_Errno_pm.PL.patch」として保存して、共有フォルダの「extra」にコピーした状態で以下の手順を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
cd ~/src wget http://www.cpan.org/src/5.0/perl-5.16.2.tar.gz tar xfz perl-5.16.2.tar.gz mv perl-5.16.2 perl-5.16.2-m1 cd perl-5.16.2-m1 cp /volume1/extra/perl-5.16.2-m1_Errno_pm.PL.patch . patch -p1 < perl-5.16.2-m1_Errno_pm.PL.patch sh Configure -de -Dprefix=/usr/local/gx -Dcc=/opt/bin/gcc -Dusethreads -Dlibpth='/usr/local/gx/lib /opt/lib /opt/powerpc-linux-gnuspe/lib /lib /usr/lib' -Dlddlflags='-shared -L/usr/local/gx/lib -L/opt/lib -L/opt/powerpc-linux-gnuspe/lib -L/opt/local/lib' -Dloclibpth='/usr/local/gx/lib /usr/local/lib' -Dlocincpth='/usr/local/gx/include /usr/local/include' -Aldflags='-R/usr/local/gx/lib' make make test sudo make install cd .. tar cfzp perl-5.16.2-m1.tgz perl-5.16.2-m1 rm -Rf mv perl-5.16.2-m1 mv perl-5.16.2.tar.gz ../backup/src/ mv perl-5.16.2-m1.tgz ../backup/tgz/ cd .. sudo ldconfig |
makeおよびmake test共にかなり時間を要しますが、待っていればそのうち終わります。
そして問題無くインストール完了すると、新バージョンのPerlが使えるようになります。
今回、手動で別のディレクトリにPerlをインストールした結果、以下の通り合計3つのPerlが存在することになります。
それぞれ別々のディレクトリに存在しますので、コマンドラインでPerlを使うときはフルパスでPerlを実行するか、またはデフォルトで新バージョンを使いたいときは「インストール用ディレクトリ」で記載した通りパスを通しておく必要があります。
またCGI/Perlでは、スクリプトの1行目でフルパスでどのPerlを使うか指定する必要があります。
いずれにせよお好みでバージョンの使い分けが可能です。