Не удается установить шеф-повара, версия gem конфликтует с net-ssh net-ssh-multi net-ssh-gateway

Используя rvm и пустой набор драгоценных камней, я получаю следующее:

$ gem install chef --no-ri --no-rdoc
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: chef requires net-ssh (~> 2.2.2); net-ssh-multi requires net-ssh (>= 2.6.5); net-ssh-gateway requires net-ssh (>= 2.6.5)

Я пытался решить эту проблему, установив более ранние версии net-ssh-gateway и net-ssh-multi, но net-ssh-multi версии 1.1 меня смущает, установив 1.1.2.


person Mojo    schedule 06.02.2013    source источник
comment
Я думаю, что у меня есть обходной путь:   -  person Mojo    schedule 07.02.2013


Ответы (6)


Это связано с обновлением net-ssh-multi, которое увеличило требуемую версию net-ssh до >= 2.6.5. Команда Chef уже работает над новой версией. На данный момент вы можете использовать

gem install chef --pre --no-ri --no-rdoc
person dpnsan    schedule 06.02.2013
comment
Я серьезно копаю Интернет. Обнаружена непонятная ошибка, а позже в гугле я нахожу идеальный ответ на мою точную проблему - опубликовано 19 часов назад. Ах, переполнение стека - где бы мы были без тебя? - person Yonatan; 07.02.2013

Вот мой первый обходной путь, чтобы добиться успеха:

gem install net-ssh -v 2.2.2 --no-ri --no-rdoc
gem install net-ssh-gateway -v 1.1.0 --no-ri --no-rdoc --ignore-dependencies
gem install net-ssh-multi -v 1.1.0 --no-ri --no-rdoc --ignore-dependencies
gem install chef --no-ri --no-rdoc
person Mojo    schedule 06.02.2013
comment
Мне пришлось использовать версию шеф-повара до 11 из-за совместимости исходного кода nginx с кулинарной книгой, и ваш обходной путь очень помог :) Спасибо! - person Pierre Ozoux; 08.02.2013
comment
Да, я обнаружил ту же проблему ... мои рецепты потребуют серьезной работы для Chef 11. Тем временем эта последовательность заставляет меня загружаться с Chef 10.16.4. Спасибо за ^ - person Mojo; 09.02.2013

Эта последовательность позволит получить версию 10.16.4 Chef, установленную на загружаемом сервере, и обойти конфликт версий:

gem install net-ssh -v 2.2.2 --no-ri --no-rdoc
gem install net-ssh-gateway -v 1.1.0 --ignore-dependencies --no-ri --no-rdoc
gem install net-ssh-multi -v 1.1.0 --ignore-dependencies --no-ri --no-rdoc
gem install chef --no-rdoc --no-ri -v 10.16.4
person Mojo    schedule 08.02.2013

У Bundler нет проблем с согласованием этих темных зависимостей. Вот одна строчка для установки Chef с магией Bundler:

echo -e "source :rubygems\ngem 'chef'" > Gemfile && bundle

Или вы можете использовать рекомендованный установщик Opscode. Вот однострочник для Ubuntu:

curl -L https://www.opscode.com/chef/install.sh | sudo bash
person Justin Force    schedule 06.02.2013

У меня есть способ установить гем шеф-повара 10.12.0 на Ruby 1.8.7. Мне пришлось немного изменить ответ Моджо, чтобы сделать это.

После предыдущих шагов в последовательности Mojo gem install chef -v 10.12.0 не удалось:

ERROR: Error installing chef: mime-types requires Ruby version >= 1.9.2.

Я обошел эту ошибку, установив более старую версию (1.21) MIME-типов, которая выполняла свою работу.

Все дело в следующем:

gem install net-ssh -v 2.2.2 --no-ri --no-rdoc
gem install net-ssh-gateway -v 1.1.0 --ignore-dependencies --no-ri --no-rdoc
gem install net-ssh-multi -v 1.1.0 --ignore-dependencies --no-ri --no-rdoc
gem install mime-types -v 1.21 --no-ri --no-rdoc
gem install chef --no-rdoc --no-ri -v 10.12.0
person nonbeing    schedule 13.11.2013

Бандлер очень хорошо решает проблему

mkdir /tmp/install-chef
pushd /tmp/install-chef
gem install bundler
echo -e "source 'https://rubygems.org'\ngem 'chef', '= 10.18.2'" > Gemfile
bundle install
popd
rm -rf /tmp/install-chef
person Robinho    schedule 02.06.2014