同事在自己电脑上运行打包脚本也遇到了这个问题iOS问题记录 - CocoaPods is installed but broken,于是我先帮他配置Ruby
的环境变量,发现问题还是存在,于是打算帮他装个RVM
试试看,详细步骤请看iOS问题记录 - CocoaPods is installed but broken(续)。尴尬的事情来了,GnuPG设置密钥这一步就失败了。
设置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"
公钥是可能过期失效的,所以以上的解决方案只能应急使用,如果你遇到公钥过期失效的情况,可以留言告诉我,我会及时更新密钥文件。
如果这篇文章对你有所帮助,请不要吝啬你的点赞加星,谢谢~