2014-03-26 63 views
7

我正在使用Bundler爲Capistrano部署的Rails應用程序。我試圖添加DelayedJob gem,但在執行部署後,遠程服務器中缺少bin/delayed_job文件。它存在於我的本地機器上。Bundler with Capistrano不會爲DelayedJob生成二進制文件

我試圖手動bundle binstubs delayed_job創造,但它失敗:There are no executables for the gem delayed_job.

缺少什麼我在這裏?

有問題的寶石有:捆紮機1.3.5,3.1.0 Capistrano的,DelayedJob 4.0.0,Rails的4.0.2

編輯:這是我的全部的Gemfile:http://pastebin.com/WuE3eJrj

+0

和你的'Gemfile' ...? –

+0

@UriAgassi我上傳了Gemfile。 – hattila91

+0

'bundle install'是否在遠程服務器上正確傳遞? –

回答

10

我有同樣的問題。 delayed_job binstub不是使用捆綁器生成的,而是使用rails生成器生成的。防止bin目錄在capistrano部署期間被symlink。從這種變化的config/deploy.rb:

set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} 

set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} 

然後我再生本地使用捆綁

bundle install --binstubs 

現在我跑了delayed_job的發電機全部binstubs

bundle exec rails g delayed_job 

檢查一切並再次部署。

+1

刪除bin文件夾也爲我工作 –

相關問題