2013-02-06 11 views
7

rvm verwenden, und ein leeres gemset, bekomme ich diese:kann nicht installiert Koch, gem Versionskonflikt mit net-ssh net-ssh-Multi net-ssh-Gateway

$ 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) 

Ich habe versucht zu lösen es durch die Installation früherer Versionen von net-ssh-Gateway und net-ssh-multi, aber net-ssh-multi Version 1.1 verwirrt mich durch die Installation von 1.1.2.

+0

Ich glaube, ich habe eine Abhilfe: – Mojo

Antwort

9

Dies ist aufgrund einer Aktualisierung von net-ssh-Multi, die die erforderliche Version von net-ssh> = 2.6.5 stießen. Das Chef-Team arbeitet bereits an einer neuen Version. Jetzt können Sie

gem install chef --pre --no-ri --no-rdoc 
+0

Ja, 11.2.0 funktioniert super, danke. :) – Mojo

+5

Ich graben ernsthaft das Internet. Ein unverständlicher Fehler wird gefunden, und ein Google später finde ich eine perfekte Antwort auf mein genaues Problem - gepostet vor 19 Stunden. Ah, Stack Overflow - wo wären wir ohne dich? – Yonatan

15

Hier ist meine erste Problemumgehung um erfolgreich zu sein:

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 
+0

I Koch-Version unter 11 aufgrund nginx Quelle Kochbuch Kompatibilität verwenden hatte und dein Workaround hat mir sehr geholfen:) Danke! –

+0

Ja, ich habe das gleiche Problem entdeckt ... meine Rezepte erfordern für Chef 11 eine ernsthafte Arbeit. Währenddessen wird diese Sequenz mit Chef 10.16.4 bootstrapped. Danke für die^ – Mojo

3

Bundler hat keine Schwierigkeiten, diese düsteren Abhängigkeiten zu verhandeln. Hier ist ein Einzeiler für die Installation Chef mit Bündler Magie:

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

Oder Sie Opscode recommended installer verwenden können. Hier ist ein Einzeiler für Ubuntu:

curl -L https://www.opscode.com/chef/install.sh | sudo bash 
8

Diese Sequenz wird erhalten Version 10.16.4 von Chef auf einem Server installiert Bootstrap wird, und die Arbeit rund um den Versionskonflikt:

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 
0

Ich habe einen Weg um den Koch 10.12.0 Juwel auf Ruby 1.8.7 zu installieren. Ich musste Mojos Antwort ein wenig ändern, um das zu schaffen.

Nach den vorherigen Schritten in Folge der Mojo, versagen gem install chef -v 10.12.0 mit:

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

ich durch Erzwingen eine ältere Version (1.21) von Mime-Typ, um diesen Fehler gearbeitet, dass die Arbeit zu erledigen geschieht .

Die ganze Sache ist:

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 
0

Bündler das Problem lösen sehr gut

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