2010-03-15 7 views
5

rake 작업을 실행하는 crontab을 실행 중입니다. 나는 (crontab을에서 MAILTO으로) 다음과 같은 오류를 받고 있어요 :Crontab + rails3 + bundler

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

내가 함께 RVM을 사용하고 있습니다 :
루비 : 1.9.1p378
레일 루비 : 레일 3.0.0.beta
$ GEM_HOME : /Users/Mendel/.rvm/gems/ruby-1.9.1-p378
들러 : 들러 (0.9.11)

오류는 매우 자명하지만, 나는 그것을 고칠 수 아니에요. 이 문제에 대해 더 많은 지식을 가진 사람이 있습니까? 미리 감사드립니다.

+0

사용자가 rvm 구성을로드했는지 확인하십시오. – shingara

+0

나는 생각하지만, 어떻게 할 수 있는지 보여줄 수 있습니까? 어쩌면 내가 뭔가 잘못하고있는 것 같아. – user288764

답변

1

그냥 추측 : Ruby 1.9.1p378 기본 Ruby가 맞습니까?

그냥 실행할 수는 없다고 생각합니다. rvm --defaults "ruby-1.9.1-p378" 이것이 도움이되지 않는다면, ruby ​​1.9가 사용되었을 때 bundler가 설치되어 있습니까?

또한 테스트/프로덕션 환경에서 cron을 자신보다 다른 사용자와 함께 실행하고 싶을 수 있습니다. 따라서 rvm을 "root"로 설치하고 모든 시스템 사용자의 기본값이 될 기본 RVM을 (여전히 루트 권한으로) 설정하는 것이 좋습니다. 물론 사용자 당이 값을 재정의 할 수 있습니다.

1

나는 http://github.com/javan/whenever

그것은 크론 작업을 관리하기 위해 루비 DSL을 사용하고있는 모든 환경 마법을 설정 핸들을 사용하여 좋은 경험을 했어.

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

당신은 --trace으로 명령을 실행 한은 레이크 명령에 분명 뭔가가없는 보장하기 위해 주장하지만, 당신이 할 수있는 것은 crontab을이

rvm 1.9.1;rake do_whatever_task 

그런 식으로 명령 체인 레이크를 실행하기 전에 매번 루비 환경을로드합니다.

6

방금이 경험이 있습니다. 문제는 내가 사용하는 갈퀴와 루비의 인스턴스가 로컬로 빌드되어/usr/local/bin에 설치되었다는 것입니다./usr/bin에 다른 버전이 있습니다 (과거 apt-get을 사용하여 설치 한 것을 확인해야합니다).// 빈

(내가 PATH =/usr 디렉토리를보고 있었다 :는/usr/빈 :

그래서, 내 crontab 파일에 나는

PATH =/usr/local/bin을 사용하여 경로를 설정 bin : 실패한 crontab 이메일의/bin)

그리고 작동합니다.

0

이번 주말에 비슷한 문제가 있었는데 레이크 보석이 0.90으로 업데이트되어 레이크가 0.8.7이 필요하다는 것을 알았습니다. 이것으로 제 문제가 해결되었습니다.