nDiki : Perl をインストール

Perl をインストール

CPAN モジュールを使ってガンガンモジュールをインストールした Perl 実行環境を作りたい場合は、OS などで用意されている Perl とは別に、Perl をインストールした方が管理が楽である。

自分のホームディレクトリ以下にインストールすれば、ルート権限無しで環境を構築できる。

インストール例 (Perl 5.10.0)

/usr/local/perl-5.10.0 にインストールする場合は、下記の手順で行う。

 tar zxvf perl-5.10.0.tar.gz
 cd perl-5.10.0
 sh Configure -de -Dprefix=/usr/local/perl-5.10.0
 make
 make test
 make install

インストール例 (Perl 5.8.8)

/usr/local/perl-5.8.8 にインストールする場合は、下記の手順で行う。

 tar zxvf stable.tar.gz
 cd perl-5.8.8
 rm -f config.sh Policy.sh
 sh Configure -de -Dprefix=/usr/local/perl-5.8.8
 make
 make test
 make install

v5.8.7 も同じ。

関連情報

1999年2月4日 (木)

Solaris 2.6 へ BerkeleyDB-2.6.4 付き Perl コンパイル失敗

仕事の関係で、Web レンタルサーバ上に BerkeleyDB を使える Perl をインストールすることになった。 BerkeleyDB は 2.6.4、Perl は 5.005_02。 5時間ほど格闘したが、Perl の make が成功しない。 今日はもう降参。

2.6.4 は Perl 5.005_02 では使えないという Web ページもみてはいるので、今度は 2.4.14 に落として挑戦してみる予定である。

しかしここまで時間がかかったのも悪条件が重なったためだ。

  • ネットワークが混んでいるのか、レスポンスが悪い。
  • 気のせいか、コンパイルも遅い。
  • Bash がはいっていない。気がつけば sh で作業してた。
  • Solaris 2.6 上での作業なんて経験なし。
  • BerkeleyDB 2.x の構築経験もなし。
  • db-2.6.4 では駄目かもとすでに思っている。
  • libdb の shared library を用意しなければならないのかと思い、Solaris での shared library の構築の仕方を調べてしまった。
  • db-2.6.4 では shared library 作成のための Makefile もないし。
  • 腹も減ってきた。

ああ疲れた。

[ 2月4日全て ]

2006年12月15日 (金)

Perl スクリプトを PAR ファイルにして PAR リポジトリに登録する

PAR リポジトリから Perl モジュールをネットワーク配信するためには、以下の手順で PAR ファイルを作成する。

 perl Makefile.PL
 make
 make test
 perl -MPAR::Dist -e blib_to_par

blib ディレクトリ以下のファイルもとに PAR ファイルが作成されるので、でき上がった PAR ファイルを リポジトリに登録すれば良い(PAR::Repository でビルド済み Perl モジュールをネットワーク配信)。

ではちょっとした Perl スクリプトを PAR リポジトリからロードして使えるようにするにはどうすればよいか。もちろん h2xs などで一式そろえ make して blib ツリーを作るようにすればいいが、たった 1 つのスクリプトファイルだけの時などは大袈裟だ。

この場合は pp でいける。

 echo 'print "hello world!"' > myscript.pl
 pp -o myscript.par -p myscript.pl
 parrepo inject -r /tmp/PAR myscript.par -v 1.00 \
   -a MSWin32-x86-multi-thread -p 5.8.8 \
   --any-arch --any-version

スクリプトのメタデータがないので、parrepo に登録する際に明示的にオプションで指定してあげる必要がある。

-v
プログラムのバージョン番号
-a
アーキテクチャ
-p
Perl のバージョン
--any-arch
アーキテクチャ非依存で動くならば指定しておく
--any-version
任意の Perl のバージョンで動くならば指定しておく。

PAR ファイル(にした Perl スクリプト)が --any-arch で --any-version であっても、-a と -p は必須だ (PAR::Repository の中にアーキテクチャ/バージョンつきで登録された上でシンボリックリンクの形で any 扱いにされるため)。

これで PAR リポジトリからスクリプトを実行できるようになる。 スクリプトの更新もリポジトリ側で行うだけで良くなる。

 perl -e "use PAR { repository => 'http://www.example.com/PAR/',
                    run => 'myscript.pl'}"

お好みで実行形式ファイルにしておけば Perl をインストールすることなく実行できるようになるので便利。

 pp -o myscript.exe -M PAR::Repository::Client \
   -e "use PAR { repository => 'http://www.example.com/PAR/',
                 run => 'myscript.pl'}"

ちなみに PAR リポジトリを使わずに、直接 PAR ファイルを指定して実行できることもできる。

 perl -e "use PAR { file => 'http://www.example.com/myscript.par', \
                    run => 'myscript.pl' }

ちょっとした用途ではこちらでも良いけれど、アーキテクチャ別の管理やらモジュールの管理やらを考えると PAR リポジトリを作ってしまった方が楽。

[ 12月15日全て ]

About

Process Time: 0.13975s / load averages: 0.71, 0.59, 0.60