Perlのモジュール管理システムCPANでは, バージョンナンバーに「_
」が含まれるものはDeveloper Release(試験的なリリース)として扱われるようになっています(詳細はここなどを参照).
「機能的にまだベータクオリティだが, CPANにアップしておく」という場合に用いられます.
例えば, 最近個人的に着目しているAnikiというORM(Mobile Factoryのkarupanerura師製)もCPAN上にDevelopment Releaseされています.
▲ metacpanにおけるAniki-0.02_02の様子. _
が入っているのでライブラリ名が赤字になっていて, Developer Releaseであることがわかる(通常は黒色).
例えばAnikiの場合, 現時点ではCPANへのリリースが全てDeveloper Releaseになっているので, cpanm
コマンドでインストールしようとすると, 「見つけられません」というエラーが表示されます.
$ cpanm Aniki ! Finding Aniki on cpanmetadb failed. ! Finding Aniki () on mirror http://www.cpan.org failed. ! Couldn't find module or a distribution Aniki
※余談として, 上記のような場合でもしDeveloper Releaseではないリリースが1つ以上存在する場合は, その中で一番新しいものがインストールされるようになっています.
この問題の解決策としては, Aniki@0.02_08
のようにバージョン指定をすればOKです.
$ cpanm Aniki@0.02_08 --> Working on Aniki Fetching http://www.cpan.org/authors/id/K/KA/KARUPA/Aniki-0.02_08.tar.gz ... OK Configuring Aniki-0.02_08 ... OK Building and testing Aniki-0.02_08 ... OK Successfully installed Aniki-0.02_08 1 distribution installed
cpanfile
からCartonのcarton
コマンドを利用する場合も同様で, cpanfile
において次のように記載しておかなければ, carton install
に失敗します.
requires 'Aniki', '== 0.02_08';
Developer Releaseのモジュールをプロダクション環境で利用することは稀かとは思いますが, 趣味プロダクトや技術調査等ではあり得なくはないと思うのでメモしておきます.