パルカワ2

PerlとRubyとイチャラブ

xbuild便利

xbuildについてはここを見る。
http://d.hatena.ne.jp/tagomoris/20130326/1364289705
https://github.com/tagomoris/xbuild

いままで基本的にVPSではPerlしか動かさない状態だったのでPerl-Buildしか使ってなかったのだけど、Rubyも動かすようになってきたので使い始めました。

# cookbooks/xbuild/recipes/default.rb
user      = node[:xbuild][:user]
group     = node[:xbuild][:group]
versions  = node[:xbuild][:versions]
languages = versions.keys

home_dir = "/home/#{user}"
bin_dir  = "#{home_dir}/xbuild"

directory "#{bin_dir}" do
  owner user
  group group
  mode  0755
  action :create
end

languages.each do |language|
  installer = "#{bin_dir}/#{language}-install"
  remote_file installer  do
    source "https://raw.githubusercontent.com/tagomoris/xbuild/master/#{language}-install"
    owner  user
    group  group
    mode   0755
    action :create_if_missing
  end

  bash "install #{language} by #{installer}" do
    local_dir = "#{home_dir}/local/#{language}-#{versions[language]}"

    user  user
    group group
    code "export HOME=#{home_dir};#{installer} #{versions[language]} #{local_dir}"
    not_if { File.exists?("#{local_dir}/bin/#{language}") }
  end

end
# cookbooks/xbuild/attributes/default.rb
default[:xbuild] = {}
default[:xbuild][:user]     = "hisaichi5518"
default[:xbuild][:group]    = "wheel"
default[:xbuild][:versions] = {ruby: "2.1.2", perl: "5.18.2"}

digitaloceanのcentos7で試した。
`user user` みたいなの動くのかなと思ったら動いたけど、やらないほうがいいと思った。
あとcpanmをインストールするところでHOME指定してないと/root/.cpanmに入れようとしてコケる。
まっさらな状態から試してみたけど、1回目こけて2回目で通った。1回目はrdocのところで死んでた。
もう一回試すの時間かかるからやめたのでよくわからない。
追記1: https://gist.github.com/kirs/7612293 調べたらこんな事書いてた。
追記2:http://hisaichi5518.hatenablog.jp/entry/2014/07/21/151341 まとめた。

perlrubyをいれた。gcc, bzip2がないとダメみたい。

スタジオさんがcookbook作ってたけど、自分にはchefで全部やる意味がよくわからなかったので使わなかった。
https://github.com/studio3104/chef-xbuild