Capistrano部署后缺少Rails gem

时间:2015-05-20 12:05:18

标签: ruby-on-rails ruby nginx capistrano bundler

我正在尝试在Ubuntu服务器上部署我的应用程序。我安装了Nginx / Phusion Passenger并使用Capistrano部署了我的应用程序,它可以工作(我可以打开URL并查看项目)。我使用RVM,之前只安装了一个版本的Ruby I(ruby 2.0.0p643)。但是,当我转到我的项目文件夹并尝试执行'rails c production'时,我收到以下错误:

The program 'rails' can be found in the following packages:
 * ruby-railties-3.2
 * ruby-railties-4.0
Try: sudo apt-get install <selected package>

我不明白这个错误是什么意思 - 我上传了我的Rails应用程序,它有效,我看到呈现的HTML页面,但这个错误告诉我其他的东西:)。另外,如果我执行'gem list',我会得到以下列表:

*** LOCAL GEMS ***

bigdecimal (1.2.0)
bundler (1.9.9)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
psych (2.0.0)
rake (0.9.6)
rdoc (4.0.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
test-unit (2.0.0.0)

我在这个列表中没有看到'rails',但正如我在申请之前所说的那样!请告诉我,我做错了什么。提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要使用,

bundle exec rails c production

这是因为你正在使用rvm捆绑命名空间内的gems(生产中的/vendor内部),这在捆绑上下文之外是不可用的。

注意:

Gems可以使用Capistrano(http://paulgoscicki.com/archives/2011/10/tell-bundler-to-install-gems-globally-when-using-capistrano/

安装在Bundler上下文之外