我需要在我的heroku应用程序(雪松14)上使用更新版本的bundler,我还没有看到任何我无法做到这一点的原因。我已经陷入1.6.6这几个月了,我需要最新版本。
我需要为我的某个宝石指定source:
选项,旧版本的bundler不允许这样做。此外,运行heroku run gem update bundler
成功更新但是&heroku运行包-v'收益率为1.6.6。
为什么?
答案 0 :(得分:1)
您可以通过在Heroku上指定Ruby Buildpack来修改使用的bundler版本:
如果您发现正在使用不同版本的Bundler 应用程序比Ruby支持文章中列出的那样 应用程序可能配置为使用Ruby的主分支 用于部署的buildpack。
要检查配置了哪个buildpack,请使用heroku buildpacks 命令:
> heroku buildpacks
> === hidden-temple-25627 Buildpack URL https://github.com/heroku/heroku-buildpack-ruby.git
示例输出显示了未发布的buildpack版本 正在使用。要切换到支持的版本,请设置buildpack 如下:
heroku buildpacks:设置heroku / ruby Buildpack set。下一个版本 hidden-temple-25627将使用heroku / ruby。运行git push heroku master 使用此buildpack创建新版本。
您可以通过键入以下内容来验证是否已设置新的buildpack:
> heroku buildpacks
> === hidden-temple-25627 Buildpack URL heroku/ruby
您的应用可能未使用当前支持的另一个原因 Bundler版本是否配置为使用其他版本进行部署 buildpack URL。如果BUILDPACK_URL配置var是,则会发生这种情况 集。
> heroku config:get BUILDPACK_URL BUILDPACK_URL:
> https://github.com/heroku/heroku-buildpack-ruby.git
如果您看到任何值,那么您正在使用自定义构建包。如果这 value设置为“multi buildpack”,例如 https://github.com/heroku/heroku-buildpack-multi然后你需要 检查.buildpacks文件以查看使用的buildpacks 部署。如果您使用这种部署方法,我们建议您使用 您改为遵循使用多个Buildpacks中的指导 对于应用文章。
官方部署的Ruby buildpack有时会落后 掌握了几天。
除此之外,它无法直接配置:
为什么不能配置Bundler版本?
不同版本的Bundler有不同的已知错误和轻微 不同的行为。 Heroku上的Bundler版本是谨慎的 策划。需要在支持新的Bundler之间取得平衡 功能和稳定性。我们为策划Bundler所做的工作 版本确保最大的稳定性,并避免弃用和 Bundler更改时的通知周期,或者修复了错误或 Heroku修补了安全问题。
Heroku Ruby提供Heroku上的Ruby体验 Buildpack。这是安装Bundler版本的工具 运行设置应用程序所需的所有命令。该 buildpack依赖于公开暴露的Bundler内部。它是 测试并且已知可以使用当前指定的版本 捆绑。如果你要采用现代的buildpack并使用它 旧版本的Bundler,你可能会看到不可预测的 结果