当前位置: 首页 > 工具软件 > Ruby++ > 使用案例 >

Ubuntu16 ruby的gem更改源错误,fetching:timed out | no such name(https://gems.ruby-china.com/specs.4.8.gz)

沈华晖
2023-12-01

一 现象描述

Ubuntu16.04下安装ruby并创建redis服务集群,具体步骤如下:

1 安装ruby:sudo apt-get install ruby 

2 此时ruby的源需要更改为国内源,删除原有源,最新的国内源为:https://gems.ruby-china.com,更换方法:

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ 等待一分钟左右报错如下:

Error fetching https://gems.ruby-china.com/:
    timed out (https://gems.ruby-china.com/specs.4.8.gz)

可能原因:可能是网络环境问题,网页打开https://gems.ruby-china.com/specs.4.8.gz可正常下载specs.4.8.gz文件,更换为手机热点重新执行以上命令,报错如下:

Error fetching https://gems.ruby-china.com/:
    no such name (https://gems.ruby-china.com/specs.4.8.gz)

二 解决方法

参考这里的解决方法,手动修改.gemrc文件

1 使用如下命令来更新源缓存

gem sources -u

上面的命令可能根本没有回显,如果有也往往是出错或发生变更时的回显,我怎么知道它到底做了什么检查呢!?

在linux下一条命令要想开启”噪声”模式,要在命令后添加-v或-V参数,十有八九gem的命令也是这个套路,所以我首先尝试使用-v参数开启”噪声”模式:

gem sources -u -v

#回显如下

 apple@kissAir: ~$gem sources -u -v GET http://gems.ruby-china.org/specs.4.8.gz 302 Moved Temporarily GET http://gems-ruby-china.b0.upaiyun.com/specs.4.8.gz 304 Not Modified GET http://gems.ruby-china.org/latest_specs.4.8.gz 302 Moved Temporarily GET http://gems-ruby-china.b0.upaiyun.com/latest_specs.4.8.gz 304 Not Modified GET https://ruby.taobao.org/specs.4.8.gz 302 Moved Temporarily GET https://gems.ruby-china.org/specs.4.8.gz 302 Moved Temporarily GET https://gems-ruby-china.b0.upaiyun.com/specs.4.8.gz 304 Not Modified GET https://ruby.taobao.org/latest_specs.4.8.gz 302 Moved Temporarily GET https://gems.ruby-china.org/latest_specs.4.8.gz 302 Moved Temporarily GET https://gems-ruby-china.b0.upaiyun.com/latest_specs.4.8.gz 304 Not Modified ERROR: While executing gem ... (Gem::RemoteFetcher::UnknownHostError) no such name (https://rubygem.org/specs.4.8.gz)

可以看到除了最后一个源名解析上有问题,其他源都进行了更新检查,但都没有变更.这样心里就有底啦!起码我知道这条命令做了许多事.

最后还有一种修改源的方法,在~用户根目录下,打开.gemrc文件:

--- :backtrace: false :bulk_threshold: 1000

:sources:

- http://gems.ruby-china.com/

:update_sources: true

:verbose: true

install: --no-rdoc --no-ri

update: --no-rdoc --no-r

你可以在这里直接修改gem源的顺序或其他参数.

 类似资料: