3

我正在尝试在 Ruby 3.0.2 和 Rails 7.0.1 中部署 web 应用程序,但在使用 nginx(1.18.0)和乘客(6.0.12)的生产服务器 Ubuntu 20.04 中通过 capistrano 部署它后出现问题。

所有过程都运行良好,但应用程序无法在生产中启动。我得到乘客错误页面。在日志中查找我得到下一个错误:

“错误:应用程序遇到以下错误:您已经激活 io-wait 0.1.0,但您的 Gemfile 需要 io-wait 0.2.1。由于 io-wait 是默认 gem,您可以删除对它的依赖或尝试更新到支持 io-wait 作为默认 gem 的较新版本的捆绑程序”

我尝试删除 gem io-wait 但它是默认系统 gem,我无法删除它,我已将捆绑程序升级到最新 (2.3.4) 并且错误仍然存​​在。我添加了最新的 io-wait 版本(0.2.1)并得到了同样的错误。

欢迎任何帮助。

4

3 回答 3

3

我通过添加让它工作

gem "io-wait", "0.1.0"

然后我也遇到了“strscan”的问题。不得不降级到“3.0.0”。

于 2022-01-14T10:36:43.997 回答
2

在我的 gem 文件中,我将两个有问题的 gem 设置为旧版本。

gem "io-wait", "0.1.0"
gem "strscan", "3.0.0"

之后,部署和启动应用程序工作正常。

Ruby v3.0.2 Rails 7.0.0

于 2022-01-27T14:46:02.593 回答
2

我能够通过使用以下内容来完成任务:gem "io-wait", "0.2.0"

于 2022-01-11T02:42:07.137 回答