'未安装捆绑包'错误

时间:2017-04-24 03:09:43

标签: ruby-on-rails ubuntu

我对devops并不擅长。我创建了一个名为deploy的用户。以前我可以ssh到我的服务器然后

  

su deploy

并运行

  

RAILS_ENV =生产包exec rails c

前几天,我完全忘记了我有一个名为deploy的用户。作为root用户,我使用rvm安装了ruby。 RVM已经安装。

现在我记得我有一个名为deploy的用户。我运行su deploy然后运行

  

RAILS_ENV =生产包exec rails c

我收到以下错误

  

目前尚未安装程序'bundle'。运行'捆绑'   请让管理员安装软件包'ruby-bundler'

在我在super admin env中安装ruby之前,我可以在部署用户环境中运行bundle。

有没有办法解决这个问题?

PS:我的capistrano部署脚本运行没有任何问题,即使它是由“部署”用户部署的

1 个答案:

答案 0 :(得分:3)

问题是,当你进入目录时,在目录中,没有.ruby-version文件存在,所以它使用默认的ruby版本(运行which ruby来查看确切的路径),而不是rvm ruby version,因此无法找到已安装的宝石,例如bundler

这是一个环境问题.capistrano部署正在运行,因为您已在deploy.rb中分配了ruby版本,如

set :rvm_ruby_version, 'ruby-2.2.2@zhitaotao'

所以它可以找到正确的ruby版本,然后找到版本的installed gems。

解决方案是添加名为.ruby-version的文件,将内容设置为ruby-2.3.1

如果这不起作用,我建议重新安装rubybundler,并为bundle install用户运行deploy。我们需要确保在生产目录中,ruby版本与deploy.rb中指定的ruby版本匹配。