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 のバージョンを >= 2.6.5 に上げた net-ssh-multi の更新によるものです。Chef チームはすでに新しいリリースに取り組んでいます。今のところ、使用できます

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

このシーケンスは、ブートストラップされるサーバーにインストールされた Chef のバージョン 10.16.4 を取得し、バージョンの競合を回避します。

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

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 に答える