読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

cpanmにMETA.ymlに書かれた依存モジュールを渡したい

いきなり追記

miyagawaさんからご指摘いただきまして、cpanm本体のコマンドできます! すばらしす。

$ cpanm --installdeps .

cpanm -h するといろいろ使い方書いてあるので見てみたほうがよかったっすね。 miyagawaさんあざっす。

以下もうすでにあまりためにならない本文

正確には、 CPANに上がっていないようなライブラリの、 META.yml内に書かれたrequiresで指定されたモジュールでかつ、 環境にインストールされていないものを標準出力して、 cpanminusに渡してうはうはしたい、つまり make installdeps 相当のことを cpanm で、 ということなんだけれども。 「つかこのやり方がデファクトだよ!」っていうのがよくわからなかったので、 以下のスクリプトを書いてみた。

#!/usr/bin/perl
use YAML::Tiny;
print join "\n", grep { eval("require $_"); $_ if $@; }
  keys %{ YAML::Tiny->read( $ARGV[0] || 'META.yml' )->[0]{requires} };

これをcpan_not_installed.plとかで保存して、

$ cpan_not_installed.pl | sudo -H cpanm

とかってやるととりあえずやりたいことはできてうはうはしてる。 他に方法あれば教えてください><