无法在Ubuntu 16.04上安装Ruby rvm,原因是gpg bug。

22

我正在尝试在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命令时,都会出现“未找到命令”的提示。
我尝试通过浏览器请求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时仍然出现相同的结果。

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

7个回答

44

尝试了许多方法后,我成功地安装了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”是我的用户名


1
我很高兴能够帮到你 :) - TamerB
1
对于MAC系统,只需将apt-get替换为brew。 - fcfeitosa
对于 Arch Linux,只需将 apt-get 替换为 pacman -S。 - Zuriel Rodriguez
非常感谢。它在我的Ubuntu 21.10上运行。在第一个命令后,我可以在终端中看到.rvm的路径。我们只需将该路径替换为第二个命令中的<user>位置即可。 - Raksha Saini
在Mac上: 第二行:source ~/.rvm/scripts/rvm - Ian

30

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

以下方法由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

5
针对使用 Mac 的用户,如果您发现自己在此页面,请使用 brew install gpg gpg2 - Kaka Ruto
1
这是对我有效的解决方案,因为发布版本由Piotr Kuczynski签名而不是Michal Papis。请参阅RVM存储库中的此票证(https://github.com/rvm/rvm/issues/4520)。 - GDP2
2
密钥服务器建议的并没有对我起作用,但是以下命令可以使用:gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB - Klas Mellbourn
Ubuntu密钥服务器对我有效。gpg2 -vvv --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB - Mathieu J.

4
除了之前的回答,如果你在防火墙后面,下面的命令可能无法工作。
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

在这种情况下,您可以使用以下命令获取密钥 -
sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-keys <> <>

3

我曾经在Debian系统中遇到了同样的问题,但是我采取了另一种方式。在错误信息中,它说:“尝试安装GPG v2并获取公钥:”,后面跟着一个gpg2命令。我首先安装了gpg2,然后运行了它告诉我的命令,这对我起作用了。

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

我也尝试过这种方法。但是,由于某些原因,在Ubuntu 16.04 LTS上它对我不起作用。很高兴知道它在Debian上可以工作 :) - TamerB

1

我在接收服务器密钥时遇到问题,并将密钥服务器切换到https://rvm.io/rvm/security提到的替代列表。

  1. hkp://ipv4.pool.sks-keyservers.net
  2. hkp://pgp.mit.edu
  3. hkp://keyserver.pgp.com

0

适合我工作。

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

0

这似乎是一个端口问题,请尝试以下方法:

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

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