2012-06-22 20 views
9

Bir gemide çalışıyorum ve github'da. Ben bir uygulamada mücevher eklediğinizdeneden mücevher hala paket güncellemesinden sonra modası geçmiş

, bir capistrano dağıtabilirim ve (sunucuda) çalıştırın:

bundle outdated 

görüyorum: bana söyler daha yeni olduğunu

* authengine (0.0.1 d8baa49 > 0.0.1 de43dfa) 

taahhüt mevcut. Neden paket güncellemesi (capistrano programının bir parçası) daha yeni sürümü seçmiyor? Ana bilgisayar uygulamasının Gemfile sürümünde herhangi bir sürüm kısıtlaması yoktur ve yine de aynı sürüm numarasına sahipler, yalnızca farklı işlemler. Ben sunucuya giriş ve

bundle update authengine 

sonradan aynı "modası geçmiş" bir sonuç elde çalıştırmak bile

.
Burada nelerin eksik?

+0

'Gemfile.lock'unuzu herhangi bir fırsatla mı yapıyorsunuz? –

+0

Öneriniz için teşekkürler, Matenia. Gemfile.lock'u işledim ama şimdi değilim ve bir fark yaratmadı. –

+0

nah .. mümkün olan yerlerde Gemfile.lock işlemini yapmalısınız .. gem sürümlerini dev ve prod arasında senkronize ettiğinizden emin olmanızı sağlar (gerekli sisteme özel mücevherler sağlayın), şunları belirttiniz: ref = Paket güncellemesini çalıştırmadan önce 'de43dfa' argümanı (sadece doğru ref'yi kullanmaya zorlamak için bir öneri) –

cevap

2

bundle update authengine çalıştırdığınızda çıktının geri dönüşü nedir? Aslında mücevher güncellendi mi? Yoksa mücevherleri görmezden mi geliyor?

Özellikle Bundler'ın git repository kullanmasını söylemek için --source parametresini kullanmayı deneyebilirsiniz. Bu veya

Ayrıca, beklenmedik şeyler olduğunda, genel olarak benim mücevher listenizi temizlemeyi seviyorum. Yine de, paketin içinde kullanılmayan, etraftaki mücevherlerin eski sürümlerine sahip olabilirsiniz.

Yani yapabilirsiniz: tamamen yeniden

gem list 
gem check 
gem cleanup 

Veya yapmak paketteki diğer taşlar tarafından taşlar üzerinde gereksinimlerini yaparsanız bu neden olabilir buldum

gem uninstall authengine 
bundle install 
+0

Öneriler için teşekkürler, JeanMertz. Paket güncellemeyi yaptığımda. “Git: //...etc'den authengine (0.0.1) kullanma” ifadesini kullanarak, yeni bir kopyasını almak yerine neyin yüklü olduğunu kullanıyor, diğer önerilerinizi de başarıya ulaşmadan denedim.Teşekkürler, –

11

Bir şey uyumsuz olan sürüm. Bundler, ihtiyaçlarının tamamının karşılanabileceği şekilde mücevherlerin versiyonlarını seçerek bunları uzlaştırmaya çalışır. Sonuç, mücevherleri güncellemeyi sessizce reddetmesidir.

yolunu denetle'un yolunu denetleyin, bu, Gemfile dosyanızda açık bir sürüm gereksinimi ayarlamaktır.

Bundler mücevher "json" için uyumlu versiyonlarını bulamadık: Sonra

bundle update authengine 

Sen (bu benim özel durumda alınır) gibi bir şey göreceksiniz çalıştırmak

gem "authengine", "> 0.0.2" #(you'll need to bump the version to make this work) 
#or 
gem "authengine", :ref => "d8baa49" 

gibi bir şey : Gemfile: şef (> 10.8) ruby, jsonuna bağlıdır (< = 1.6.1,> = 1.4.4) ruby ​​

logical-construct (>= 0) ruby depends on 
    json (1.7.5) 

Yani, benim durumumda açıkça json daha yeni bir sürümünü gerektiren bir problem.

+0

Teşekkürler. Bu bilgi ile gerçekten kafam karışmıştı, bu yüzden önerdiğin şeyi denedim ve aynı türden sessiz bir başarısızlık gördüm.Böyle "paket güncellemesi" bu başarısızlıklarla ilgili biraz daha fazla geri bildirim sağla. – MothOnMars

+0

Çatışmayı yaratan şeyi bulmak için beklenen sürümü manuel olarak ayarlama. – mokagio

İlgili konular