ruby Bundle:Metadata.gz缺少摘要

bis0qfac  于 2023-06-05  发布在  Ruby
关注(0)|答案(2)|浏览(110)

使用bundler安装当前的rspec版本时,我得到以下错误。

The gem rspec-core-3.7.1 can't be installed because the security policy 
didn't allow it, with the message: missing digest for metadata.gz

所以我试着逃跑

bundle --trust-policy=NoSecurity

但仍然得到相同的错误。
我做错了什么?

voj3qocg

voj3qocg1#

https://github.com/bundler/bundler/blob/master/lib/bundler/rubygems_integration.rb

# TODO: This is for older versions of RubyGems... should we support the
# X-Gemfile-Source header on these old versions?
# Maybe the newer implementation will work on older RubyGems?
# It seems difficult to keep this implementation and still send the header.

我会尝试以下方法
1.更新Ruby

gem install rubygems-update
update_rubygems
gem update --system

1.更改您正在使用的Ruby版本。如果您使用的是rbenv,请遵循此指南,否则对于rvm,您必须深入了解their website

  1. Update/reinstall bundler
eufgjt7s

eufgjt7s2#

我在Ubuntu 20.04的WSL环境中得到了这个错误。
我使用rbenv和ruby-build。
我是这样解决的:
打开rbenv/versions/3.1.4/lib/ruby/site_ruby/3.1.0/rubygems/security/policy.rb(确保将此处的Ruby版本替换为当前版本)。
添加这一行:

return true # WARN: Workaround for a BUG!

在这一行之前:

signatures.each do |file, _|

是的,这不是一个明确的解决方案,但它有效。
以前的回答对我一点帮助都没有。
这个问题可能与WSL中的SSH连接中断有关。例如,当我在WSL控制台中输入ssh <any-domain>时,我没有得到任何输出。

相关问题