【问题标题】:Gem not found in any of the sources when deploying with Capistrano使用 Capistrano 部署时,在任何来源中都找不到 Gem
【发布时间】:2020-05-25 22:55:57
【问题描述】:

我使用 Ruby On Rails 开发了一个 Web 应用程序。在我的本地机器上,我使用 RVM 来管理 Ruby 版本。我正在使用 ruby​​ 2.7.1 和 rails 6。

现在我正在尝试使用以下指南将此应用程序部署到 Digital Ocean 液滴:https://gorails.com/deploy/ubuntu/18.04。 我使用与指南相同的堆栈,所以我使用的是 rbenv。

我完成了所有设置,现在我正在尝试运行cap production deploy。但我收到了这个错误: Bundler::GemNotFound:在任何来源中都找不到 name_of_gem

当 capistrano 运行 rake db:migrate 时会发生这种情况。 我尝试手动安装gem,但随后它显示不同gem的相同错误,并且这种情况一直在发生。看起来 capistrano 没有执行 bundle install

有人可以帮帮我吗?

【问题讨论】:

标签: ruby-on-rails ruby capistrano rbenv


【解决方案1】:

我在gorails 上看到了你的脚步。正如你所说:

在我的本地机器上,我使用 RVM 来管理 Ruby 版本。

根据步骤设置 Capistrano,它要求您在本地计算机中包含 gem 'capistrano-rbenv'。不过rbenv official repository有一条建议:

兼容性说明:rbenv 与 RVM 不兼容。请确保在安装 rbenv 之前完全卸载 RVM 并从 shell 初始化文件中删除对它的任何引用。

虽然它并没有说明 capistrano-rbenv,但它也可以充当版本管理器。

它说,你可以卸载你的 RMV 你可以使用一个 shell 集来找不到任何 RMV 路径的参考。

我在那里看到了很多关于 postgresql gem 问题的 cmets。如果您只需要将应用部署到在线服务器上,不知道是什么服务器,我建议您关注the famous learn enough rails tutorial: deploying on heroku

建议,您不需要在本地计算机中安装 postgresql 即可在服务器上启动它,您可能在服务器上安装了 sqlite 默认值 postgresql。 Active Record 知道如何只用一个命令来管理两者

【讨论】:

    猜你喜欢
    • 2021-02-01
    • 2020-10-16
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2023-03-31
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多