2012-03-24 14 views
11

Completare una nuova persona a Ruby and Rails qui ... Ho provato alcuni tutorial in passato, ma questo è tutto. Sto cercando di seguire il libro "Tutorial di Ruby on Rails 3" e ho colpito un roadblock che non sono stato in grado di trovare alcun aiuto dopo aver cercato qui e Google ..Bundler non è riuscito a trovare versioni compatibili per gem "bundler":

Non ho ancora fatto ancora niente; solo:

rails new first_app 

poi cambiato lo sqlite3 Gemfile a

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

quando corro 'bundle install' ottengo il seguente:

Fetching gem metadata from http://rubygems.org/......... 
Bundler could not find compatible versions for gem "bundler": 
    In Gemfile: 
    rails (= 3.0.1) ruby depends on 
     bundler (~> 1.0.0) ruby 

    Current Bundler version: 
    bundler (1.1.3) 

This Gemfile requires a different version of Bundler. 
Perhaps you need to update Bundler by running `gem install bundler`? 

Ho provato a disinstallare il bundler via

gem uninstall bundler -v 1.1.3 

e quindi l'installazione b v1.0.0 undler via

gem install bundler -v 1.0.0 

ma mi sembra di farmi bundler 1.1.2 ..

mi sento come ho colpito un vicolo cieco e non riesco a trovare più informazioni su come risolvere questo problema.

Qualsiasi aiuto sarebbe molto apprezzato e premiato con abbondanti quantità di pancetta ...

Aggiornamento Aggiornamento Aggiornamento

non ho potuto ottenere bundler v 1.1.2 per disinstallare. Ho finalmente stato in grado di disinstallare tutte le gemme facendo:

sudo gem list | cut -d" " -f1 > gem_list.txt 
cat gem_list.txt | xargs sudo gem uninstall -aIx 
cat gem_list.txt | xargs sudo gem install 

e reinstallando ... Questo mi ha permesso poi fare il 'bundle install' e scendere in pista .. Grazie a tutti per il vostro aiuto!

+0

Stai utilizzando RVM? –

+2

Quando si esegue 'gem list bundler' cosa dice? Forse hai installato sia 1.0.0 che 1.1.2. –

+0

*** GEMME LOCALI *** bundler (1.1.3, 1.1.2, 1.0.0) – audioeric

risposta

5

Prima verificare le versioni per essere sicuro che siano tutti gli attuali:

$ ruby -v 
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] 

$ rails -v   
Rails 3.2.2 

$ gem list bundler 
*** LOCAL GEMS *** 
bundler (1.1.3) 

Se è necessario aggiornare rubino, è possibile scaricalo da ruby-lang.org o usa strumenti come ruby-build. Se hai qualche versione di Ruby 1.9.3, per ora va bene.

per aggiornare tutte le vostre gemme:

gem update --system 
gem update 

Gem può installare gemme in alcuni posti diversi, e questi possono interferire tra loro. Ci sono gemme di sistema (generalmente installate da root o usando sudo) e le tue gemme utente personali. Il mio modo preferito per gestirli è con un semplice strumento chiamato rb-evn. Uno strumento correlato è rvm. O va bene.

Per il primo tutorial, è possibile saltare utilizzando i numeri di versione nella vostra Gemfile:

- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 
+ gem 'sqlite3-ruby', :require => 'sqlite3' 

Bundler sarà risolvere tutto nel modo giusto. Alla fine dovrai specificare i numeri di versione se stai coordinando con altri sviluppatori o costruendo sistemi di produzione.

Sentitevi liberi di fare domande qui e aggiungerò a questa risposta.

+0

Ruby va bene, ho 1.9.3p125. – audioeric

+0

Quando provo a fare rails -v ho capito che al momento non è installato ... C'è un modo per disinstallare tutto ciò che fa una nuova installazione di tutto questo? – audioeric

+0

OK, ho disinstallato tutte le gemme tramite elenco gem sudo | cut -d "" -f1> gem_list.txt cat gem_list.txt | xargs sudo gem uninstall -aIx cat gem_list.txt | xargs sudo gem install E questo mi ha permesso di fare il 'pacchetto di installazione' ... Che risolve il problema per ora .. Grazie! – audioeric

6

È possibile utilizzare l'ultima versione di Rails 3.0 (3.0.12). Esso supporta i più recenti bundler, e non è fondamentalmente differiscono da 3.0.1

2

Forse hai avuto bundler 1.1.2 e 1.1.3 installato sulla vostra macchina (e possibilmente più versioni)

uso

gem list bundler 

per verificare quale versione (o versioni) del bundle installata.

Poi rimuovere quelli che non si desidera con

gem uninstall bundler -v VERSION_NUMBER 
+1

Ho avuto 3 versioni installate, 1.0.0, 1.1.2, e 1.1.3. Posso disinstallare 1.0.0 e 1.1.3, ma non riesco a disinstallare 1.1.2. se faccio gem uninstall in bundler, dice bundler non installato. Ma se faccio gem list list, elenca 1.1.2 ... – audioeric

3

è perché le gemme sono installati anche in GemSET globale, ed è possibile disinstallarlo utilizzando:

rvm @global do gem uninstall bundler 

ma è possibile utilizzare anche l'altra versione di fardellatrice utilizzando:

gem install bundler -v '~>1.0.0' 
bundle _1.0.0_ install 

sostituire 1.0 .0 con la versione installata (se diversa)

-1

Bundler è un gioiello dipendente di binari, per cui è possibile vederlo solo in gemfile.lock anziché gemfile.

Per una versione di rota particolare è compatibile solo una serie di gemme di bundler. Ho anche ricevuto questo errore e ho provato a disinstallare quella versione di bundler gem che non mi serviva. Ho anche provato ad installare con forza usando bundle_x.x.x_install, ma quando le cose non hanno funzionato ho menzionato esplicitamente la gem che specifica la versione che rientra nell'intervallo richiesto dalla versione di rails che sto usando. Potrebbe essere che non è la strada giusta ma è così che le cose hanno funzionato per me.

Problemi correlati