2011-09-13 77 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 

无需指定环境。