Vagrant не может установить плагины, зависящие от nokogiri

Я пытаюсь установить плагин rackspace для vagrant (1.5.1):

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 установить gcc-4.2
  4. удалить rvm и rvm версии ruby
  5. установите nokogiri с встроенным (mac) ruby и Vagrant-embedded Руби!--22-->

несмотря на то, что nokogiri устанавливает штраф (#5 выше) без sudo по обоим пунктам,vagrant plugin install vagrant-rackspace все еще не удается...

Итак, вкратце, я можете установите плагин nokogiri, однако я не может установите плагин vagrant rackspace, вы можете помочь мне установить плагин?

связанные темы

полный выход плагин vagrant установить vagrant-rackspace --debug

8 ответов


Я на OSX Mavericks, и это сработало для меня:

установить как свойство среды:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 

затем установите как обычно:

vagrant plugin install vagrant-rackspace

корабли бродяги с врезанным Рубином и изолированной окружающей средой самоцвета. Поэтому установка драгоценных камней вручную в вашу" нормальную " среду драгоценных камней не поможет.

первая проблема заключается в том, что вы никогда не должны использовать sudo для запуска любой команды vagrant. Если возможно, удалите ~/.бродяга.d / или, по крайней мере, рекурсивно возвращайте его своему пользователю. Вы также можете попробовать обновить Vagrant до v1.5.1.

тогда, пожалуйста, gist / pastebin выход vagrant plugin install vagrant-rackspace --debug и ~/.бродяга.д/драгоценные камни/драгоценные камни/nokogiri по-1.6.1/ВН/nokogiri по/mkmf.бревно.


опубликованные решения не работали для меня. Вместо этого мне нужно было указать libxml2, libxslt и libiconv, что я установлен с homebrew (сначала сделайте это).

Я установил gem вручную со встроенным Рубином со следующей [очень краткой] командной строкой:

    /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

это сработало для меня на Mavericks и Vagrant 1.6.1:

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

пробовал NOKOGIRI_USE_SYSTEM_LIBRARIES=1 но получил сообщение об ошибке, что система libxml2 слишком стара.


предупреждение: это супер-Сокс решение, хотя это трудно назвать.

вчера я установил Vagrant на другой OSX Mavericks box. Как и многие другие сообщения, которые я читал на SO "Я" был работать xcode-select --install и vagrant plugin install vagrant-rackspace сработало как заклинание.

сегодня я снова погряз в коде Bundler, когда до меня дошло, что, поскольку это изолированная среда ruby, почему бы не nuke my


в моем случае папки nokogiri и их файлы, расположенные в ~/vagrant.d/gems/gems были неправильные права (пользователь/группа).

после изменения их в username:staff (username будучи вашим именем пользователя консоли), он работает как шарм.


аналогично с моим случаем, у меня есть проблема при установке vagrant-omnibus плагин для Vagrant 1.6.3 на OSX Mavericks 10.9.4 и ruby 2.0.0p247 rbenv.

Я попытался установить env NOKOGIRI_USE_SYSTEM_LIBRARIES в 1 или true, затем обновить+установить, но та же ошибка все еще там.

Я обнаружил, что есть предложение в https://github.com/mitchellh/vagrant/issues/3769 для использования укажите испеченный в версии nokogiri, и это работает для меня. Итак, я также написал быстрый отметить для себя, чтобы передать этот несчастный вопрос.


Если решение Нейта Мюррея не работает, я нашел обновление до версии Vagrant > 1.6.4 исправил проблему (как отмечено в этой проблеме Github:https://github.com/mitchellh/vagrant/issues/3769)