Vagrant環境でのbundle installで失敗する

Windows 8.1上のVagrant(CentOS Linux)にて,Ruby on Railsを利用していますが、Railsのディレクトリを、共有フォルダの /vagrant 配下にセットアップしたときに,毎回この失敗をしてしまうんです.

GemのインストールにBundlerを使っています.その際,Gemのインストールパスを次のように指定します.

$ bundle install --path vendor/bundle

これは,よくあるパターンで,Railsの作業用のディレクトリ配下のvendor/bundleにすることで,システムのGem(Shared Gems)には影響させないようにするごく一般的なやり方です.

:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/home/vagrant/.rbenv/versions/2.0.0-p598/bin/ruby extconf.rb
creating Makefile

Gem files will remain installed in /vagrant/test/vendor/bundle/ruby/2.0.0/gems/json-1.8.2 for inspection.
Results logged to /vagrant/test/vendor/bundle/ruby/2.0.0/gems/json-1.8.2/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.8.2), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.2'` succeeds before bundling.

上のように,Native extensionなGemをインストールするときに,ExtentionBuildErrorが出てしまうのです.

「gem install json を使いなさい」と言っていますが,jsonをShared gemsとしてインストールしても,bcryptやNokogiriでも同様にエラーが出て中断してしまいます.

ログを見ても,ruby extconf.rbで問題なくMakefileは作成できているので,ネイティブなシステムライブラリのパスとかはきちんと認識できているはずなのです.ググっても,Makefileに失敗してエラーのパターンばかりで,上記のような例を見つけることができませんでした.

ひょっとして,Gemのインストール先が共有フォルダ上なのがまずいのかな,と思って,インストール先のパスを次のように変えてやってみました.

$ bundle install --path ~/hoge_gems/vendor/bundle

すると,何の問題もなく,json,Nokogiri,bcryptなどのNative extensionなGemがするりとインストールできました.

よかよか.

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中