2011-06-24 13 views
16

Şu anda OSX dev sistemimde javascript'i (ve gelecekte biraz daha fazla güvenlik görevi ekleyeceğim) derlemek için şu anda guard-coffeescript gem'i kullanıyorum. Linux altında çalışan benim hazırlama/üretim ortamında, dağıtmak üzere çalışılıyorDağıtımda Bundler hatası

gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i

: Şimdi ben Gemspecs bir sürü böyle bir durumunda ifadesi ile eklenen olduğunu gördük, benim Gemspec için rb-fsevent mücevher eklendi sunucuda çalıştırılan komut dosyası aşağıdaki istisna içinde bundle install --deployment sonuçlarını kullanır:

# bundle install --deployment 
You have modified your Gemfile in development but did not check 
the resulting snapshot (Gemfile.lock) into version control 

You have deleted from the Gemfile: 
* rb-fsevent

Bu soruna bir yolu var mı yoksa sadece benim sistemine ve dönüş takÕlmasÕ içinde dağıtmak, böylece eğer kaldırmak gerekiyor OSX olmayan bir platformda işe yaramayan bir mücevher mi?

-

düzenleme: Ben hazırlık ortamında dağıtmadan önce bundle install çalıştırın ve başarısız sonra ilk kez bundle check çalıştırın. If if deyimi kaldırdıktan sonra çalışan var ..

+0

anlamıyorum neden RUBY_PLATFORM koşulu Gemfile.lock değilse? Sunucuya paket yüklemeyi yaptığınızda sadece Gemfile.lock'a bakmıyor mu? – jspooner

cevap

23

Benzer bir sorunla karşılaştım.

set :bundle_without, [:darwin, :development, :test] 

Sonra Darwin denilen bir grup içinde mücevher 'rb-fsevent' hattını sarın: Eğer Capistrano kullanıyorsanız aşağıdaki seçeneği ayarlayabilirsiniz. Böyle bir şey güzel çalışması gerekir:

group :test, :darwin do 
    gem 'rb-fsevent' 
end 

Bu bundler sunucuda bunu yapar:

bundle --without darwin development test 

o Gemfile.lock içinde bu grupları yok saydığı anlamına geliyor. Yaptığınız şey size OS X makinesi yapacaktır ve sunucunuz farklı sonuçlanan kilit dosyaları ile ortaya çıkar. Bu yüzden şikayetçi oldu.

+1

bahşiş için teşekkürler, paket yükleme --deployment ile nasıl yapılacağını gerçekten yok gibi görünüyor. – Mark

+1

Bu bana bir sebepten dolayı bir hata verdi, ancak bu set: bundle_without,% w {darwin development test} .join ('') '. Bir capistrano 3 olayı olabilir. – counterbeing

+0

@David tavsiyesini ciddiye alın ve ': require => false RUBY_PLATFORM = ~/darwin/i' –

6

Tam olarak aynı sorunla karşılaştım ve Luke'un çözümü benim için düzeltildi, ancak, yalnızca sık kullanılan :require => false if RUBY_PLATFORM =~ /darwin/i dizesini kaldırdıktan sonra.

https://github.com/guard/guard

açıklandığı gibi

2

çözüm basitçe

group :development do 
    gem 'rb-inotify', :require => false 
    gem 'rb-fsevent', :require => false 
    gem 'rb-fchange', :require => false 
end 
+0

Bu benim için çalıştı (sadece 'RUBY_PLATFORM ...' satırının bir kısmını kaldırarak). – benzado

İlgili konular