2013-02-06 15 views
7

Utilizzando rvm, ed un GemSET vuoto, ottengo questo:Non è possibile installare lo chef, la versione gioiello conflitto con 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) 

ho provato la risoluzione installando versioni precedenti di net-ssh-gateway e net-ssh-multi, ma net-ssh-multi versione 1.1 mi confonde installando 1.1.2.

+0

Penso di avere una soluzione: – Mojo

risposta

9

Ciò è dovuto ad un aggiornamento di net-ssh-multi che ha urtato la versione richiesta di net-ssh per> = 2.6.5. Il team Chef sta già lavorando a una nuova versione. Per ora, è possibile utilizzare

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

Sì, 11.2.0 funziona alla grande, grazie. :) – Mojo

+5

Scrivo seriamente Internet. Un errore incomprensibile è stato trovato, e un Google più tardi, trovo una risposta perfetta al mio problema esatto - pubblicato 19 ore fa. Ah, Stack Overflow - dove saremmo senza di te? – Yonatan

15

Ecco la mia prima soluzione per avere successo:

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

ho dovuto utilizzare la versione cuoco in 11 a causa di nginx compatibilità fonte libro di cucina e il tuo workaround ha aiutato molto:) Grazie! –

+0

Sì, ho scoperto lo stesso problema ... le mie ricette richiedono un lavoro serio per Chef 11. Nel frattempo questa sequenza mi viene avviata con Chef 10.16.4. Grazie per il^ – Mojo

3

Bundler non ha problemi a negoziare queste torbide dipendenze. Ecco una battuta per l'installazione di Chef con la magia Bundler:

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

oppure è possibile utilizzare il Opscode recommended installer. Ecco un one-liner per Ubuntu:

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

Questa sequenza otterrà la versione 10.16.4 dello chef installato su un server in fase di bootstrap, e il lavoro di tutto il conflitto di versione:

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

ho un modo per installare lo chef 10.12.0 gem su Ruby 1.8.7. Ho dovuto modificare leggermente la risposta di Mojo per ottenere questo risultato.

Dopo i passaggi precedenti in sequenza di Mojo, gem install chef -v 10.12.0 stava venendo a mancare con:

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

ho lavorato intorno a questo errore forzando una versione precedente (1.21) di tipi MIME che accade a ottenere il lavoro fatto .

Il tutto è:

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

Bundler risolvere il problema molto bene

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 
Problemi correlati