由于 gpg 错误,无法在 Ubuntu 16.04 上安装 Ruby rvm

Can't install Ruby rvm on Ubuntu 16.04 due to gpg bug

我正在尝试在 Ubuntu 16.04 上安装 Ruby。但是,当我输入以下命令到终端时:

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

我得到以下信息:

Downloading https://github.com/rvm/rvm/archive/1.29.1.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.1/1.29.1.tar.gz.asc
gpg: Signature made 19 فبر, 2017 EET 10:02:47 م using RSA key ID ********
gpg: Can't check signature: No public key
Warning, RVM 1.26.0 introduces signed releases and automated check of signatures when GPG software found. Assuming you trust Michal Papis import the mpapis public key (downloading the signatures).

GPG signature verification failed for '/home/tamer/.rvm/archives/rvm-1.29.1.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.1/1.29.1.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys ****************************************

or if it fails:

command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

the key can be compared with:

https://rvm.io/mpapis.asc
https://keybase.io/mpapis

NOTE: GPG version 2.1.17 have a bug which cause failures during fetching keys from remote server. Please downgrade or upgrade to newer version (if available) or use the second method described above.

当我尝试任何 rvm 命令时,我得到 'command not found'。

我尝试通过浏览器请求 https://rvm.io/mpapis.asc。然后 运行 以下内容:

$ gpg --import mpapis.asc

但我得到了以下信息:

gpg: fatal: can't open `/home/tamer/.gnupg/trustdb.gpg': Permission denied
secmem usage: 1408/1408 bytes in 2/2 blocks of pool 1408/65536

我不习惯做一些我不明白的事情,所以我停止了他们,没有尝试 sudo。

那么如何安装 Ruby?

更新

我还尝试使用以下方法安装 gpg2:

$ sudo apt-get install gnupg2 -y

然后我尝试了

$ gpg2 --keyserver hkp://keys.gnupg.net --recv-keys <key>

还有

$ curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

但是,当我尝试使用第一个命令安装 rvm 时,结果仍然相同。

n.b。我注意到我有 gpg v1.4.20 和 gpg2 v2.1.11

尝试了很多方法。我确实成功安装了 rails 如下:

$ \curl -sSL https://get.rvm.io | bash
$ source /home/<user>/.rvm/scripts/rvm
$ rvm -v
$ rvm install ruby
$ ruby -v
$ sudo apt-get install rubygems
$ gem update
$ sudo apt-get install ruby-dev zlib1g-dev liblzma-dev build-essential patch
$ rvm gemset list
$ gem install rails
$ rails -v

其中 "user" 是我的用户名

我遇到了同样的问题,但在 Debian 上我采用了另一种方法。在错误消息中,它表示:"Try to install GPG v2 and then fetch the public key:" 后跟 gpg2 命令。我先安装了 gpg2,运行 它告诉我的命令对我有用。

sudo apt-get install gnupg2
sudo apt-get install dirmngr
gpg2 --recv-keys <key>
# <Run curl command to install rvm>

我只是发布了一个更新解决方案,因为我在 Ubuntu 18.04 中尝试为 RVM 获取密钥时遇到了同样的问题。

以下方法由RVM提供。

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

如果它不成功,而您尝试直接安装 rvm,该过程将失败并提供三个接收密钥的建议。其中之一具有使用 gpg2 接收密钥的步骤。

在那之前在你的系统中安装 gpg2。

sudo apt install gnupg2

命令是

gpg2 --recv-keys 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

但是这个命令也行不通。 所以这里有一个替代方案。只需将旧命令中的 gpg 替换为对我有用的 gpg2。

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

除了前面的答案之外,如果您在防火墙后面,则以下命令可能对您不起作用。

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

在这种情况下,您可以使用以下命令获取密钥 -

sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-keys <<key>> <<key>>

我在接收服务器密钥时遇到问题,并将密钥服务器切换到 https://rvm.io/rvm/security

中提到的替代列表
  1. hkp://ipv4.pool.sks-keyservers.net
  2. hkp://pgp.mit.edu
  3. hkp://keyserver.pgp.com

这似乎是一个端口问题,试试这个:

gpg --keyserver hkp://keys.gnupg.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

适合我。

sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-keys  409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB