7

使用 rvm 和一个空的 gemset,我得到了这个:

$ 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 让我感到困惑。

4

6 回答 6

15

这是我第一个成功的解决方法:

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
于 2013-02-06T20:28:34.127 回答
9

这是由于 net-ssh-multi 的更新将所需的 net-ssh 版本提高到 >= 2.6.5。Chef 团队已经在开发一个新版本。目前,您可以使用

gem install chef --pre --no-ri --no-rdoc
于 2013-02-06T20:41:11.063 回答
8

此序列将在正在引导的服务器上安装 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
于 2013-02-08T22:48:55.687 回答
3

Bundler 可以毫不费力地协商这些模糊的依赖关系。这是使用 Bundler 魔术安装 Chef 的单线:

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

或者您可以使用Opscode 推荐的安装程序。这是 Ubuntu 的单线:

curl -L https://www.opscode.com/chef/install.sh | sudo bash
于 2013-02-06T22:15:49.290 回答
0

我有办法让 chef 10.12.0 gem 安装在 Ruby 1.8.7 上。我不得不稍微调整 Mojo 的答案才能完成这项工作。

在 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
于 2013-11-13T11:12:10.550 回答
0

Bundler很好的解决了这个问题

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
于 2014-06-02T03:22:35.953 回答