无法推送到 Heroku:"Could not find rake-11.1.2 in any of the sources"
Cannot push to Heroku: "Could not find rake-11.1.2 in any of the sources"
我无法将我的项目推送到 Heroku
它告诉我我缺少 gem rake 11.1.2
但 运行 gem list rake
告诉我我确实安装了 rake 11.1.2。
此问题已通过在推送到 Heroku 之前从代码库中删除 vendor/cache
得到解决。这个可能令人困惑的结果是由 bundle
在不同情况下表现出的行为差异引起的。
在您的工作站上使用 bundle
,该命令将显示 this behavior:
在安装 gem 时,Bundler 将检查 vendor/cache,然后检查您系统的 gem。如果 gem 未被缓存或安装,Bundler 将尝试从您在 Gemfile 中声明的源安装它。
这会产生 OP 预期的结果,一个有效的设置。
然而,Heroku 上的 bundle
命令正准备 运行 您的应用程序处于网络流量负载下,这是一组与开发完全不同的压力。在 Heroku 上,bundle
命令使用 --deployment
标志执行,这将显示 this behavior:
如果您有 运行 捆绑包,在 vendor/cache 目录中查看,并且没有任何 git gem,Bundler 将安装包时不要连接互联网。
Bundler 在这里做出假设,基于 vendor/cache
目录的存在,bundle pack
命令已经 运行,gem 是预先配置。由于 rake
不存在于 vendor/cache
中,这就是由此产生的错误。
OP 可能已通过从 vendor/cache
中删除相关的 gem 或发出 bundle pack
命令并将 gem 签入源代码管理来解决问题.第一种比较常见。
我无法将我的项目推送到 Heroku
它告诉我我缺少 gem rake 11.1.2
但 运行 gem list rake
告诉我我确实安装了 rake 11.1.2。
此问题已通过在推送到 Heroku 之前从代码库中删除 vendor/cache
得到解决。这个可能令人困惑的结果是由 bundle
在不同情况下表现出的行为差异引起的。
在您的工作站上使用 bundle
,该命令将显示 this behavior:
在安装 gem 时,Bundler 将检查 vendor/cache,然后检查您系统的 gem。如果 gem 未被缓存或安装,Bundler 将尝试从您在 Gemfile 中声明的源安装它。
这会产生 OP 预期的结果,一个有效的设置。
然而,Heroku 上的 bundle
命令正准备 运行 您的应用程序处于网络流量负载下,这是一组与开发完全不同的压力。在 Heroku 上,bundle
命令使用 --deployment
标志执行,这将显示 this behavior:
如果您有 运行 捆绑包,在 vendor/cache 目录中查看,并且没有任何 git gem,Bundler 将安装包时不要连接互联网。
Bundler 在这里做出假设,基于 vendor/cache
目录的存在,bundle pack
命令已经 运行,gem 是预先配置。由于 rake
不存在于 vendor/cache
中,这就是由此产生的错误。
OP 可能已通过从 vendor/cache
中删除相关的 gem 或发出 bundle pack
命令并将 gem 签入源代码管理来解决问题.第一种比较常见。