Rails 3.2不使用捆绑的宝石,Capistrano需要sudo gem install和rbenv找不到rails

时间:2013-01-26 08:18:33

标签: ruby-on-rails ruby-on-rails-3 capistrano rbenv

我在Nbux,Unicorn和Postgresql的Ubuntu 12.04服务器上运行了2个Rails 3.2.11应用程序。部署是由git和capistrano进行的。

在我安装第二个应用程序之后,我发现Capistrano在封顶部署期间会失败,因为它“无法找到宝石源”,我需要使用sudo安装每个丢失的宝石。在此之后,cap部署工作正常,应用程序也是如此。使用所有正确的gem报告在任一应用程序中从当前目录运行bundle install。

我很困惑Capistrano需要在更新我的应用程序之前找到宝石,因为我过去的经验(我认为)是我可以从当前目录运行bundle install来安装任何新的或更新的宝石。

今天,我决定在我的开发笔记本电脑上使用rbenv更新我的Ruby版本。我需要从.rbenv / plugins / ruby​​-build运行git pull然后rbenv rehash然后我可以安装新的Ruby版本。好的,ruby-v报告新版本19.3-p374。

现在,当我从我的app dev dir运行rails server(rails s)时,我找不到rbenv:rails:命令。这些Ruby版本中存在rails' command exists in these Ruby versions: 1.9.3-p327. rbenv version reports 1.9.3-p374. Rbenv which rails and bundle install both report "command not found: with rbenv error "The rails'命令:1.9.3-p327“。

所以,我认为有两个问题是相关的: -

  1. 如何使用捆绑安装使我服务器上的每个应用独立运行自己的宝石?我不想冻结宝石,我很乐意同时保持这两个应用程序最新。我应该继续使用sudo安装所需的宝石吗?

  2. 如何解决在新版本中找不到rails的rbenv问题?

1 个答案:

答案 0 :(得分:0)

我需要重新安装所有宝石。 Gem安装bundler,然后从每个应用程序目录中捆绑更新。