Ruby on rails Can';t使用Capistrano&;RVM

Ruby on rails Can';t使用Capistrano&;RVM,ruby-on-rails,rubygems,capistrano,rvm,Ruby On Rails,Rubygems,Capistrano,Rvm,在最终设法让我的Rails应用程序工作之后,我遇到了一个稍微复杂的问题。我已经将我的Rails 3.0.5应用程序部署到带有Capistrano、RVM和Nginx的Ubuntu 10.10服务器上。所有这些都很好地工作,我可以确认Rails正在工作,因为我正在从数据库获取数据和有意义的日志消息 问题是在服务器上,我无法访问控制台。当我尝试 rails c 它说“程序‘rails’当前未安装。要运行‘rails’,请让管理员安装程序包‘rails’” 然而,它是安装否则我的应用程序将无法工作!

在最终设法让我的Rails应用程序工作之后,我遇到了一个稍微复杂的问题。我已经将我的Rails 3.0.5应用程序部署到带有Capistrano、RVM和Nginx的Ubuntu 10.10服务器上。所有这些都很好地工作,我可以确认Rails正在工作,因为我正在从数据库获取数据和有意义的日志消息

问题是在服务器上,我无法访问控制台。当我尝试

rails c
它说“程序‘rails’当前未安装。要运行‘rails’,请让管理员安装程序包‘rails’”

然而,它是安装否则我的应用程序将无法工作!我只安装了两个RVM Gemset,一个是全球的,另一个叫“rails305”。尝试

然后


没有显示我的应用程序需要的任何gem,但是必须安装它们,因为1)没有它们,应用程序无法工作;2)在我的Capistrano部署脚本中,bundler将安装它们(到该gems集中)。所以问题显然与RVM有关,但我不知道它是什么。。。有人有什么想法吗?

看起来Capistrano使用bundler,所以您可能想试试

bundle exec rails c
从部署目录


有关更多信息,请参阅。

默认情况下,捆绑程序在通过capistrano部署时不会将gems安装到默认的rvm环境中,而是安装到“shared/bundle”目录中,以尝试适应不使用rvm的生产安装环境。如果您在生产环境中使用RVM,并且只想将bundler安装到默认的ruby/gemset(如果您要登录生产环境、运行rake脚本、控制台等,这非常有用),请将以下选项添加到
config/deploy.rb

set :bundle_dir, ""
set :bundle_flags, ""

这将删除“-deployment”(和“-quiet”,您可能不想保留它们)和--path标志,这会导致bundler尝试将所有内容打包好,因此bundler现在将安装到用户的RVM环境中;使您的服务器环境工作起来更像您的开发环境(根据您的需要可以是好的也可以是坏的)。

听起来乘客使用的是与您的终端会话不同的
ruby
。您是否安装了多个红宝石?您是否遵循了来自的RVM/乘客信息?您可以通过查看
~/.rvm/gems
快速查看所有ruby/gemset组合。不,目前只有一个ruby。我在这些文件夹中四处寻找,但仍然找不到宝石-然而irc上rvm频道的人给了我答案(贴在下面)是的!这很好地工作(尽管我在末尾添加了“生产”以使其加载到该环境中)-谢谢
bundle exec rails c
set :bundle_dir, ""
set :bundle_flags, ""