0.9.0 rake'i zaten etkinleştirdiniz, ancak Gemfile'ınız için 0.8.7 komisyon gerekiyor


124

Raylar projesi yürütmeye çalışıyorum, anlıyorum

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

Yaparsam: "paket yükleme"

ama alıyorum

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

yaparken

rake db:migrate

Yanıtlar:


245

Öncelikle, Gemfile'ınızda komisyondan bahsedildiğinden emin olun. Değilse, ekleyin ve "zaten etkinleştirmiş olduğunuz" sürümü belirtin.

Ardından, bundle'a uygulamanız için kullandığı komisyon sürümünü güncellemesini söylemeniz gerekir:

bundle update rake

Sizin Gemfile.lockiçin güncelleyecektir .


2
bu benim için işe yaramadı. Bu komutu çalıştırdığımda, 'paket yükleme' ile tam olarak aynı şeyi yapıyor ve aynı tırmık sürümünü kullandığını gösteriyor. Onu güncellemez.
EE33

5
Gemfile'ıma gem 'rake', 'version #' eklemem ve gemfile.lock'umun doğru şekilde güncellenmesi için 'bundle update rake' çalıştırmam gerekiyordu. Bilginize, bu çözümün kendileri için çalışmasını sağlayamayan herkes için.
EE33

44

Şu anda rake komutlarını kullandığınız yerde

rake db:migrate

Bunun yerine şunu kullanın:

bundle exec rake db:migrate

bu, rayların ve / veya tırmığın en son versiyonu birlikte iyi çalışana kadar geçerli olacaktır.


3
Birlikte iyi çalışan "rayların ve / veya tırmıkların en son sürümü" hakkındaki bit, yalnızca belirli, adsız, zaman noktasında ve kullanımdaki iş akışıyla ilgili bazı belirli varsayımlar altında anlam taşır. Bence bu çıkarım, "kanayan kenar rayları kullanıyorsunuz ve tırmık henüz yetişmedi." Ancak bu durum, "paket yürütme" veya "Gemfile düzenleme" yaklaşımlarıyla da çözülebilir ve bu yaklaşımlar, içsel uyumluluk sorunları olmadığında, yalnızca karışık bir iş akışı geçmişi olduğunda da sorunu çözer.
jackr

24

Dobry Den'e teşekkür ederim, şerefe dostum. ama biraz daha yapmam gerekiyordu. İşte çözüm (benim için çalışıyor). Ekledim

gem 'rake','0.8.7'

orada olmayan Gemfile'da, ancak yeni ray sürümüm otomatik olarak rake (0.9.0) yükler.

rake0.9.0'ı sildikten gem uninstall rake sonra ve yaptıktan sonra bundle update rakeveritabanı oluşturabilir ve taşıyabilirim.



7

Gemfile'ınızda olmasını istediğiniz sürümü belirtin.

gem 'rake', '0.9.0' 

sonra

bundle update rake

komisyon görevinizi çalıştırmak için bundle exec kullanmanız gerekir

bundle exec rake db:migrate

Daha sonraki sürümü "etkinleştirmemiş" görünüyor. Rake'i tamamen kaldırmak ve işleri yeniden kurmak.
JosephK

6

Oh bak, bu gelecek. Benim için, 0.9.5 istediğinde 10.x tırmık taktığımdan şikayet ediyordu. Tam olarak emin değilim, Ruby'yi son sürüm numaralarına gerçekten ne olduğunu anlamak için yeterince tanıdık değilim, ama yaptığım şey şuydu:

gem uninstall rake
gem install rake -v 0.9.5

sistemi uygulamanın istediği tırmık sürümünü yüklemeye zorlamak (benim için Octopress'ti).


2
Gelecek aradı ve Hammer pantolonunuzu ödünç almak istiyor.
Keith Layne

Merhaba, yine gelecek. Hammer pantolonun nihayet geri dönüş yaptığını duydum.
subdigit

5

Bu sorunu yaşadım (tırmık olmayan başka bir taşla) ve bunu şu şekilde düzeltebildim:

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

bundle install
bundle update

Geminizi, rails uygulamanızın arama yapmayabileceği dizinlere yerleştirebileceği için 'sudo' anahtar kelimesinin kullanılmadığını unutmayın (örn. Sudo bundle install).


3

Ne istemediğini anlarsam, Gemfiledosyanızı açıp satırı değiştirmeniz gerekir ...

gem 'rake', '0.8.7'

... için ...

gem 'rake', '0.9.0'

Ya 0.9 yerine 0.8.7 kullanmak istersem?
Kir

6
komisyon taşı bir Rails bağımlılığı olduğundan Gemfile'ınızda varsayılan olarak belirtilmemiştir. Rake gem'i 0.9.0'a güncellediyseniz, sisteminizde hala 0.8.7 gem var (kontrol edin gem list). Hala sizde gem 'rake', '0.8.7'belirtilmişse Gemfile.lock, 0.8.7 mücevherini sorunsuz bir şekilde kullanacağından oldukça eminim . değilse, Gemfile'ınıza (.lock değil) bundleekledikten sonra gem 'rake', '~> 0.8.7'koşmayı deneyin ve bir şey söyleyip söylemediğine bakın.
danneu

@Dobry Den'e katılıyorum.
Olivier L.

gem 'tırmık' tanımlı değil. Birden fazla Gem Rake'im varsa (0.8.7 ve 0.9.0) varsayılanı alır. Varsayılanı eskisine ayarlayabilir miyiz?
Mücahit Maskey

3

Bunu Gemfile'ınıza ekleyin

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

Ve sonra rake-0.9.0'ı kaldırın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.