我正在Windows上开发Ruby on Rails。
我们的本地网络出现问题,无法访问https://www.rubygems.org,似乎已被屏蔽或其他内容。
但我可以通过http://www.proxyfoxy.com访问它。
以下是bundle install
的结果:
$ bundle install
获取源索引由于错误而重试抓取器(2/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
由于错误而重试抓取器(3/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
由于错误而重试抓取器(4/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
获取规格
有没有其他方法可以通过bundle install
安装宝石?
答案 0 :(得分:6)
打开Gemfile并从此
更改第一行source 'https://www.rubygems.org'
到这个
source 'http://www.rubygems.org'
删除' s
'来自' https
'。
答案 1 :(得分:3)
正如@Wasif所提到的,首先确保Ruby Gems网站已启动并且您的网络访问正常。
如果它们正常工作,请尝试这样:
首先,删除您的Gemfile.lock
文件
然后运行gem update --system
然后在您的Gemfile中尝试将第一行source
'https://rubygems.org'
更改为http://
(不带s
)
除非您的连接出现问题,否则应解决bundle install
的问题。
答案 2 :(得分:1)
当 gem 停止时,我运行了 netstat
netstat -tnp | grep ruby
我得到了低于输出
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 1 2401:4900:188e:90:56960 2a04:4e42:600::644:443 SYN_SENT 4096/ruby
而 2a04:4e42:600::644:443 是 api.rubygems.org 的地址之一
我的结论是 gem 尽可能使用 IPv6。
所以在我的工作站上禁用 IPV6 修复了它。
以下是在 Ubuntu 上临时禁用 IPV6 的步骤。系统重启后将启用IPV6。
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
注意:对 permission denied
问题使用 sudo。
答案 3 :(得分:0)
我遇到了同样的问题,当我在运行bundle install
答案 4 :(得分:0)
答案 5 :(得分:0)
在第一行的Gemfile中,源代码应为http://而不是https://
更改
sourçe https://www.rubygems.org
进入
source http://www.rubygems.org
然后您可以成功运行bundle install
答案 6 :(得分:0)
有时候, 您的DNS导致此问题。
您可以将DNS更改为1.1.1.1
或8.8.8.8
1.1.1.1
或8.8.8.8
但是您可以按照以下步骤操作: http://www.macinstruct.com/node/434
https://www.windowscentral.com/how-change-your-pcs-dns-settings-windows-10
答案 7 :(得分:0)
在Rails应用程序中运行bundle
时遇到相同的错误。我通过运行来解决问题:
$ bin/bundle
问题是bundle
是v1.17.3,而bin/bundle
是2.0.2。版本。
答案 8 :(得分:0)
我遇到了同样的问题,但是在Ubuntu上,运行的是什么帮助:
env | grep proxy
其中显示了一些类似这样的活跃代理:
https_proxy=127.0.0.1:8888
http_proxy=127.0.0.1:8888
在我用unset命令删除了它们之后:
unset https_proxy
unset http_proxy
我可以正常运行bundle install
。
答案 9 :(得分:0)
这个错误对我来说很难。我整天都无法解决它,但最后我关闭了wifi路由器,等了1分钟再将其打开。然后错误已修复,希望对您有所帮助。
答案 10 :(得分:0)
这只是网络问题。
以下几点可以帮助您解决这个问题-:
答案 11 :(得分:0)
有人可能会觉得这很有用:我在构建 docker 映像时收到此错误消息,结果我在 /etc/docker/daemon.json
中有一些自定义 dns 设置
答案 12 :(得分:-1)
这是一个连接问题。我通过hideMe VPN解决了这个问题。它用于绕过被阻止的网站或仅针对特定用户的服务器