Hai già attivato il rake 0.9.0, ma il tuo Gemfile richiede il rake 0.8.7


124

Sto cercando di eseguire il progetto Rails, ho capito

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

Se lo faccio: "bundle install"

ma sto ottenendo

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7

mentre lo faccio

rake db:migrate

Risposte:


245

Innanzitutto, assicurati che il rake sia menzionato nel tuo Gemfile. In caso contrario, aggiungilo e specifica la versione "già attivata".

Quindi, dovrai dire al bundle di aggiornare la versione del rake che sta usando per la tua app:

bundle update rake

Ti aggiornerà Gemfile.lockper te.


2
questo non ha funzionato per me. quando eseguo questo comando fa esattamente la stessa cosa di 'bundle install' e mostra che sta usando la stessa versione di rake. Non lo aggiorna.
EE33

5
Ho dovuto aggiungere gem 'rake', 'version #' al mio gemfile ed eseguire 'bundle update rake' per il mio gemfile.lock per essere aggiornato correttamente. Cordiali saluti per chiunque non riuscisse a far funzionare questa soluzione per loro.
EE33

44

Dove stai attualmente usando comandi rake come

rake db:migrate

Usa questo invece:

bundle exec rake db:migrate

questo avverrà fino a quando l'ultima versione di binari e / o rastrello funzionerà bene insieme.


3
Il fatto che "l'ultima versione di binari e / o rastrelli" funzioni bene insieme ha significato solo in un punto specifico, senza nome, nel tempo e sotto alcune ipotesi specifiche sul flusso di lavoro in uso. Penso che questa implicazione sia "stai usando un bordo spurgo e il rastrello non ha ancora raggiunto". Ma quel caso può essere risolto anche dagli approcci "bundle exec" o "edit Gemfile", e questi approcci risolvono anche il problema quando non ci sono problemi di compatibilità intrinseca, ma solo una cronologia del flusso di lavoro confusa.
Jackr

24

Ringrazio Dobry Den, evviva amico. ma poco altro dovevo fare. ecco la soluzione (funziona per me). Avevo aggiunto

gem 'rake','0.8.7'

su Gemfile, che non c'era, ma la mia nuova versione di rails installa automaticamente rake (0.9.0).

dopo aver eliminato rake0.9.0 da gem uninstall rake e dopo averlo fatto bundle update rake, posso creare e migrare il database.



7

Specifica la versione che desideri nel tuo Gemfile.

gem 'rake', '0.9.0' 

poi

bundle update rake

è necessario utilizzare bundle exec per eseguire l'attività di rake

bundle exec rake db:migrate

Sembra non "disattivare" la versione successiva. Rimuovere Rake interamente e reinstallare i lavori, però.
JosephK,

6

Oh guarda, è il futuro. Per me, si lamentava che avevo installato rake 10.x quando voleva 0.9.5. Non abbastanza sicuro, non abbastanza familiare con Ruby per scavare davvero in quello che è successo ai numeri della versione recente, ma quello che ho fatto è stato:

gem uninstall rake
gem install rake -v 0.9.5

per forzare il sistema ad installare la versione di rake desiderata dall'app (per me era Octopress).


2
Il futuro ha chiamato e vuole prendere in prestito i tuoi pantaloni Hammer.
Keith Layne

Ciao, è di nuovo il futuro. Ho sentito che i pantaloni Hammer stanno finalmente tornando.
sottoscrivere il

5

Ho avuto questo problema (con un altro gioiello che non era rastrellato) e sono stato in grado di risolverlo

gem uninstall <complaining gem>
gem install <complaining gem>

bundle install
bundle update

Nota che la parola chiave 'sudo' non è stata usata (es. Sudo bundle install) in quanto ciò potrebbe collocare la tua gemma in directory in cui l'app rails potrebbe non essere cercata.


3

Se capisco cosa non mi stai chiedendo, devi aprire il tuo Gemfilefile e cambiare la riga ...

gem 'rake', '0.8.7'

...per...

gem 'rake', '0.9.0'

Cosa succede se desidero utilizzare 0.8.7 anziché 0.9?
Kir,

6
la gemma rake non è specificata nel tuo Gemfile per impostazione predefinita poiché è una dipendenza Rails. se hai aggiornato la gemma del rake a 0.9.0, hai ancora la gemma 0.8.7 sul tuo sistema (verifica con gem list). sono abbastanza sicuro che se gem 'rake', '0.8.7'è ancora specificato nel tuo Gemfile.lock, userà comunque la gemma 0.8.7 senza problemi. in caso contrario, prova a correre bundledopo averlo aggiunto gem 'rake', '~> 0.8.7'al tuo Gemfile (non .lock) e vedi se dice qualcosa.
danneu,

Sono d'accordo con @Dobry Den.
Olivier L.,

gem 'rake' non è definito. Ne prende uno di default se ho più Gem Rake (0.8.7 e 0.9.0). Possiamo ripristinare quello precedente?
Mujah Maskey,

3

Aggiungi questo al tuo Gemfile

# Rake 0.9.0 break Rails.
gem "rake", "!= 0.9.0"

E quindi disinstallare rake-0.9.0

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.