【问题标题】:Capistrano: bundler: failed to load command: rakeCapistrano:捆绑器:加载失败命令:rake
【发布时间】:2017-09-25 19:16:53
【问题描述】:

我正在尝试使用 Capistrano、Passenger 和 RVM 将 Rails 应用程序从 Windows 开发机器部署到 Debian 9 VPS。我在 VPS 上使用 Apache 设置了 RVM 和 Passenger,在 Windows 机器上设置了 Capistrano。但是,当我尝试运行 cap production deploy 时,出现以下错误:

bundler: failed to load command: rake (/var/www/APPNAME/shared/bundle/ruby/2.4.0/bin/rake)

在 Windows 上开发的一个怪癖是必须在部署时编辑 Gemfile.lock 以删除特定于 Windows 的 gems 版本。我编写了一个自定义任务来执行此操作,它似乎按预期运行。

以下是一些可能有用的文件:

【问题讨论】:

  • 你检查过/var/www/APPNAME/shared/bundle/ruby/2.4.0/bin/rake是否存在于VPS上吗?您的 capistrano ssh 用户是否在 rvm 组中?在尝试调用 ruby​​ 脚本之前,您的 capistrano 设置是否获取 rvm 环境?
  • 我检查了,文件存在。 VPS上没有名为“rvm”的组; rvm 安装到 ssh 用户的主目录中。我正在使用 capistrano-rvm gem,并且源命令在 ssh 用户的 bashrc 中,所以我认为正在加载环境。
  • 我建议测试这个假设,rvm 非常脆弱。

标签: ruby-on-rails rvm capistrano passenger bundler


【解决方案1】:

在我将 Bundler 降级到 1.12.5 版(之前是 1.15.4 版)后,问题得到了解决。我认为我的设置和较新版本的 Bundler 存在某种冲突;但在底层问题得到修补之前,我将继续使用旧版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多