0

I am unable to install vagrant-vbguest on OS X 10.10.4, because it says it can't install Nokogiri.

I have:

  • ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
  • Vagrant 1.6.2
  • VirtualBox 4.3.12

The maddening thing is that I do have nokogiri installed already:

> whereis nokogiri
/usr/bin/nokogiri

> /usr/bin/nokogiri -v
# Nokogiri (1.6.6.2)
    ---
    warnings: []
    nokogiri: 1.6.6.2
    ruby:
      version: 2.0.0
      platform: universal.x86_64-darwin14
      description: ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
      engine: ruby
    libxml:
      binding: extension
      source: packaged
      libxml2_path: /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2/ports/x86_64-apple-darwin14/libxml2/2.9.2
      libxslt_path: /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2/ports/x86_64-apple-darwin14/libxslt/1.1.28
      libxml2_patches:
      - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
      - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch
      libxslt_patches:
      - 0001-Adding-doc-update-related-to-1.1.28.patch
      - 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch
      - 0003-Initialize-pseudo-random-number-generator-with-curre.patch
      - 0004-EXSLT-function-str-replace-is-broken-as-is.patch
      - 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch
      - 0007-Separate-function-for-predicate-matching-in-patterns.patch
      - 0008-Fix-direct-pattern-matching.patch
      - 0009-Fix-certain-patterns-with-predicates.patch
      - 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch
      - 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch
      - 0014-Fix-for-bug-436589.patch
      - 0015-Fix-mkdir-for-mingw.patch
      compiled: 2.9.2
      loaded: 2.9.2

And I can reinstall it individually:

> sudo gem install nokogiri -v '1.6.6.2'
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.6.2
1 gem installed

And yet:

> sudo vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
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.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.6.2'` succeeds before bundling.

Also:

> vagrant plugin update
Updating installed plugins...
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.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.6.2'` succeeds before bundling.

It does look like the problem has nothing to do with nokogiri, but I was not able to find a solution.

Any ideas?

fulv
  • 1,016
  • 1
  • 9
  • 18
  • Well, you never issued the command mentioned in the error message. Is ruby 2.0 your system install of ruby? If so, why oh why are you messing around with it? If not, you should not be installing gems with sudo. – 7stud Jul 26 '15 at 03:24
  • If you are referring to `gem install nokogiri -v '1.6.6.2'`, just scroll up a bit and you'll see that I did, and it succeeded. I'm not sure what you mean by "messing around with it". I did list my version of Ruby at the top. I tried sudo after failing without sudo, just to see whether that might make a difference. I'm not a ruby developer, so I'm just following a trial and error process of elimination, not really understanding what's going on. That's why I'm posting here, after all. – fulv Jul 26 '15 at 21:31

1 Answers1

0

This question is quite old, but searchable. Vagrant is pluggable, and I expect it embeds Ruby, instead of working with the system Ruby you might use for scripting.

You shouldn't have to worry about Ruby gems anyway because you can install plugins right from your Vagrantfile:

# Install required plugins

  required_plugins = %w( vagrant-vbguest )

  plugin_installed = false

  required_plugins.each do |plugin|

    unless Vagrant.has_plugin?(plugin)

      system "vagrant plugin install #{plugin}"

      plugin_installed = true

    end

  end  
bbaassssiiee
  • 6,013
  • 2
  • 42
  • 55