hello-world
webエンジニアのメモ。とりあえずやってみる。

chefでruby-shadowのエラーが発生した場合の対処法

公開日時

ユーザアカウント追加のレシピを適用した際にruby-shadowの部分で以下のようなエラーが発生しました。

[2014-08-29T19:16:10+09:00] ERROR: gem_package[ruby-shadow] (user::default line 10) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /usr/bin/gem install ruby-shadow -q --no-rdoc --no-ri -v "2.3.4" ----
STDOUT: Building native extensions.  This could take a while...
STDERR: ERROR:  Error installing ruby-shadow:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h

レシピ内には

gem_package "ruby-shadow" do
  action :install
end

と書いていたのですが、gem_packageだとsystemのgemとして入ってしまうためうまくいかないようです。

chefのgemとして入れるようにchef_gemとして指定した場合はうまく動きました。

chef_gem "ruby-shadow" do
  action :install
end

参考


Related #Chef

[chef]vagrant上の仮想マシンの場合のみ特定の処理を実行したい

aws上のAmazonLinuxとvagrant上のCentOS両方で使えるレシピを作成しようとした際に、vagrant上の仮想マシンのみ特定の処理を実行したいと思い調べてみました。

nginx1.4.1をchefでソースからインストールしてみる(websocket proxy)

以前、Vagrant上にNode.jsの環境構築を行いましたが、nginx1.3からwebsocketのproxyが可能になったとのことなので、最新の安定版であるnginx1.4.1をchefでインストールして、websocketのproxyができるまでを確認してみました。

[Mac]『入門Chef Solo』を読んで試してみた

伊藤直也さんの『 入門Chef Solo』を読んで、実際にVagrantを使って試してみた。

[Mac]chef-soloとBerkshelfを使ってNode.jsの環境構築(MongoDB, Redis)

今回はchef-soloとBerkshelfを使ってNode.jsの環境構築をやってみた。