2010-03-15 15 views
5

Bir komisyon görevi yürüten bir crontab çalıştırıyorum. Ben (crontab dan MAILTO ile) aşağıdaki hatayı alıyorum:Crontab + rails3 + paketleyici

rake aborted! 
no such file to load -- bundler 
/Users/Mendel/Sites/misnooit/Rakefile:4 
(See full trace by running task with --trace)

Birlikte RVM kullanıyorum:
Yakut: 1.9.1p378
raylar yakut: Rails 3.0.0.beta
$ GEM_HOME : /Users/Mendel/.rvm/gems/ruby-1.9.1-p378
bundler: paketleyici (0.9.11)

hata oldukça açıktır ama bunu düzeltmek mümkün değilim. Bu konuda daha fazla bilgiye sahip biri var mı? Şimdiden teşekkürler.

+0

Kullanıcınızın rvm yapılandırmanızı yüklediğinden emin misiniz? – shingara

+0

Sanırım öyleyim ama nasıl yapacağını bana gösterebilir misin? Belki yanlış bir şey yapıyorum. – user288764

cevap

1

Sadece tahmin etme: Ruby 1.9.1p378 varsayılan Ruby'mizdir?

rvm --defaults "ruby-1.9.1-p378" Yürütülecek bir şey olmadığını düşünüyorum. Eğer bu yardımcı olmazsa, ruby ​​1.9 kullanıldığında takanın kurulu olduğundan emin misiniz? Ayrıca, test/üretim ortamınızda, sizden başka bir kullanıcıyla cronu kendiniz çalıştırmak isteyebilirsiniz. Bu yüzden rvm'yi "root" olarak yüklemenizi ve tüm sistem kullanıcıları için varsayılan olacak bir varsayılan RVM'yi (hala root olarak) ayarlamanızı öneririm. Ve tabi ki, bunu kullanıcı başına geçersiz kılabilirsiniz.

1

Ben http://github.com/javan/whenever

Bu cron görevlerini yönetmek için bir Ruby DSL kullanır ve tüm çevre sihirli ayar kolları kullanarak iyi bir deneyim yaşadım.

every 3.hours do 
    runner "MyModel.some_process" 
    rake "my:rake:task" 
end 
1

senin --trace ile komutu çalıştırmak tırmık komuta bariz bir fark yok mu sağlamak için iddia, ama ne yapabilirdi crontab

rvm 1.9.1;rake do_whatever_task 

Bu şekilde o komutları zinciridir tırmıklamadan önce her defasında yakut ortamını yükler.

6

Sadece bunu yaşadım. Benim için sorun, kullandığım tırmık ve yakut örneklerinin yerel olarak yapıldığı ve/usr/local/bin dizinine yüklendiğiydi./Usr/bin'de başka sürümler de var (geçmişte apt-get kullanarak ne yüklediğimi kontrol etmelisiniz ..).// Bin

(PATH =/usr olarak görüyordum:/usr/bin:

Yani, benim crontab dosyasında ben

PATH =/usr/local/bin kullanarak yolu ayarlayın bin:/bin başarısız crontab e-postaları)

ve çalışır.

0

Bu hafta sonu benzer bir sorun yaşadım, Rake Gem'in 0.90'a güncellendiğini gördüm. Bu benim sorunumda sorunu çözdü.