nDiki
2006年2月12日 (日)
■ 野良パッケージと依存 Perl モジュールのインストールセット を CPAN::Mini::Inject で

前回は CPAN::Site を用いたオフライン用インストールセットを作成した。
今回は空の CPAN のミラーを作り、そこに野良パッケージを突っ込んで使用する形でインストールセットを作成してみる。
~/perl-5.8.8 以下にクリーンな Perl v5.8.8 をインストールしてインストールセットを作成していく。
@ CPAN::Mini::Inject をインストールする (オンライン)
perl -MCPAN -e shell cpan> install CPAN::Mini::Inject cpan> exit
CPAN::Mini::Inject は、インストールセットには必要ない。 ~/perl-5.8.8 にはインストールせずに、普段使っているほうにインストールしておく。
@ インストールしたい野良パッケージ用のローカル CPAN サーバを作成する (オンライン)
以下スクリプト例(エラー処理などは省略)
#!/usr/bin/perl -w
use strict;
use File::Path;
use CPAN::Mini;
use CPAN::Mini::Inject;
my $remote = 'ftp://ftp.dti.ad.jp/pub/lang/CPAN/';
my $local = '/home/myname/public_html/CPAN';
my $repository = '/home/myname/repository';
mkpath([$local, $repository], 1, 0755);
# module_filters で全てのモジュールを対象外にして、空の CPAN ミラーを作る
CPAN::Mini->update_mirror(remote => $remote,
local => $local,
diremode => 0755,
trace => 1,
module_filters => [ qr/./ ]);
my $injector = CPAN::Mini::Inject->new;
$injector->{config}{remote} = $remote;
$injector->{config}{local} = $local;
$injector->{config}{repository} = $repository;
$injector->{config}{diremode} = 0755;
# CPAN::Mini::Inject リポジトリに追加したあと、
# CPAN ミラーへ 注入
$injector->add(repository => $repository,
module => 'WiKicker',
authorid => 'NANEY',
version => '0.xx',
file => 'WiKicker-0.xx.tar.gz')
->inject;
これで、~/public_html/CPAN に野良パッケージの追加された CPAN ミラーが作成される。
@ WiKicker と依存するモジュールをインストールする (オンライン)
rm -rf ~/.cpan ~/perl-5.8.8/bin/perl -MCPAN -e shell cpan> o conf urllist pop cpan> o conf urllist push http://http://localhost/CPAN cpan> reload index cpan> o conf urllist push ftp://ftp.dti.ad.jp/pub/lang/CPAN/ cpan> install WiKicker cpan> exit
ここでローカル CPAN サーバを file:/// 等で指定すると、そこから読みとったファイルは ~/.cpan/sources/ 以下にコピーされないので一箇所にまとめることができないので注意。
またCPAN ではモジュールインデックスファイルは1組しか持てないようで、初期設定のままだと野良パッケージを含む CPAN ミラーのインデックスファイルが使われない。 そのため一旦 urllist を空にした後、 自分の CPAN ミラーを指定しインデックスファイルをロードする。 その後にソースパッケージを取得するセカンダリとして通常の CPAN (ミラー)を指定するようにしている。
これが終わると、WiKicker とそれに必要なファイルが ~/.cpan/sources にたまる。
これを適宜アーカイブして保存する。
@ オフラインでインストールする
別の環境で例えば /usr/local/perl-5.8.8 にインストールされた Perl に WiKicker をオフラインでインストールするとする。
先の工程で作成したファイルセットが /tmp/CPAN においてあるものとする。
/usr/local/perl-5.8.8/bin/perl -MCPAN -e shell # 初期化でオフラインのため CPAN ミラーの選択ができずに URL の入力を # 求められたところで file:///tmp/CPAN を指定 cpan> install WiKicker cpan> exit
これで /tmp/CPAN から芋蔓式に WiKicker がインストールされる。
@ ポイント
CPAN::Site を利用して構築した場合は、インストール時にも CPAN::Site が必要だが、こちらはインストールセットの利用には CPAN.pm だけで良いというのが利点。
今回は CPAN::Mini で空の CPAN ミラーを作成し野良パッケージを追加した。
ここで最初から CPAN の最新パッケージの全ミラーを CPAN::Mini で作成し、これに野良パッケージを追加してインストールセットを作ってしまうという方法もある。 この場合は後で必要に応じてミラーからパッケージを入れられるというメリットがあるかわりに、ミラー作成のコストがかかるというデメリットがある。
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- SVN::Webインストール失敗 (2006-02-17)
- CPAN のPerl モジュールを RPM パッケージ化する (2003-04-22)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.206886s / load averages: 0.15, 0.14, 0.14
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。