CookPerl
最近はPerlのバージョンアップ頻度も上がり、都度自分でバイナリをビルドしたり、定番のモジュールをインストールするのも地味に面倒くさい作業です。そんなPerlのバイナリビルドと、必要なモジュールのインストールを一度にやってくれるツールがCookPerlです。
主な特徴
- インストールするPerlのバージョンと、モジュール一覧をrecipeと呼ばれるテキストファイルで、ビルド条件を指定。
- LWPモジュールを使ってPerlのソースコードをダウンロードするので、認証付きproxy経由でも動作。
- モジュールのインストールにはcpanmを使用。
インストール
$ curl -LO http://roova.jp/cookperl
$ chmod +x cookperl
recipeファイルの用意
最初の行にインストールするPerlのバージョンを「perl-5.xx.xx」形式で指定します。
2行目以降はモジュール名をxxx::yyy形式で記述します。
recipeファイルのファイル名がそのままrecipe名になります(拡張子.txtは除きます)。
recipeファイルの例:「recipe-sample.txt」
perl-5.12.2
Module::Starter
Test::Exception
なお、空行は無視されます。
Perlのビルド・モジュールのインストール
$ ./cookperl recipe recipe-sample.txt
Perl本体と、App::cpanminusは必ずインストールされます。
最後にPATHを設定するためのbashrcへのパスが表示されるので、.bashrcへ追記して下さい。
念のために一旦ログアウトして、再度ログインして下さい。
「~/perl5/cookperl/perls/current/bin/perl」が有効なPerlへのパスになります。
モジュールは、「~/perl5/cookperl/perls/current/locallib」へインストールされます。
インストール時のログは、「~/perl5/cookperl/log/」ディレクトリ配下へ「レシピ名.log」というファイル名で保存されます。
installedコマンド
インストールされているrecipeの一覧はinstalledコマンドで表示されます。*が付いたレシピ名が現在有効なレシピです(パスが通っている、という意味)。
switchコマンド
$ switch recipe名で有効なレシピが切り替わります。
これからのバージョンアップ予定
- ドキュメントを書く
- 中途半端に書いたテストを真面目に書く
- メッセージの英語があまりにデタラメなので直す
- アンインストール機能を作る
- LWPが無い環境でも動く様にする
- モジュール名の形式チェックを真面目にやる
- 色んな環境で動くか試す(今はMac OS XとUbuntuしか試していない)
バグやバージョンアップ要望が有ればinfo@roova.jpまでお願います。
2010/10/24:更新
ログが全然正しく出力されていなかったので、修正。
2010/10/11:更新
local::libのセットアップに時間が掛かりすぎて、ビルドに失敗する(CPANモジュールがurllist取得するのに時間がかかっているみたい)ので、local::libを外して自前でモジュールのインストール先を指定してみました。

コメントする