Vagrant无法安装与nokogiri相关的插件

时间:2014-03-14 19:06:36

标签: plugins vagrant osx-mavericks

我正在尝试为vagrant(1.5.1)安装rackspace插件:

vagrant plugin install vagrant-rackspace

但它抱怨

  

Bundler,Vagrant用于安装插件的底层系统,   报告错误。错误如下所示。这些错误通常都是   由错误配置的插件安装或瞬态网络引起的   的问题。 Bundler的错误是:

     

安装nokogiri(1.6.1)和Bundler时发生错误   无法继续。确保gem install nokogiri -v '1.6.1'   在捆绑之前成功。

gem install nokogiri -v '1.6.1'/Applications/Vagrant/embedded/bin/gem install nokogiri -v '1.6.1'都有效。

我查看过一堆SO主题和博文。我尝试过的事情没有效果

  1. 正在运行xcode-select --install
  2. 安装完整的xcode
  3. brew install gcc-4.2
  4. 删除rvm和rvm版本的ruby
  5. 使用内置(mac)ruby和vagrant-embedded ruby​​安装nokogiri
  6. 尽管nokogiri安装得很好(上面#5),但两个都没有sudo,vagrant plugin install vagrant-rackspace仍然失败......

    总而言之,我可以安装nokogiri插件,但我无法安装vagrant rackspace插件,你可以帮我安装插件吗?

    相关主题

    完整输出 vagrant plugin install vagrant-rackspace --debug

9 个答案:

答案 0 :(得分:17)

我是OSX Mavericks,这对我有用:

设置为环境属性:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 

然后像往常一样安装:

vagrant plugin install vagrant-rackspace

答案 1 :(得分:3)

Vagrant附带嵌入式Ruby和隔离宝石环境。因此,手动将宝石安装到“普通”宝石环境中无济于事。

第一个问题是你永远不应该使用sudo来运行任何vagrant命令。如果可能的话,请删除〜/ .vagrant.d /或者至少将它递归回给你自己的用户。您也可以尝试将Vagrant升级到v1.5.1。

然后请点击/粘贴vagrant plugin install vagrant-rackspace --debug和〜/ .vagrant.d / gems / gems / nokogiri-1.6.1 / ext / nokogiri / mkmf.log的输出。

答案 2 :(得分:2)

发布的解决方案对我不起作用。相反,我需要指定我installed with homebrew (首先执行此操作)的libxml2,libxslt和libiconv。

我使用以下[非常简洁]命令行安装了gem manually with the embedded ruby

    /Applications/Vagrant/embedded/bin/gem install \ # select the embedded ruby
      --install-dir ~/.vagrant.d/gems \              # install to the vagrant dir
      nokogiri -v '1.6.2.1' -- \                     # pass options to nokogiri install
      --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 \
      --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib \
      --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 \
      --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include \
      --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

答案 3 :(得分:1)

这对我来说对Mavericks和Vagrant 1.6.1很有用:

CC=/usr/bin/gcc vagrant plugin install vagrant-rackspace

我尝试NOKOGIRI_USE_SYSTEM_LIBRARIES=1但是收到错误,说系统libxml2太旧了。

答案 4 :(得分:0)

警告:这是超级hacky 解决方案,虽然很难称之为。

昨天我在另一个OSX Mavericks盒子上安装了Vagrant。像我在上所阅读的许多其他帖子一样,“所有我必须做的事情”运行xcode-select --install而bingo vagrant plugin install vagrant-rackspace就像魅力一样。

今天,当我意识到这是一个孤立的红宝石环境时,我再次陷入Bundler代码中,因为这是一个孤立的ruby环境,为什么不在我的~/.vagrant.d目录中查找并从另一个框中的成功构建中复制相同的目录。 ..

结果呢?在我的笔记本电脑上工作vagrant rackspace!我不确定我会弄清楚什么是真的错,但如果有人想要获得100分的奖金,我仍然愿意接受建议!

答案 5 :(得分:0)

在我的情况下,位于~/vagrant.d/gems/gems的nokogiri文件夹及其文件具有错误的权限(用户/组)。

将它们更改为username:staffusername作为您的控制台用户名)后,它就像魅力一样。

答案 6 :(得分:0)

与我的情况类似,我在OSX Mavericks 10.9.4和ruby 2.0.0p247 rbenv上为Vagrant 1.6.3安装vagrant-omnibus插件时遇到了问题。

我尝试将env NOKOGIRI_USE_SYSTEM_LIBRARIES设置为1或true,然后更新+安装但仍存在相同的错误。

我发现https://github.com/mitchellh/vagrant/issues/3769中有一条建议使用nokogiri版本中的烘焙指定,这对我有用。所以,我也为自己写了一个快速的noted来引用这个不幸的问题。

答案 7 :(得分:0)

如果Nate Murray的解决方案不起作用,我发现升级到Vagrant版本> 1.6.4解决了问题(如本Github问题所述:https://github.com/mitchellh/vagrant/issues/3769

答案 8 :(得分:0)

在我的情况下,尝试安装vagrant-parallels时,由于某种原因,我不得不检查命令行工具文件夹的命名错误。可以使nokigiri正常工作的修复程序