'The following gems are missing'

'The following gems are missing'

我正在尝试创建一个 Rails 应用程序,它可以复制到另一个硬盘 而无需重新安装其 gems

我试过的一件事是 bundle install 将 gems 放入 vendor/bundle,然后将整个应用程序复制到新位置。

在新位置:

bundle config set path 'vendor/bundle'
bundle check
# which returns...
The following gems are missing
 * nokogiri (1.10.8)
 * nio4r (2.5.2)
 * websocket-driver (0.7.1)
 * bcrypt (3.1.7)
 * ffi (1.12.2)
 * sassc (2.2.1)
 * pg (1.2.2)
 * puma (4.3.1)
Install missing gems with `bundle install`

但是,当我去 vendor/bundle/ruby/2.7.0/gems 时,我看到了所有列出的宝石。

尝试使用上述文件夹中的 gem 按照说明进行操作:

bundle install --local
=> Could not find nokogiri-1.10.8 in any of the sources

捆绑包配置:

~/myapp/.bundle/config:
---
BUNDLE_PATH: "vendor/bundle"

这是怎么回事?

  1. 删除或检查您的捆绑包配置文件是否有冲突的设置和指向旧位置的路径

  2. 检查本地和全局包配置文件之间的差异并解决所有冲突

  3. 尝试使用 --local 参数重新安装您的 gem

来源:, here, and here

不是对您具体问题的回答,而是从更高的角度看待问题并建议改变方法。

已创建容器化应用程序来解决此类问题。 Docker 是一个免费提供的工具,我建议您在这里使用。

这里有一些链接可以帮助您开始。现在玩 1-6 小时需要中等投资,但总的来说会节省时间。我去过你以前去过的地方,自从转向容器化应用程序后我就再也没有回头过

Docker getting started

Docker and Rails