― Web Technology and Life ―

plenvによるPerl環境を構築するchefのオレオレサンプルレシピ

2013-06-28
さて去年の終わりごろからrubyのrbenvの流れを受け継いで、perlでもperlbrewでなくplenv,perl-buildというものでperl環境を構築しよう流れが出てきますが、遅まきながら対応したので、昨今勢いのあるchefのレシピとして晒しておきます。ruby,pyton,perl,php,nodejsのLL系は、envで統一されて見通しよくなってきましたねー。

早速、chefのオレオレサンプルレシピ


bash "download from git" do
  user "hirobanex"
  group "hirobanex"
  not_if { File.exist?("/home/hirobanex/.plenv") }
  code <<-EOC
        git clone git://github.com/tokuhirom/plenv.git /home/hirobanex/.plenv
        git clone git://github.com/tokuhirom/Perl-Build.git /home/hirobanex/.plenv/plugins/perl-build/
  EOC
  action :run
end

bash "setup shell conf" do
  user "hirobanex"
  group "hirobanex"
  code <<-EOC
        echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> /home/hirobanex/.zshrc
        echo 'eval "$(plenv init -)"' >> /home/hirobanex/.zshrc
  EOC
  action :nothing
  subscribes :run, resources(:cookbook_file => "/home/hirobanex/.zshrc", :bash => "download from git")
end

bash "plenv setup and setup perl" do
  user "hirobanex"
  group "hirobanex"
  not_if { File.exist?("/home/hirobanex/.plenv") }
  environment 'HOME' => "/home/hirobanex"
  code <<-EOC
        /home/hirobanex/.plenv/bin/plenv rehash
        /home/hirobanex/.plenv/plugins/perl-build/bin/plenv-install 5.18.0
        /home/hirobanex/.plenv/bin/plenv global 5.18.0
        /home/hirobanex/.plenv/bin/plenv rehash
        /home/hirobanex/.plenv/bin/plenv install-cpanm
        /home/hirobanex/.plenv/bin/plenv rehash
   EOC
  action :run
end

解説

オレオレなんで、基本いろいろ直接書いています。たぶん、hirobanexのところと、zshrcのところをを該当のユーザー名に変えればだいたい動くんじゃないでしょうか。オレオレなんでPerlのバージョンも固定。柔軟にしたかったら変数化すればいいけど、それそれでまた環境によって異なるので、直接固定が最初は一番。

問題は「setup shell conf」の部分で、別のchefのレシピでユーザーセットアップしているところがあって、ユーザー別にPerlを入れるか入れないか、あるいは、オレオレなshellのconfがあるから、そんなの勝手に用意しないでよっていう場合は、このあたりはいらなかったりなんですが、個人的には、もうとりえずPerl入っていますよって環境をとりあえず用意しておきたいのでまるっと入れちゃっている感じですね。

あと、「plenv setup and setup perl」のところで、schellの仕組みとか実際よくわかっていないので、plenvコマンドを単独記述する方法がわからなかったので、「/home/hirobanex/.plenv/bin/plenv」という絶対パスでごまかしています(苦笑)かっこよくシンプルに「plenv」で動かしたい。。。.zshrcじゃなくて、.zshenvとか別の設定ファイルに書けばいいのかなー。。。というか、chefが特定のユーザー環境でスクリプト実行する仕組みも詳しくよくわからんし、そっちの問題かな???ご存知の方いらっしゃったら教えてください・・・・

p>chefとか使わないよって人は、ytnobodyさんのplenvやrbenvを一発でインストールするスクリプトを参考に、環境変数を変えながら実行するれば、Perlが使えるところでなく一歩手前のところまで行けちゃいます。

Perl chef update_at : 2013-06-28T10:20:31
hirobanex.netの更新情報の取得
 RSSリーダーで購読する   
blog comments powered by Disqus