我有一个带有 Rackspace 的服务器,用于一些 Ruby 站点。当我尝试 bundle install
一个新网站时,我得到
Retrying download gem from http://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::UnknownHostError timed out (http://rubygems.org/gems/rake-12.3.1.gem)
或者尝试gem update --system
我得到
ERROR: While executing gem ... (Gem::RemoteFetcher::UnknownHostError)
timed out (http://api.rubygems.org/specs.4.8.gz)
我尝试过的:
gem
从源下载和更新(在 2.7.6 上)apt-get update
AddTrustExternalCARoot-2048.pem
我没试过的:
我终于(就在提交之前)能够bundle install
通过删除 rubygems.org 作为源并添加https://gems.ruby-china.org/来开始工作。为什么 gem 无法访问 rubygems.org?
api.rubygems.org
当前遇到 IPv6 设置问题:此主机名有 4 个 IPv6 地址,但对它们都没有响应。既不是ping
,也不是 TCP 连接尝试。当你运行时gem
,你gem
首先尝试 IPv6 地址并超时,甚至没有时间尝试 IPv4 地址。
解决方案是降低 IPv6 地址的优先级api.rubygems.org
,以便gem
先尝试 IPv4 地址。为此,请将这些行放入/etc/gai.conf
:
# Debian defaults.
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
precedence ::ffff:0:0/96 10
# Low precedence for api.rubygems.org IPv6 addresses.
precedence 2a04:4e42::0/32 5
2018 年 11 月,这仍然有效。Rubygems.org 真的应该从 DNS 中提取 ipv6 地址,直到他们解决问题为止。
OSX 是否有等效的修复程序?我没有看到
/etc/gai.conf
文件。2019 年 5 月,这仍然有效。请修复您的 ipv6,rubygems!
2020 年 2 月,此解决方案仍然有效!请rubygems,修复它!
2021 年 2 月 5 日,这为我解决了问题:)