Rails 3.2 不使用捆绑的 gem,Capistrano 需要安装 sudo gem,而 rbenv 找不到 ra



我有2个Rails 3.2.11应用程序运行在Ubuntu 12.04服务器上,带有Nginx,Unicorn和Postgresql。部署是通过 git 和 capistrano 进行的。

安装第二个应用程序后,我发现 Capistrano 在上限部署期间会失败,因为它"找不到 gem 源",我需要使用 sudo 安装每个丢失的 gem。在此之后,上限部署工作正常,应用程序也是如此。报告从任一应用中的当前目录运行捆绑安装,使用所有正确的 Gem。

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

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

现在,当我从我的应用程序dev dir运行rails服务器(rails s)时,我得到rbenv:rails:命令未找到。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的命令存在于这些Ruby版本中:1.9.3-p327"。

因此,我认为有两个问题是相关的:-

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

  2. 如何解决新版本找不到导轨的rbenv问题?

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

相关内容

  • 没有找到相关文章

最新更新