cookperlというコマンドを書いた
自分用のperlバイナリをインストールするのにperlbrewは最強のツールですが、PerlのソースコードをダウンロードするのにHTTP::Liteを使っているので認証付きproxyを通らないとネットへ接続できない環境では動きません。そこだけがちょっと不便でした。
あと、最近Perlのバージョンアップ頻度が上がってきたので、その度にモジュールのセットアップをするのも面倒くさいなぁと思って、cookperlというコマンドを書いてみました。
こんなツールです。
- LWPモジュールを使ってPerlのソースコードをダウンロードするので、認証付きproxyでも大丈夫。
- cpanmをダウンロードしてきてモジュールのセットアップも行います。
- インストールしたいモジュールの一覧をrecipeと呼ばれるファイルに書いて渡すと、cpanmを使ってインストールします。
- 後からインストールしたモジュールは全部local::libを使って標準モジュールとは別ディレクトリへインストールします。
ドキュメントも、メッセージも全然整備されていませんが、以下使い方。
インストール
$ curl -LO http://roova.jp/cookperl
$ chmod +x cookperl
recipeファイルの用意
最初の行にインストールするPerlをバージョン指定します。
2行目以降はモジュール名をxxx::yyy形式で記述します。
「recipe.txt」
perl-5.12.2
Module::Starter
Test::Exception
Perlのインストール
$ ./cookperl recipe recipe.txt
Perl本体と、App::cpanminus、local::libは必ずインストールされます。
最後にPATHを設定するためのbashrcのパスが表示されるので、.bashrcへ追記して下さい。
念のために一旦ログアウトして、再度ログインして下さい。
「~/perl5/cookperl/perls/current/bin/perl」が有効なPerlへのパスになります。
local::libを使ってモジュールのインストール先が設定されています。
モジュールは、「~/perl5/cookperl/perls/current/locallib」へインストールされます。
installedコマンド
インストールされているrecipeの一覧はinstalledコマンドで表示されます。*が付いたレシピ名が現在有効なレシピです(パスが通っている、という意味)。
switchコマンド
$ switch recipe名で有効なレシピが切り替わります。
これからやること
- ドキュメントを書く
- 中途半端に書いたテストを真面目に書く
- メッセージの英語があまりにデタラメなので直す
- アンインストール機能を作る
- LWPが無い環境でも動く様にする
- モジュール名の形式チェックを真面目にやる
- 色んな環境で動くか試す(今はMac OS XとUbuntuしか試していない)
- Perl自体のビルドオプションを設定できる様にする
Perl-5.12.2をインストール出来た時点で、90%くらい自分の目的は達成しちゃった気もしますが。
こんなツール、いくらでも有る気もしますが、新幹線で計8時間も移動した時に頑張って作ってみました。
2010/9/16追記
ヘルプを一応付けました。$ ./coolperl helpで簡単な使い方が出ます。

コメントする