Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以验证Gemfile.lock中的所有gem是否存在https://rubygems.org?_Ruby On Rails_Ruby_Rubygems_Bundler - Fatal编程技术网

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-您对此有何意见?