Ruby Gem版本与ruby版本不兼容

时间:2015-11-19 21:32:28

标签: ruby ubuntu

我最近安装了一个运行ubuntu 12.04 LTS的系统,作为运行相同软件的类似机器集群的一部分。

我已经发现了sys-proctable,并且在默认安装时无法加载错误:

/var/lib/gems/1.8/gems/sys-proctable-0.9.9-universal-linux/lib/linux/sys/proctable.rb:2:
undefined method `require_relative' for main:Object (NoMethodError)

Require_relative是一个ruby 1.9功能,ubuntu 12.04安装1.87。

我尝试卸载sys-proctable gem并安装-0.9.4版本,这是我在其他系统上的版本,但是我得到了

rful011@secmonprd07:~$ sudo gem -v 0.9.4 install sys-proctable
[sudo] password for rful011:
1.8.15

,别无其他。

我在更改ruby版本或操作系统版本时没有太大的灵活性,因为这台机器是更大设置的一部分。

为什么尝试安装特定版本的任何想法都打印出一个似乎是一个版本号然后退出?

对极简主义工作的任何建议。

1 个答案:

答案 0 :(得分:2)

安装特定版本gem的命令是

$ gem install the_gem -v 1.2.3

即。在您的情况下,使用sudo,您应该使用:

$ sudo gem install sys-proctable -v 0.9.4

您使用的命令是:

gem -v 0.9.4 install sys-proctable

即。 -v 0.9.4子命令之前有install 。在这种情况下,gem可执行文件将-v解释为版本切换(这也可以使用--version指定),这会导致它打印出Rubygems的版本。忽略-v后的任何内容。

因此有{em>两种类型的-v(或--version)标志。第一个是在gem之后直接写的(它是命令的第一个参数)并导致它打印其版本并退出,忽略命令行上的任何其他内容。当使用install子命令时,第二个位于gem名称后面,并指定要安装的gem的版本。你错了。

有关详细信息,请参阅gem helpgem help install