2014年7月1日火曜日

perlをplenvで入れて、cpanmでモジュール入れてみた

前回前々回とperlのモジュールをcpanで入れてきました。
最近はrbenvのようにplenvというものでバージョンの管理とかやるそうです。
なので、plenvでcpanm使ってモジュールを入れてみました。

まずはchefのレシピを探してみたところ、あっさりと見つかりました。
https://github.com/kentaro/chef-plenv

まずはplenvとcpanmを入れました。
plenv_install "5.16.3" do
  user   "user"
  action :install
end
 
plenv_global "5.16.3" do
  user   "user"
  action :run
end
 
%w[
  Carton
].each do |mod|
  plenv_cpanm mod do
    user    "user"
    version "5.16.3"
    options "--force"
    action  :install
  end
end

続いてcpanfileに必要なモジュールを記述して、以下を実行します。
$ plenv exec carton install --deployment

モジュールを入れてみたので早速実行してみます。
$ perl test.pl
Can't locate Net/Hadoop/WebHDFS.pm in @INC (@INC contains: /home/user/app/lib/perl/Sample/../../../lib/perl /home/user/app/lib/perl /home/user/.plenv/versions/5.16.3/lib/perl5/site_perl/5.16.3/x86_64-linux /home/user/.plenv/versions/5.16.3/lib/perl5/site_perl/5.16.3 /home/user/.plenv/versions/5.16.3/lib/perl5/5.16.3/x86_64-linux /home/user/.plenv/versions/5.16.3/lib/perl5/5.16.3 .) at /home/user/app/lib/perl/Sample/WebHDFS.pm line 11.
BEGIN failed--compilation aborted at /home/user/app/lib/perl/Sample/WebHDFS.pm line 11.
Compilation failed in require at test.pl line 2.
BEGIN failed--compilation aborted at test.pl line 2.

どうやらcpanmで入れたモジュールが読み込めてないようです。
実行方法を調べてみたところ、以下のように実行すればよいようです。
$ carton exec perl test.pl


参考URL
https://github.com/kentaro/chef-plenv
http://gihyo.jp/dev/serial/01/perl-hackers-hub/002103
http://blog.papix.net/entry/2013/06/04/081554
http://tech-mr-myself.hatenablog.com/entry/2013/05/29/175716

0 件のコメント:

コメントを投稿