如何解决RVM安装过程中出现的“gpg:command not found”错误?

199

我有一台新的Mac Pro(OS X 10.9.5),需要从头开始设置。我想安装RVM,第一件事就是:

安装mpapis公钥(可能需要使用gpg2和/或sudo

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

当我尝试时,我得到了:

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
zsh: command not found: gpg

我曾试图寻找一份好的指南来克服这个问题,看起来也值得信赖,但我没有成功。

请问有人能解释一下什么是gpg,为什么我没有它,以及如何正确地获取它。


1
你在Google里试过"gpg"吗?这是公钥加密,你需要手动安装适当的工具或从Brew或Macports安装。这也不完全是一个StackOverflow问题。 - ofrommel
1
大家好,如果你正在尝试在2021年或之后设置RVM,并且遇到了这个问题,在使用brew安装并再次运行RVM命令后,你会看到"gpg: keyserver receive failed: No name"错误,那是因为SKS Keyserver Network已被弃用。你需要将keyserver更改为另一个,比如运行"gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"。来自https://dev59.com/DlEG5IYBdhLWcg3wbNTX#68132500。 - Harry Yu
9个回答

347

GnuPG(二进制文件名为gpg)是一款应用程序,使用OpenPGP协议进行公钥加密,同时还可以进行签名验证(加密签名,如果正确使用也可以验证发布者)。在某种程度上,您可以说它对于OpenPGP就像OpenSSL对于X.509和TLS。

与大多数Linux发行版不同(它们在其软件包存储库中使用GnuPG来确保未篡改的软件),Mac OS X不会随操作系统提供GnuPG,因此您必须自己安装它

可能的安装来源包括:

  • 软件包管理器Homebrewbrew install gnupg gnupg2
  • 软件包管理器MacPortssudo port install gnupg gnupg2
  • GPGTools安装,它还提供GUI应用程序和在Apple Mail中的集成

我遇到了与JDillon522提出的原始问题完全相同的问题。为了安装RVM,我只安装了gpg2。这个答案帮助我额外安装了gpg - Brian Zelip
9
通过Homebrew安装似乎对我没有用。尽管过程完成时没有问题,但是"gpg"命令仍然无法使用。最终我使用了GPG工具,使该命令可用。 - foamcow
如何在Windows上安装GnuPG和GnuPG2?因为Brew安装程序仅适用于Mac。 - taranjeetsapra
你最好使用GPG4Win发行版的GnuPG,它还包括一个安装程序。如果你仍然遇到gpg未找到的问题,请确保你的%PATH%变量已正确设置。 - Jens Erat
1
brew doctor 帮助我解决了 gpg 命令未找到的问题,让我成功地运行了它。 - Brian Ball
显示剩余3条评论

35

根据指示,可能需要使用 gpg2

在Mac上,您可以尝试使用Homebrew进行安装

$ brew install gpg2 

2
如果您没有Homebrew,可以使用以下命令在Mac OS X上安装它:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"。有关更多信息,请参见(http://coolestguidesontheplanet.com/installing-homebrew-os-x-yosemite-10-10-package-manager-unix-apps/)。 - dwsolberg
2
用户还需要安装 gpg,除了 gpg2,请参考Jens Erat的答案。 - Brian Zelip

26

在Mac OSX 10.15上,即使安装了gpg,我仍然收到"gpg2命令未找到"的错误提示

$ brew install gnupg gnupg2
Warning: gnupg 2.2.23 is already installed and up-to-date
To reinstall 2.2.23, run `brew reinstall gnupg`

$ gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
-bash: gpg2: command not found

相反,这对我很有用

$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

赞同使用 keyserver 标志运行成功! - C13L0
使用给定的命令出现了“gpg: keyserver receive failed: No name”的错误。尝试了另一个密钥服务器,可以正常工作。 - joedragons
2
是的,来自sks-keyservers.net的前两个密钥服务器现在对我不起作用。来自https://rvm.io/rvm/security的第三个服务器可以使用:`gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB` - Denis V
1
遇到了同样的问题,使用了gpg方法解决了! - Frank Guo

12

以下是安装 RVM 的步骤。

步骤 1:安装 gpg 或 gpg2(两者都可以)

brew install gpg

步骤二:安装GPG密钥以验证安装包:

gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

如果您在使用上述密钥服务器时遇到问题,请尝试使用其他密钥服务器。

  • hkp://ipv4.pool.sks-keyservers.net
  • hkp://pgp.mit.edu
  • hkp://keyserver.pgp.com

步骤3:安装RVM

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

如果你仍然遇到问题,请查看安全页面。


gpg: 密钥服务器接收失败:没有可用的密钥服务器 - Chanrithisak Phok

7
这个对我有用。在我的情况下, 起作用了。
$brew install gnupg

2
安装了 gpg 之后,使用以下命令:
brew install gnupg2

这个解决方案帮助我获取了安装rvm所需的密钥:
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -

1

当我尝试在UNIX Apple M1上安装RVM时,我遇到了同样的问题。

我使用以下命令解决了我的问题:

gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

而不是使用gpg2

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

运行该命令后,我得到了以下输出:

gpg: key 195BD3E759199BDB: 1 duplicate signature removed
gpg: /Users/User/.gnupg/trustdb.gpg: trustdb created
gpg: key 105BD0E739499BDB: public key "Piotr Kuczynski <piotr.kuczynski@gmail.com>" imported
gpg: key 3804BB82D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: Total number processed: 2
gpg:               imported: 2

注意: 不要忘记重新启动命令控制台。


0
在我干净的macOS 10.15.7上,我需要首先执行brew link gnupg && brew unlink gnupg,然后使用Ashish的答案来使用gpg而不是gpg2。在un/link之前,我还需要chown一些目录。

-12

你也可以使用:

$ sudo gem install rvm

它应该给你以下输出:
Fetching: rvm-1.11.3.9.gem (100%)
Successfully installed rvm-1.11.3.9
Parsing documentation for rvm-1.11.3.9
Installing ri documentation for rvm-1.11.3.9
1 gem installed

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