Ruby on rails 是否可以验证Gemfile.lock中的所有gem是否存在https://rubygems.org?
是否可以验证Ruby on rails 是否可以验证Gemfile.lock中的所有gem是否存在https://rubygems.org?,ruby-on-rails,ruby,rubygems,bundler,Ruby On Rails,Ruby,Rubygems,Bundler,是否可以验证Gemfile.lock文件中的所有gem是否存在 我最近更新了elastic beanstalk平台版本,但由于以下错误而失败: 您的捆绑包已锁定为mimemagic(0.3.3),但在您的文件中列出的任何源中都找不到该版本。如果您没有更改源代码,则意味着mimemagic(0.3.3)的作者已将其删除。您需要将捆绑包更新到mimemagic(0.3.3)以外的版本,该版本尚未删除才能安装 由于托管部署系统的所有复杂性,很难进行调试 失败的原因是mimemagic的作者删除了0.3
Gemfile.lock
文件中的所有gem是否存在
我最近更新了elastic beanstalk平台版本,但由于以下错误而失败:
您的捆绑包已锁定为mimemagic(0.3.3),但在您的文件中列出的任何源中都找不到该版本。如果您没有更改源代码,则意味着mimemagic(0.3.3)的作者已将其删除。您需要将捆绑包更新到mimemagic(0.3.3)以外的版本,该版本尚未删除才能安装
由于托管部署系统的所有复杂性,很难进行调试
失败的原因是mimemagic的作者删除了0.3.3版,因此我需要将gem更新为0.3.6。(请参见此处的gem版本历史记录:)
因此,我的问题是:是否有一个命令可以运行,例如,bundle check\u sources
,它可以扫描Gemfile.lock
中的gem和版本,并点击以验证它们是否都存在并且仍然可用
这与捆绑检查类似,但它不是在本地机器上查找gem,而是在远程源上查找gem。我今天遇到了同样的问题,我在docker上运行我的项目,解决方案是在Gemfile.lock上更改mimemagic版本,我不知道这是否是一个最佳的解决方案,但却救了我一天:)在向
bundler
的开发人员建议了一个功能请求后,他们建议了至少一个可行的解决方案。只需运行以下命令:
bundle install --deployment --redownload
--redownload
(或--force
)开关将强制下载每个gem,即使所需版本已在本地提供
--deployment
开关强制使用GEM文件中指定的确切版本(并忽略补丁升级,如~>0.3.2
,通常升级到0.3.6
)。部署期间,使用--deployment
是常见的做法
此解决方案并不理想,因为它需要完全重新安装所有捆绑包的gems。但它是有效的
感谢您的建议。Hi@PauloBufalinoMora。欢迎来到堆栈溢出。OP询问是否有办法验证gems-您对此有何意见?