Vagrantのpluginをインストールしようとして、nokogiriのインストールエラーで止まってしまう件の対応
DigitalOcean上にVMを立てていろいろやるのを、Vagrantから実行したかった。
vagrant-digitalocean
プラグインをインストール。
$ vagrant plugin install vagrant-digitaloceal
ところが、
$ vagrant plugin install vagrant-digitaloceal Installing the 'google' plugin. This can take a few minutes... Building nokogiri using packaged libraries. Building libxml2-2.8.0 for nokogiri with the following patches applied: - 0001-Fix-parser-local-buffers-size-problems.patch - 0002-Fix-entities-local-buffers-size-problems.patch - 0003-Fix-an-error-in-previous-commit.patch - 0004-Fix-potential-out-of-bound-access.patch - 0005-Detect-excessive-entities-expansion-upon-replacement.patch - 0006-Do-not-fetch-external-parsed-entities.patch - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch - 0008-Improve-handling-of-xmlStopParser.patch - 0009-Fix-a-couple-of-return-without-value.patch - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch - 0011-Do-not-fetch-external-parameter-entities.patch ************************************************************************ IMPORTANT! Nokogiri builds and uses a packaged version of libxml2. If this is a concern for you and you want to use the system library instead, abort this installation process and reinstall nokogiri as follows: gem install nokogiri -- --use-system-libraries If you are using Bundler, tell it to use the option: bundle config build.nokogiri --use-system-libraries bundle install However, note that nokogiri does not necessarily support all versions of libxml2. For example, libxml2-2.9.0 and higher are currently known to be broken and thus unsupported by nokogiri, due to compatibility problems and XPath optimization bugs. ************************************************************************ Bundler, the underlying system Vagrant uses to install plugins, reported an error. The error is shown below. These errors are usually caused by misconfigured plugin installations or transient network issues. The error from Bundler is: An error occurred while installing nokogiri (1.6.2.1), and Bundler cannot continue. Make sure that `gem install nokogiri -v '1.6.2.1'` succeeds before bundling.
という感じのnokogiriのインストールエラーが表示されてしまった。 システムに入っているものとは違うバージョンのnokogiriを使おうとしているようなので、 ググったところ、
http://stackoverflow.com/questions/23621717/vagrant-plugin-and-nokogiri-install-issue
システムに入っているnokogiri
を使うNOKOGIRI_USE_SYSTEM_LIBRARIES=1
というオプションが!
再度オプションを付けて試したところ、無事インストールできた。
$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-digitalocean Installing the 'vagrant-digitalocean' plugin. This can take a few minutes... Installed the plugin 'vagrant-digitalocean (0.5.4)'!