nDiki : Module::Install
Module::Install
ExtUtils::Makemaker あるいは Module::Build 上で動くモジュールインストーラ。 簡便な記述や、インストール時の自動依存モジュールインストール機能などを提供する。
必要なファイルは配布パッケージの inc ディレクトリにコピーされ同梱されるので、インストールする側はインストーラのために他のモジュールをインストールしておかなくてよいのが特長。
Module::Install を用いて Makefile.PL を作成すると
- 依存モジュールを、それぞれ必須のもの・ビルドのみ時に必要なもの・推奨のものと分けて処理できる。
- Makefile.PL 実行時に、未インストールの依存モジュールを CPAN からインストールできる。
- 依存モジュールを feature 別にまとめて、ビルド時に未インストールのものをインストールするか対話的に選択できる。
などの機能が使えるようになる。
必要な Perl バージョン
Perl 5.004 以上で利用できるので、古い Perl 向けでも動くモジュールインストーラを作成できる。 ただし一時期古い Perl では動かないバージョンがあった。
スポンサード リンク
Related term
Perl モジュール WiKicker blib Perl 5.005_03 libwww-perl Perl style guide CPAN::Site 命名規則 CPAN::Mini::Inject パッケージ名 README Perl モジュールリリースチェックリスト ExtUtils 検索 h2xs ExtUtils::ModuleMaker::TT ExtUtils::ModuleMaker 標準 Perl ライブラリ PPM::Make perltidy バージョン番号 Log::Log4perl Perl v5.8.8 ポイント チェックリスト Build.PL 2005年 DiKicker nDiki Search::InvertedIndex
2006年2月10日 (金)
■ WiKicker の Makefile.PL を Module::Install ベースに

WiKicker には依存している Perl モジュールとして、必須なものとオプションなものがある。 必須なものは例えば Log::Log4perl など。 一方 Cache::Memcached や HTML::Scrubber などは、追加機能を使用したい場合のみ必要である。
一般的な Perl モジュールパッケージと同様、WiKicker では Makefile.PL に ExtUtils::MakeMaker を使っている。 必須な依存 Perl モジュールは PREREQ_PM に指定してあるが、オプションのものについては独自にチェックして警告をするにとどめていた。 しかしこれだと、オプションのものは CPAN.pm を使って自動的にインストールすることができない。
ということで検討した結果、Module::Install を用いることにした。 Module::Install を用いて Makefile.PL を作成すると、
- 依存モジュールを、それぞれ必須のもの・ビルドのみ時に必要なもの・推奨のものと分けて処理できる。
- Makefile.PL 実行時に、未インストールの依存モジュールを CPAN からインストールできる。
- 依存モジュールを feature 別にまとめて、ビルド時に未インストールのものをインストールするか対話的に選択できる。
などの機能が使えるようになる。
Module::Install の実行に必要なファイルはパッケージの inc ディレクトリ以下に自動的にコピーされ配布パッケージに含められるので、インストールする側はそのために余分なインストールを強いられることもない。
最終的に内部で ExtUtils::MakeMaker を使っているので、それの機能はほぼ全て使える。
Perl のバージョンも 5.004 から使えるとのことで、Perl 5.005_03 以上を対象としている WiKicker で使っても問題なし。
ということで、Makefile.PL をさらっと書き換え。
合わせて WiKicker に含まれていた実験的な機能を削除して、(オプションな)依存モジュールも減らすことにした。
次回のリリース版から、Module::Install ベースだ。
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- WiKicker 0.29 リリース - ビルドまわりの改良など (2006-02-13)
2006年2月11日 (土)
■ 野良パッケージと依存 Perl モジュールのインストールセット をCPAN::Site で

WiKicker をオフラインで簡単にインストールできるようにしたい。 WiKicker 自体は
perl Makefile.PL make make test make install
で簡単にインストールできるのだが、事前に CPAN にある依存 Perl モジュール(とそれらが依存している Perl モジュールら)をインストールしておかなければならない。
オンライン環境では CPAN.pm を使って芋蔓式にインストールできる。 WiKicker は次回のリリースから Module::Install を採用するので、perl Makefile.PL 時にそれらを行うことができるようにもなる。
しかしオフライン環境になると、話は変わってくる。
普通にやろうとするとあらかじめ依存関係を全部洗い出して事前にダウンロードしておき、依存関係の順番を考えながらインストールしていかなければならない。
これがかなり面倒。しかも各モジュールのバージョンアップにともない、その時その 時で変化する可能性があるので、適宜確認しなければならない。
でれば CPAN.pm の力を借りたい。
CPAN.pm はインストール時に $CPAN::Config->{keep_source_where} (通常 ~/.cpan/sources) に溜め込むので、これを CD-ROM 等に書き込んでオフラインインストールで使用することができる (cf. perldoc CPAN)。
だいたいはこれでうまくいくのだが問題もあって、この方法だと(WiKicker などの)野良パッケージを、うまく一緒にすることができない。
野良パッケージを扱うには CPAN::Site、あるいは CPAN::Mini::Inject あたりを使えば良さそうだ。
今回はまず、CPAN::Site での手順を調べてみる。
~/perl-5.8.8 以下にクリーンな Perl v5.8.8 をインストールしてインストールセットを作成していく。
@ CPAN::Site をインストールする (オンライン)
rm -rf ~/.cpan ~/perl-5.8.8/bin/perl -MCPAN -e shell cpan> install LWP cpan> install CPAN::Site cpan> exit
これで CPAN::Site が使えるようになるとともに、CPAN::Site と LWP および依存モジュールのソースアーカイブが ~/.cpan/sources 以下にたまる。
WiKicker のインストール中に libwww-perl を途中で入れると CPAN.pm が使ってこともあってかうまくいかないので、先に一緒に入れてしまう。
@ インストールしたい野良パッケージ用のローカル CPAN サーバを作成する
野良パッケージら (今回は WiKicker のみ)を含んだ ローカル pseudo CPAN サーバを作成する。
mkdir -p ~/public_html/CPAN/authors/id/N/NA/NANEY cp WiKicker-0.xx.tar.gz ~/public_html/CPAN/authors/id/N/NA/NANEY ~/perl-5.8.8/bin/mkpackages ~/public_html/CPAN
CPAN::Site に含まれている mkpackages を使うことで、CPAN::Site が参照することのできるインデックスファイルが作成される。
@ WiKicker と依存するモジュールをインストールする (オンライン)
次に ローカル CPAN サーバと、CPAN (ミラー) からパッケージを自動ダウンロードしてインストールする。ここでは CPAN.pm のかわりに CPAN::Site を使用する。
~/perl-5.8.8/bin/perl -MCPAN::Site -e shell cpan> o conf urllist unshift http://localhost/~myname/CPAN cpan> reload index cpan> install WiKicker cpan> exit
ここでローカル CPAN サーバを file:/// 等で指定すると、そこから読みとったファイルは ~/.cpan/sources/ 以下にコピーされないので一箇所にまとめることができないので注意 (かなりはまった)。
これが終わると、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 LWP cpan> install CPAN::Site cpan> exit
まずは以上で CPAN::Site が入るで、CPAN::Site で shell を起動しなおす。
/usr/local/perl-5.8.8/bin/perl -MCPAN::Site -e shell cpan> install WiKicker cpan> exit
これで /tmp/CPAN から芋蔓式に WiKicker がインストールされる。
@ ポイント
Debian のパッケージリポジトリなどとは違って、CPAN は基本的に「一つのリポジトリおよびそのミラー」という概念しかないようである。 したがってモジュールのインデックスファイルも1組しかなく、複数のサイトから異なるモジュールセットを配布するということができるようになっていない。
これに対し、自前パッケージ群用にも1セットインデックスファイルを作って扱えるようにしようというのが CPAN::Site である。
これを用いると「もう一つのリポジトリ」を扱えるようになるが、逆にいうと利用する場合は CPAN::Site をインストールしなければならないということでもある。
- 野良パッケージと依存 Perl モジュールのインストールセット を CPA... (2006-02-12)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- Perlプログラムのコードカバレッジ解析 (2004-06-03)
- [ Perl ] PDL 2.4.1 から eigens が固有ベクトルを... (2004-03-05)
2006年2月13日 (月)
■ WiKicker 0.29 リリース - ビルドまわりの改良など

2005年10月6日以来、約2カ月ぶりのリリース。
Makefile.PL を Module::Install ベースにして、依存 Perl モジュールのインストールを楽にした。 Wiki 機能の方は大きな変更なし。DiKicker には はてなブックマーク上の検索結果を表示する機能を追加。
また今回は、実験的な実装でほとんど使われていないと思われるモジュールについて、メンテナンスの問題から削除を行った。 大きなところでは、GnuPG による電子署名によりアップロード利用者をチェックする画像アップロードページ/機能を削除。
利用している方がいれば削除した機能は復活させようと思うが、多分いないかなと。
アップロード機能は、今後のユーザ管理機能の追加時にあらためて追加する予定。
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
2006年4月29日 (土)
■ 最新の Module::Install は Perl 5.005_03 ステ?

ゴールデンウィークに突入。 9連休を利用して、一気に WiKicker コーディングを企んでいる。
さっそくちょこちょこ修正してパッケージングし、www.naney.org へインストール。 …… Perl Makefile.PL でコケる。
どうも use inc::Module::Install; でエラーを起してしまっているようだ。 Makefile.PL は変更していないので、そうすると Module::Install の問題っぽい。
tarball をパッケージングするホスト側の Module::Install を 0.57 まで落としたところ、Perl 5.005_03 でも通るようになった。
Module::Install is a package for writing installers for CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a strictly correct manner with both the ExtUtils::MakeMaker and Module::Build build systems, and will run on any Perl installation version 5.004 or newer. (Module::Install 0.61 より)
とあるように古い Perl もサポートにも気を払っているのが気にいって ExtUtils::MakeMaker から移行しただけにちょっと残念。
今後また 5.005_03 でも動くようになるのか、それとも捨てられるのか要チェック。
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- Time::Local::gmtime の範囲チェック (2003-12-23)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- Perl 5.005_03 + Template Toolkit 2.14 (2004-11-10)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年6月28日 (水)
■ ExtUtils::MakeMaker で prompt

Perl でy/n 入力やパス入力などを対話的に行う簡単なセットアップツールをたまに書きたくなることがある。 CPAN.pm の初期化や Module::Install で feature の選択の時に入力を求められる形のアレ。
何かいいモジュールがあるのかなと思ったら、上記の2つは ExtUtils::MakeMaker::prompt を使っていた。 灯台下暗し。 ExtUtils::MakeMaker は標準でいつでも使えるから、ちょっとしたデフォルト値付き問い合わせをするのに便利。
@ Perl モジュールインストール時の、対話入力をデフォルトで済ます環境変数
それから PERL_MM_USE_DEAFAULT という環境変数の使い方もチェック。
Perl モジュールをインストールする際にいろいろ問い合わせに答えるのが面倒な場合 (どうせ全部デフォルトで OK な時など)、PERL_MM_USE_DEFAULT=1 としておくと ExtUtils::MakeMaker::prompt は入力を省略してくれる。
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- 野良パッケージと依存 Perl モジュールのインストールセット を CPA... (2006-02-12)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年7月16日 (日)
■ Module::Install 0.63 では Perl 5.005_03 OK

Module::Install 0.61 が Perl 5.005_03 では通らなくなっていてちょっとショックであった。
0.57 を使ってしのいでいたのだが、その後出た 0.63 に上げてみたところまた Perl 5.005_03 で通るように直っていた。
今後も使っていけそうで、一安心。
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- FreeBSD と Apache::Htpasswd (2006-03-02)
- CGI::Session (2004-09-01)
- Perl で CR/LF/CRLF 全対応の1行毎読み込み処理 (2006-07-28)
スポンサード リンク
Related web page
<strong>Module::Install</strong>って最近良く見るんですけど、イマイチその旨みを知らなかったんですが、 WiKicker の Makefile.PL を <strong>Module::Install</strong> ベースにに書いてありました。 で引用ですけど、 依存モジュールを、それぞれ必須のもの・ビルドのみ時に必要なもの・推奨のものと分けて処理できる Makefile.PL 実行時に、未インストールの依存モジュールを CPAN からインストールできる。 依存モジュールhttp://d.hatena.ne.jp/ZIGOROu/20061010/1160471345
■よく検索されるキーワード
torrent(56) 提案書(47) perl(45) windows(37) linux(31) 使い方(27) 書き方(25) debian(22) x31(22) usb(22) cvs(20) subversion(20) インストール(18) ドラマ(18) c#(17) mp980(17) svn(17) 修理(17) 手帳(16) ssh(15) 評判(15) アジェンダ(15) java(15) デロンギ(14) ガントチャート(13) 感想(13) n-01a(13) centos(13) tc-1(13) 充電式カイロ(13) ノート(12) ダイソー(12) thinkpad(12) rcs(12) f-01a(12) ヤマダ電機(12) ganttproject(12) 無印(11) ppm(11) レビュー(11) カイロ(11) 壁紙(11) 静電気(10) 動画(10) バッグインバッグ(10) ヨドバシカメラ(10) サンプル(10) アジェンダとは(10) wiki(10) ミノルタ(10) グッズ(10) 作り方(10) tortoisesvn(10) firefox(9) so905ics(9) memcached(9) 画像(9) gmail(9) ハクキンカイロ(9) 口コミ(9) a6(9) sh-01a(9) 冷蔵庫(9) ほぼ日手帳(9) mp3(8) emacs(8) 日本語(8) openssh(8) xampp(8) カメラ(8) nikon(8) 設定(8) 写真(8) 値段(7) flash(7) 方眼(7) web(7) docomo(7) カバー(7) リポジトリ(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 1.020836s / load averages: 0.37, 0.49, 0.44
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク