即使在使用rvm pkg install zlib之后,也无法加载这样的文件 – zlib

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

我用来安装的命令是

 $ rvm install 1.9.3 
 $ rvm pkg install 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 = /家庭/用户名/ .rvm的/ usr

 $ rvm使用1.9.3

 $ gem install heroku
错误:加载命令:安装(LoadError)
    不能加载这样的文件 -  zlib
错误:执行gem时(NameError)
    未初始化的常量Gem :: Commands :: InstallCommand

所有关于这个主题的帮助告诉我只要做rvm pkg install zlib ,然后用--with-zlib-dir=/home/username/.rvm/usr重新安装ruby,但是这样做不起作用。

我结束了从apt-get安装zlib,然后重新安装ruby到使用zlib的rvm目录。

这是如何做的:

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

[编辑]作为@chrisfinne的评论者提到,在基于CentOS / RedHat的系统上:

 $ sudo yum install zlib-devel $ rvm reinstall 1.9.3 

其他答案几乎是正确的…

zlib的rvm站点提供了一个快速修复!

在页面顶部是一个“快速修复”按照它的指示,它将:

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

使用autolibs来安装依赖关系:

 rvm autolibs enable rvm reinstall 1.9.3 

RVM会自动安装缺失的依赖关系,并用它来编译ruby。

关于autolibs的更多细节=> http://rvm.io/rvm/autolibs

Ruby有一堆像zlib-devel这样的包依赖关系。 他们是讨厌的,因为没有什么可以表明你需要的图书馆,直到得到一些晦涩的错误信息,而试图做一些例行公事。

解决scheme是使用rvm 。 即使你只需要一个版本的ruby,也可以使用它。 为什么? 因为那你可以做

 rvm requirements 

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

这个解决scheme适用于我,在rvm github回购中被描述, 问题#3389 。

 rvm install 2.3.0 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8 

为ruby2.3.0版本。

 rvm pkg install openssl && rvm pkg install zlib && rvm pkg install 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 /本地/地窖/ readline的/ 6.2.1