Mac OS X 10.6(Snow Leopard)にPerl 5.005をインストールする


自宅の MacBook Pro の開発環境をセットアップしています。
 
昨年、Debian(lenny) で Perl 5.005 がそのままではインストールできなかったのと同様に、Mac OS X 10.6 (Snow Leopard) でも Perl 5.005 はそのままではインストールできませんでした。

自分が開発/メンテナンスしているモジュールは、これまで、できる限り 5.005 対応を残してきたけれど、もう動作確認環境すら満足に構築できないので、もういい加減に 5.005 対応は捨てるべきか?

と思いつつも、5.005 の動作確認環境をセットアップしてみました。

5.005 のソースコードは、現在も Ring サーバからダウンロード可能です。
以下の手順でインストールしました。

wget http://ring.riken.go.jp/pub/lang/perl/CPAN/src/5.0/perl5.005_04.tar.gz
tar zxvf perl5.005_04.tar.gz
cd perl5.005_04
./Configure -D prefix=/usr/local/perl-5.005 -de
vi makedepend.SH
make
sudo make install

makedepend.SH は、前回 Debian のときと同様 に以下の1行を追加します。

--- makedepend.SH.orig 2009-11-21 11:52:08.000000000 +0900
+++ makedepend.SH 2009-11-21 11:52:11.000000000 +0900
@@ -132,6 +132,7 @@
-e '/^#.*<builtin>/d' \
-e '/^#.*<built-in>/d' \
-e '/^#.*<command line>/d' \
+ -e '/^#.*<command-line>/d' \
-e '/^#.*"-"/d' \
-e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
-e 's/^[ ]*#[ ]*line/#/' \

make test は、sysv まわりで通りませんが、5.005 の時代には Mac OS X が存在
しなかったのでそれは仕方ないでしょう。(Mac OS X 10.0 は、2001年リリース)
make test は無視すれば、それ以外は、無事にインストールできます。

今回の用途は、既存のモジュールを Perl 5.005 でコンパイル/テストすること。
Test::More などのテスト用モジュールが必要です。
しかし、cpan コマンドでインストールできる最新の Test::More は Perl 5.005 に対応していません
Test::Simple の Changes によると、

0.75 Sat Feb 23 19:03:38 PST 2008
Incompatibilities
* The minimum version is now 5.6.0.

とのことなので、2008年2月から 5.005 が捨てられ、5.6.0 以降対応になったようです。
そこで、1つ前のバージョン 0.74 を探します。
もう 0.74 は CPAN 上には残っていないのですが OpenBSD のサイトに残っていました:
http://ftp.eu.openbsd.org/pub/buildit/source-archive/Test-Simple-0.74.tar.gz

(追記)CPAN から消えてしまったバージョンも backpan に残っているそうです。
http://backpan.perl.org/authors/id/M/MS/MSCHWERN/Test-Simple-0.74.tar.gz

しかし加えて、Test::Simple の依存モジュール Test::Harness の最新版も 5.005 に対応しません

3.17 2009-05-05
- Deprecated support for Perls earlier than 5.6.0.

2009年5月から、5.6.0 以降対応になったようです。
こちらは、1つ前のバージョン 3.16 が CPAN 上にあります:
http://ring.riken.go.jp/pub/lang/perl/CPAN/modules/by-module/Test/Test-Harness-3.16.tar.gz

また、LWP::UserAgent も必要になります。
こちらの最新版も、5.005 には対応していません。古い 5.814 を利用します:
http://ring.riken.go.jp/pub/lang/perl/CPAN/modules/by-module/Net/libwww-perl-5.814.tar.gz

5.005/5.6 では Encode.pm は使えませんから、Jcode.pm を使います。
こちらも、最新版は 5.005 で make test が通りませんでした。
tr.t だけの問題ですので、CodeRepos 上のファイルを更新させてもらいました:
http://svn.coderepos.org/share/lang/perl/Jcode/trunk/t/tr.t

以上で、5.005 で各モジュールの最低限の動作確認ができるようになりました。

とはいえ、この状況を見ると、もう今後は(自分みたいに)よっぽどの物好きな人でもない限り、
新規に 5.005 の環境を作る人はいないでしょうから、メンテナンスしているモジュールでも、
今後のバージョンアップ等のタイミングで、5.8.x 以降対応に切り替えていきたいところです。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 7

なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

この記事へのコメント

hiroaki
2009年11月22日 20:57
企業のサーバなどでは 5.005_03 も未だ現役ばりばりで、そのせいでしょっちゅうモジュールのバージョンに苦労している者です。 5.005 をどうか見捨てないでください。
2009年11月22日 21:50
>miyagawaさん 
backpan に残っているんですね、ありがとうございました。追記しました。  

>hiroakiさん 
なるほど。公開ウェブサーバ系だと、リニューアルのタイミングでサーバ・OS が変わって、必然的に Perl のバージョンも変わることが多いですが、企業内で使われているサーバだとセキュリティパッチを当てつつも、互換性のために古いバージョンを使い続けなければならない場合もありそうですね。。。

この記事へのトラックバック