1. Qiita
  2. 投稿
  3. Ruby

chef-ruby_buildで入れたruby-buildを更新する

  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

chefでrbenvを使ってrubyをインストールしようとしたところ以下のようなエラーに。

STDERR: Downloading ruby-2.0.0-p247.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
/usr/local/bin/ruby-build: line 144: pushd: ruby-2.0.0-p247: No such file or directory

BUILD FAILED

どうやらruby-buildでソースをダウンロードする際に ftp.ruby-lang.org にhttpでアクセスできなくなったのが原因のようです。
現在はftpで取得するよう修正されています。

しかし、chef-ruby_buildを利用している場合、既にruby-buildがインストールされていると更新がかからないようになっているので、以下のようにruby_buildのattributeにupgrade設定をする必要があります。

nodes/{host_name}.json
{
  "ruby_build": {
    "upgrade": "sync"
  },
  "rbenv": {
    "user_installs": [
      {
        "user": "app",
        "rubies": ["2.0.0-p247"],
        "global": "2.0.0-p247",
        "gems": {
          "2.0.0-p247": [
            { "name": "bundler" }
          ]
        }
      }
    ]
  },
  "run_list": [
    "recipe[ruby_build]",
    "recipe[rbenv::user]"
  ]
}

upgrade設定をしたあとにcookすると正しくインストールできました。

knife solo cook {host_name}

参考