无法加载此类文件—即使在使用rvm pkg安装zlib之后,zlib


112

我使用rvm安装了zlib软件包和ruby 1.9.3,但是每当我尝试安装gem时,它都会说 cannot load such file -- zlib

我用来安装的命令是

$ rvm install 1.9.3
$ rvm pkg安装zlib

$ rvm重新安装1.9.3 --with-readline-dir = / home / username / .rvm / usr \
    --with-iconv-dir = / home / username / .rvm / usr \
    --with-zlib-dir = / home / username / .rvm / usr \
    --with-openssl-dir = / home /用户名/.rvm/usr

$ rvm使用1.9.3

$宝石安装heroku
错误:正在加载命令:安装(LoadError)
    无法加载此类文件-zlib
错误:执行gem时...(NameError)
    未初始化的常量Gem :: Commands :: InstallCommand

关于该主题的所有帮助都告诉我要做rvm pkg install zlib,然后使用重新安装ruby --with-zlib-dir=/home/username/.rvm/usr,但这没有用。

Answers:


201

我最终从apt-get安装了zlib,然后重新安装了ruby,以将rvm目录用于zlib。

方法如下:

$ sudo apt-get install zlib1g-dev
$ rvm reinstall 1.9.3

[编辑]如评论员@chrisfinne所述,在基于CentOS / RedHat的系统上:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

21
或sudo yum install zlib-devel
chris finne 2012年

4
好吧,无论使用什么操作系统,@ chrisfinne的建议仍然有用(至少对我而言)!

为我完美地工作。虽然我也因为缺少libssl-dev而不得不重新编译一次(我需要它,因为rvm想通过HTTPS获取红宝石源):-)
tr9sh 2014年

9

其他两个答案都差不多...

zlibrvm站点提供了快速修复!

在页面顶部是一个“快速修复”,请按照说明进行操作,它将:

  • 修复您的安装,
  • 向您提供说明如何从系统安装zlib
  • 并展示如何重新安装ruby

1

Ruby有很多软件包依赖项,例如zlib-devel上的依赖项。它们很讨厌,因为在尝试执行常规操作之前,没有任何迹象表明您需要该库,直到收到一些晦涩的错误消息为止。

解决方法是使用rvm。即使只需要一种红宝石,也要使用它。为什么?因为那样你就可以

rvm requirements

这将探查您的特定操作系统,并产生一组命令,您可以将这些命令复制回命令行以安装那些缺少的软件包。


1

使用自动库安装依赖项:

rvm autolibs enable
rvm reinstall 1.9.3

RVM将自动安装缺少的依赖项,并将其用于编译ruby。

有关autolibs的更多详细信息=> http://rvm.io/rvm/autolibs


1
rvm pkg安装openssl && rvm pkg安装zlib && rvm pkg安装libyaml &&
  rvm pkg install iconv
rvm install 1.9.3-p0 --with-opt-dir = $ HOME / .rvm / usr \
  --with-libxml2-dir = / usr / local / Cellar / libxml2 / 2.7.8 \
  --with-readline-dir = / usr / local / Cellar / readline / 6.2.1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.