ruby-on-rails - “未安装 bundle ”错误

标签 ruby-on-rails ubuntu

我不擅长devops。我创建了一个名为 deploy 的用户。以前我可以通过 ssh 进入我的服务器

su deploy



并运行

RAILS_ENV=production bundle exec rails c



.

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

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

RAILS_ENV=production bundle exec rails c



我收到以下错误

The program 'bundle' is currently not installed. To run 'bundle' please ask your administrator to install the package 'ruby-bundler'



在我在 super 管理员环境中安装 ruby​​ 之前,我可以在部署用户环境中运行 bundle。

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

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

最佳答案

问题是当你 ssh 进入目录时,在目录中,没有 .ruby-version文件存在,所以它使用默认的 ruby​​ 版本(运行 which ruby 来查看确切的路径),而不是 rvm ruby version ,所以它找不到像 bundler 这样的已安装 gem .

这是一个环境问题。 capistrano 部署正在工作,因为您在 deploy.rb 中分配了 ruby​​ 版本,例如

set :rvm_ruby_version, 'ruby-2.2.2@zhitaotao'

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

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

如果这不起作用,我建议重新安装 ruby , bundler ,然后运行 ​​bundle install对于 deploy用户。我们需要确保在生产目录中,ruby 版本与 deploy.rb 中分配的 ruby​​ 版本匹配。

关于ruby-on-rails - “未安装 bundle ”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43579188/

相关文章:

ruby-on-rails - Rails,在带有 unicorn 和 nginx 的 Ubuntu 上, `secret_key_base` 缺少 'production'

ruby-on-rails - 如何在 x 位数后添加空格?

javascript - Rails js.erb 文件并追加

ruby-on-rails - 从另一台计算机打开 Ruby on Rails 项目

linux - Ubuntu 服务器 VNC 连接

linux - 为 apache2 安装 libapache2-mod-fastcgi 时出错

ruby-on-rails - 在erb模板中嵌入ejs模板

python - docker 卡在 django runserver 上

python - Google Cloud 上的 Tensorflow 问题

ubuntu - EFS 挂载失败并出现 mount.nfs4 : access denied by server