2011-09-13 51 views
1

我試圖發佈Rails 3.1(從3.0升級)應用程序。提交代碼後我跑耙子找不到供應商/寶石中的寶石

bundle install --path vendor/gems RAILS_ENV=production 

它的工作。我有一個目錄vendor/gems/ruby/1.9.1,其中bin,cache,doc, gemsspecifications位於。然而,當我運行rake任務,我得到了一個錯誤:

$ rake db:migrate RAILS_ENV=production 
Could not find authlogic-3.0.3 in any of the sources 
Run `bundle install` to install missing gems. 

這不是一個問題authlogic,它無論是在gemsspecifications目錄,這是annotate錯誤之前提到的,我從刪除它gemfile。

什麼可能是錯的?

我使用Ubuntu 10.10,Ruby 1.9.2p0,Rails 3.1和Rake 0.9.2。該代碼被capistrano部署,vendor目錄被放置在shared文件夾中並在發佈中鏈接。

+0

確定版本號是否匹配?當捆綁器安裝另一個版本時,Rails正在尋找一個版本? – Slick23

+0

在Ubuntu中,1.9.1是1.9.2發行版的官方名稱。真的很奇怪,我知道。所有安裝的程序都是這樣命名的:ruby1.9.1,gem1.9.1,irb1.9.1。所有的寶石默認放置在1.9.1文件夾中。所以是的,這部分是肯定的。 –

+0

失蹤的寶石呢?它安裝了3.0.3版嗎? – Slick23

回答

2

如果你想使用該項目的寶石,那麼你應該使用bundle exec命令例如

bundle exec rake db:create 

還需要在寶石文件authlogic寶石。

gem 'authlogic' 

首先從供應商/文件夾中刪除整個gems目錄。你應該使用這個:

bundle install --path=vendor/gems 

無需指定環境。