安装 gem 出错:超时 https://api.rubygems.org/

3

我无法安装bundler。我使用的是Ubuntu 18,并已安装ruby 2.5.1。下面是运行该命令的输出结果:

gem install bundler --debug

NOTE:  Debugging mode prints all exceptions even when rescued
Exception `LoadError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/resolv.rb:170 - LoadError
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:937 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:939 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/timeout.rb:114 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:997 - execution expired
Exception `Gem::RemoteFetcher::UnknownHostError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:306 - timed out (https://api.rubygems.org/api/v1/dependencies)
Exception `Errno::EEXIST' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/fileutils.rb:232 - File exists @ dir_s_mkdir - /home/ikushlianski/.gem/specs/api.rubygems.org%443
Exception `Errno::ENOENT' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:325 - No such file or directory @ rb_file_s_stat - /home/ikushlianski/.gem/specs/api.rubygems.org%443/prerelease_specs.4.8
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:937 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:939 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/timeout.rb:114 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:997 - execution expired
Exception `Gem::RemoteFetcher::UnknownHostError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:306 - timed out (https://api.rubygems.org/prerelease_specs.4.8.gz)
Exception `Errno::EEXIST' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/fileutils.rb:232 - File exists @ dir_s_mkdir - /home/ikushlianski/.gem/specs/api.rubygems.org%443
Exception `Errno::ENOENT' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:325 - No such file or directory @ rb_file_s_stat - /home/ikushlianski/.gem/specs/api.rubygems.org%443/specs.4.8
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:937 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:939 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/timeout.rb:114 - execution expired
Exception `Net::OpenTimeout' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/http.rb:997 - execution expired
Exception `Gem::RemoteFetcher::UnknownHostError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:306 - timed out (https://api.rubygems.org/specs.4.8.gz)
Exception `Gem::RemoteFetcher::UnknownHostError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/spec_fetcher.rb:269 - timed out (https://api.rubygems.org/specs.4.8.gz)
Exception `Gem::UnsatisfiableDependencyError' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/installer_set.rb:72 - Unable to resolve dependency: user requested 'bundler (>= 0)'
ERROR:  Could not find a valid gem 'bundler' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - timed out (https://api.rubygems.org/specs.4.8.gz)
Exception `Errno::EEXIST' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/fileutils.rb:232 - File exists @ dir_s_mkdir - /home/ikushlianski/.gem/specs/api.rubygems.org%443
Exception `Errno::ENOENT' at /home/ikushlianski/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/remote_fetcher.rb:325 - No such file or directory @ rb_file_s_stat - /home/ikushlianski/.gem/specs/api.rubygems.org%443/latest_specs.4.8

运行 sudo gem install bundler 命令会输出 sudo: gem: 命令未找到


你能从这台机器上访问 https://rubygems.org 吗?因为出现了“无法从 https://rubygems.org/ 下载数据 - 超时”的错误。 - D1ceWard
curl https://rubygems.org 看起来工作正常。它会输出一些HTML。 - Ilya Kushlianski
是的,它输出了一些经过gzip压缩的内容,没有错误。 - Ilya Kushlianski
奇怪,你能成功地运行 gem install whatever 吗? - D1ceWard
1
我在rubygems帮助中心找到了类似的问题,http://help.rubygems.org/discussions/problems/31074-timeout-error 这似乎是一个ipv6解析问题。 - D1ceWard
显示剩余2条评论
1个回答

3
尝试在您的Ubuntu上禁用IPv6。

这就是答案。它现在可用了,谢谢。 根据这篇文章 https://www.admintome.com/blog/disable-ipv6-on-ubuntu-18-04/,只要我重新启动,ipv6 就会被启用。这是我应该期待的吗?我不想在将来禁用 ipv6。 - Ilya Kushlianski
真疯狂,一年过去了,这个问题仍然存在。 - user1142217
同样适用于Windows 10。在禁用IPv6之前,无法安装gems。 - Phrogz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接