RVM问题记录 - keyserver receive failed: Network is unreachable


前言

同事在自己电脑上运行打包脚本也遇到了这个问题iOS问题记录 - CocoaPods is installed but broken,于是我先帮他配置Ruby的环境变量,发现问题还是存在,于是打算帮他装个RVM试试看,详细步骤请看iOS问题记录 - CocoaPods is installed but broken(续)。尴尬的事情来了,GnuPG设置密钥这一步就失败了。

2023/07/09更新:时隔大半年,再次遇到了这个问题,并且有了新的解决方案。通过RVM的服务器导入密钥:

curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -

依次执行导入成功后即可继续安装RVM!当然,继续阅读本篇文章使用原先的解决方案也是没问题的。参考文档:RVM: Ruby Version Manager

开发环境

  • GnuPG: 2.3.8

问题描述

设置RVM密钥:

gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

执行出现报错:

gpg: keyserver receive failed: Network is unreachable

问题分析

瞧瞧这报错信息,多么的清晰明了,直白的跟你说网络有问题。那么,网络真的有问题吗?

我把同事的电脑检查了一遍,没有发现什么异常,同一网络下,在我电脑上是正常的。那只能试试指定其他keyserver(密钥服务器),结果还是不行,这不禁让我想起来了那个让人怀疑人生的问题Flutter & iOS问题记录 - The application‘s Info.plist does not contain a valid CFBundleShortVersionString

难道公司网络真的有问题?抱着怀疑的态度,我尝试手机开热点给电脑,结果还是不行。真是离了大谱,同事的电脑有毒😣!网上翻了翻都没找到有用的解决方法,没办法,那只能用个笨办法。简单来说就是把我电脑上已经设置的密钥导出到同事电脑上。

先看看电脑上已经装的密钥:

gpg --list-keys

执行输出:

pub   rsa4096 2016-11-11 [SC]
      7D2BAF1CF37B13E2069D6956105BD0E739499BDB
uid             [ 未知 ] Piotr Kuczynski <piotr.kuczynski@gmail.com>
sub   rsa4096 2016-11-11 [E]

pub   rsa4096 2014-10-28 [SC]
      409B6B1796C275462A1703113804BB82D39DC0E3
uid             [ 未知 ] Michal Papis (RVM signing) <mpapis@gmail.com>
uid             [ 未知 ] Michal Papis <michal.papis@toptal.com>
uid             [ 未知 ] [jpeg image of size 5015]
sub   rsa2048 2015-11-02 [E]

接着分别导出设置的两个密钥:

# 导出密钥1
gpg -a -o ~/rvm-pub-1.key --export 409B6B1796C275462A1703113804BB82D39DC0E3
# 导出密钥2
gpg -a -o ~/rvm-pub-2.key --export 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

-a:密钥以ASCII的方式输出,默认以二进制的方式输出
-o:指定输出写入的文件路径
--export:指定要导出的密钥

这是导出公钥操作,如果是导出私钥,除了要将--export换成--export-secret-keys,还需要额外的密码。

如果你对命令行工具的命令不熟悉,无脑先来个xxx help/xxx -help/xxx --help命令,看看有啥可以使用的命令。以上的gpg命令可以通过gpg --help查看用法。

密钥文件导出成功后,那接下来就是这个问题的解决方案啦。

解决方案

RVM密钥文件下载地址:

下载解压文件后分别导入两个密钥:

# 导入密钥1
gpg --import ~/rvm-pub-1.key
# 导入密钥2
gpg --import ~/rvm-pub-2.key

执行导入命令时请将~/rvm-pub-1.key~/rvm-pub-2.key替换为你电脑上密钥文件的实际路径,当然你也可以输完命令gpg --import 后直接将密钥文件拖到命令窗口,命令后面会自动加上密钥文件的绝对路径。

导入密钥成功后,直接执行RVM的安装命令:

\curl -sSL https://get.rvm.io | bash -s stable

RVM安装成功,这个问题到这应该算是解决了。不过还没完,接下来的安装Ruby出问题了,没想到先前的一番操作还给自己留下了一个坑。通过以下命令安装Ruby时会自动变成安装Homebrew

rvm install ruby-3.0.0

真是流年不利,最近奇奇怪怪的问题层出不穷。经过一番排查,发现是刚开始解决问题时配置的Ruby环境变量导致的,如果你也遇到了,可以试试不再使用Homebrew安装的Ruby,注释或删除配置的环境变量:

# export PATH="/usr/local/opt/ruby/bin:$PATH"

总结

公钥是可能过期失效的,所以以上的解决方案只能应急使用,如果你遇到公钥过期失效的情况,可以留言告诉我,我会及时更新密钥文件。

最后

如果这篇文章对你有所帮助,请不要吝啬你的点赞👍加星🌟,谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
“ bundler: failed to load command: pod (/opt/homebrew/Cellar/fastlane/2.211.0/libexec/bin/pod)RubyGems Environment:- RUBYGEMS VERSION: 3.0.3.1- RUBY VERSION: 2.6.10 (2022-04-12 patchlevel 210) [universal.arm64e-darwin22]- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.6.0- USER INSTALLATION DIRECTORY: /Users/e125866/.gem/ruby/2.6.0- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby- GIT EXECUTABLE: /usr/local/bin/git- EXECUTABLE DIRECTORY: /usr/local/bin- SPEC CACHE DIRECTORY: /Users/e125866/.gem/specs- SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site- RUBYGEMS PLATFORMS:- ruby- universal-darwin-22- GEM PATHS:- /Library/Ruby/Gems/2.6.0- /Users/e125866/.gem/ruby/2.6.0- /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0- GEM CONFIGURATION:- :update_sources => true- :verbose => true- :backtrace => false- :bulk_threshold => 1000- :sources => ["https://gems.ruby-china.com/"]- :concurrent_downloads => 8- REMOTE SOURCES:- https://gems.ruby-china.com/- SHELL PATH:- /opt/apache-maven-3.8.6/bin- /opt/homebrew/bin- /opt/homebrew/sbin- /usr/local/bin- /System/Cryptexes/App/usr/bin- /usr/bin- /bin- /usr/sbin- /sbin- /usr/local/sbin- /Library/Apple/usr/bin- /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin- /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin- /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin- /Users/e125866/.rvm/bin”这个有问题吗?
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值