私の使っている Linux マシンの一つに、とても古い個体がある。そのマシンに最初から入っている古い Perl と共存させるかたちで最新の Perl をインストールしたい。
ただ、Perl が古いのが問題だ。OS と一緒にインストールされた Perl 5.005_03 しか入っていない。新しいライブラリを使いたいのに、バージョンが古いせいでその恩恵にあずかれない。最新の Perl をインストールしたいところだが、古い Perl を単純に新しいバージョンの Perl で置き換えてしまうと、既存のスクリプトやツールが動かなくなってしまうかもしれない。というわけで、もとの 5.005_03 を残しつつ Perl 5.8.6 を別途インストールすることにした。
ひとまず Perl のソースコード一式をダウンロードしてこよう。今の Perl の安定版の最新のバージョンってなんだっけ? perl.com http://perl.com/ を見てみると、Stable is 5.8.6. という表示があった。うわー、ちょっと前に 5.8.1 が出たと思ったら、もう 5.8.6 まで出てるのか。
RingServer から Perl 5.8.6 のソースアーカイブをダウンロード。perl.com からダウンロードしてもよかったんだけど、こういう人気のありそうなサイトには負荷をかけちゃいけないよね。日本には RingServer があるんだし、そっちからダウンロードしよう。
Index of /archives/lang/perl/CPAN/src
http://ring.pwd.ne.jp/archives/lang/perl/CPAN/src/
上記ミラーサイトから、perl-5.8.6.tar.bz2 をダウンロードした。
古い perl は /usr/bin にインストールされているから、新しい perl は /usr/local などのディレクトリに入れてやればいい。とりあえずバイナリとライブラリ群を共存させるだけなら、これで十分かな。そうだ、今後 5.8.6 以外のバージョンをインストールするかもしれないから、/usr/local/perl に入れる事にしよう。perl のパスは /usr/local/perl/bin/perl になっちゃってかっこ悪いけど、まあいいでしょ。他にも、man page のインストール先なども指定できるようだけど、今回はデフォルトのままとした。
しかし、こんなに質問項目が多いと対話形式で設定するのは大変だな。一気に設定する方法はないかなー。INSTALL を読んでみる。なになに、Configure に -d オプションを渡せば質問にすべてデフォルトで答えてくれると。それは便利だ。あと、-D を使えば設定する値を引数として Configure に渡せる。じゃあこうすればいいんだな。
Configure と make と make test まで。
configure と コンパイルを含の所要時間がどれくらいかを知りたかったので、実際には以下のようにした。
これであとは終わるのを待つだけ。生成された config.sh というファイルが Configure の結果を格納した設定ファイルだそうだ。
なんだか make test がうまくいってないみたいだけど・・・。LD_LIBRARY_PATH を設定しろって? make test まで時間かかるので、またあとでやってみよう。
実行したマシンのスペック。
ちなみに、Configure と make と make テストを Pentium4 3.0GHz HyperThreading ON + 2048MB Memory のマシンで同じように実行したところ、8分弱で終わった。さすがに速いな。make test でもエラー出なかったし。
- 私の使っている古い Linux マシン
OS は TurboLinux Server 6.5。Pentium 200MHz に 128MB の SDRAM、4GB + 3GB + 8GB で合計15GB のディスク、DEC の Tulip LAN カード。今となってはまったくパワー不足に見えるかもしれない。しかし、ハードウェアが古くても、ソフトウェアが新しければ問題ない。常用するアプリケーションは新しめのものを入れてあるし、Ruby は 1.8.1 をインストールしてある。このマシンでは MovableType も動いている。要は使い方だ。ただ、Perl が古いのが問題だ。OS と一緒にインストールされた Perl 5.005_03 しか入っていない。新しいライブラリを使いたいのに、バージョンが古いせいでその恩恵にあずかれない。最新の Perl をインストールしたいところだが、古い Perl を単純に新しいバージョンの Perl で置き換えてしまうと、既存のスクリプトやツールが動かなくなってしまうかもしれない。というわけで、もとの 5.005_03 を残しつつ Perl 5.8.6 を別途インストールすることにした。
- 複数バージョンを共存させつつインストールするには?
複数バージョンを共存させつつインストールするにはどうしたらいいんだろう? 単純にパスを別にしておけばいいのかな。たぶん configure スクリプトでインストール先ディレクトリを指定することができるだろうから、それを既存の Perl と別にしてやればいいよね。ひとまず Perl のソースコード一式をダウンロードしてこよう。今の Perl の安定版の最新のバージョンってなんだっけ? perl.com http://perl.com/ を見てみると、Stable is 5.8.6. という表示があった。うわー、ちょっと前に 5.8.1 が出たと思ったら、もう 5.8.6 まで出てるのか。
RingServer から Perl 5.8.6 のソースアーカイブをダウンロード。perl.com からダウンロードしてもよかったんだけど、こういう人気のありそうなサイトには負荷をかけちゃいけないよね。日本には RingServer があるんだし、そっちからダウンロードしよう。
Index of /archives/lang/perl/CPAN/src
http://ring.pwd.ne.jp/archives/lang/perl/CPAN/src/
perl-5.8.6.tar.bz2 28-Nov-2004 08:56 9.2M
上記ミラーサイトから、perl-5.8.6.tar.bz2 をダウンロードした。
stable.tar.bz2 28-Nov-2004 08:56 9.2Mこれも中身は同じなんだろうな。
- perl の Configure, make, make test
tar ball を展開してとりあえず Configure を実行してみる。対話形式で設定が進む。ひたすら enter キーを連打。途中で、インストール先の prefix をどうするかを聞いてきた。これを指定してやればよさそうだ。By default, perl5 will be installed in /usr/local/bin, manual pages
under /usr/local/man, etc..., i.e. with /usr/local as prefix for all
installation directories. Typically this is something like /usr/local.
If you wish to have binaries under /usr/bin but other parts of the
installation under /usr/local, that's ok: you will be prompted
separately for each of the installation directories, the prefix being
only used to set the defaults.
Installation prefix to use? (~name ok) [/usr/local]
古い perl は /usr/bin にインストールされているから、新しい perl は /usr/local などのディレクトリに入れてやればいい。とりあえずバイナリとライブラリ群を共存させるだけなら、これで十分かな。そうだ、今後 5.8.6 以外のバージョンをインストールするかもしれないから、/usr/local/perl に入れる事にしよう。perl のパスは /usr/local/perl/bin/perl になっちゃってかっこ悪いけど、まあいいでしょ。他にも、man page のインストール先なども指定できるようだけど、今回はデフォルトのままとした。
しかし、こんなに質問項目が多いと対話形式で設定するのは大変だな。一気に設定する方法はないかなー。INSTALL を読んでみる。なになに、Configure に -d オプションを渡せば質問にすべてデフォルトで答えてくれると。それは便利だ。あと、-D を使えば設定する値を引数として Configure に渡せる。じゃあこうすればいいんだな。
Configure と make と make test まで。
tar --bzip2 -xvf perl-5.8.6.tar.bz2
cd perl-5.8.6/
sh Configure -Dprefix=/usr/local/perl -de && nice -19 make && make test
configure と コンパイルを含の所要時間がどれくらいかを知りたかったので、実際には以下のようにした。
time { sh Configure -Dprefix=/usr/local/perl -de && nice -19 make && make test; }
これであとは終わるのを待つだけ。生成された config.sh というファイルが Configure の結果を格納した設定ファイルだそうだ。
なんだか make test がうまくいってないみたいだけど・・・。LD_LIBRARY_PATH を設定しろって? make test まで時間かかるので、またあとでやってみよう。
Failed 1 test script out of 849, 99.88% okay.
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You have a good chance to get more information by running
### ./perl harness
### in the 't' directory since most (>=80%) of the tests succeeded.
### You may have to set your dynamic library search path,
### LD_LIBRARY_PATH, to point to the build directory:
### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd t; ./perl harness
### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
u=27.54 s=3.1 cu=1924.17 cs=117.78 scripts=849 tests=87734
make[2]: *** [_test_tty] エラー 1
make[2]: 出ます ディレクトリ `/home/hiroaki/src/perl-5.8.6'
make[1]: *** [_test] エラー 2
make[1]: 出ます ディレクトリ `/home/hiroaki/src/perl-5.8.6'
make: *** [test] エラー 2
real 85m47.694s
user 74m29.910s
sys 4m37.180s
実行したマシンのスペック。
Linux version 2.2.18-2 (support@kernel.turbolinux.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Wed Mar 14 12:38:41 JST 2001
Detected 200460 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 399.76 BogoMIPS
Memory: 127408k/131072k available (1488k kernel code, 408k reserved, 1684k data, 84k init, 0k bigmem)
ちなみに、Configure と make と make テストを Pentium4 3.0GHz HyperThreading ON + 2048MB Memory のマシンで同じように実行したところ、8分弱で終わった。さすがに速いな。make test でもエラー出なかったし。
real 7m47.858s
user 4m20.804s
sys 0m56.577s
- すべての記事の見出し (全1029件)
- 全カテゴリの一覧と記事の数
- カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。
- .net (57件)
- 2ch (19件)
- amazon (5件)
- Apache (22件)
- bash (13件)
- Bookmarklet (9件)
- C# (45件)
- chalow (18件)
- ChangeLog メモ (20件)
- coLinux (2件)
- CSS (5件)
- Delphi (5件)
- DVD (6件)
- Excel (1件)
- F-ZERO (4件)
- FF12 (31件)
- ftp (8件)
- Google (21件)
- gpg (7件)
- HTML (19件)
- http (19件)
- IE (10件)
- IIS (4件)
- iPod (2件)
- JavaScript (14件)
- Linux (63件)
- MCP (6件)
- Mozilla (14件)
- MS SQL Server (30件)
- MySQL (4件)
- Namazu (3件)
- PC (48件)
- Perl (58件)
- PHP (2件)
- Postgres (36件)
- proftpd (2件)
- qmail (1件)
- RFC (4件)
- RSS (33件)
- Ruby (15件)
- samba (3件)
- sonic64.com (6件)
- SQL (15件)
- Squid (3件)
- ssh (7件)
- Subversion (3件)
- unix (31件)
- VSS (2件)
- Windows (34件)
- winny (9件)
- XML (9件)
- xyzzy (17件)
- おいでよ どうぶつの森 (19件)
- お菓子 (5件)
- アスキーアート (13件)
- アニメ (9件)
- クレジットカード (2件)
- ゲーム (120件)
- シェルスクリプト (18件)
- シレン2 (8件)
- セキュリティ (9件)
- ソフトウェア (21件)
- デザインパターン (2件)
- ネットワーク (30件)
- バックアップ (17件)
- プログラミング (14件)
- マリオカートDS (3件)
- メール (26件)
- メモ (116件)
- ラーメン (11件)
- 音楽 (59件)
- 給油 (3件)
- 三国志大戦 (13件)
- 車 (7件)
- 書斎 (4件)
- 食 (30件)
- 買い物 (17件)
- 簿記 (8件)
- 本 (32件)
- 漫画 (9件)
- 2007-04-23 (Mon)
- 2007-03-07 (Wed)
- 2007-02-27 (Tue)
- 2007-01-17 (Wed)
- 2007-01-15 (Mon)
- 2007-01-14 (Sun)
- 2007-01-08 (Mon)
- 2006-12-01 (Fri)
- 2006-11-22 (Wed)
- 2006-11-20 (Mon)
- 2006-11-19 (Sun)
- 2006-09-30 (Sat)
- 2006-08-29 (Tue)
- 2006-08-04 (Fri)
- 2006-07-27 (Thu)
- 2006-07-23 (Sun)
- 2006-07-17 (Mon)
- 2006-07-10 (Mon)
- 2006-07-06 (Thu)
- 2006-07-03 (Mon)
- 2006-06-29 (Thu)
- 2006-06-28 (Wed)
- 2006-06-27 (Tue)
- 2006-06-25 (Sun)
- 2006-06-19 (Mon)
- 2006-06-18 (Sun)
- 2006-06-15 (Thu)
- 2006-06-11 (Sun)
- 2006-06-01 (Thu)
- 2006-05-30 (Tue)
- プロファイル
- 斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
- リンク
- RSS
- スポンサードリンク
- Powered by
- ☆さくらインターネット☆