即使在使用rvm pkg install zlib之后也无法加载此类文件 - zlib

时间:2012-03-15 20:46:39

标签: ruby linux gem rvm

我使用rvm安装了zlib包和ruby 1.9.3,但每当我尝试安装时 宝石说 cannot load such file -- zlib

我以前安装的命令是

$ rvm install 1.9.3
$ rvm pkg install zlib

$ rvm reinstall 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/username/.rvm/usr

$ rvm use 1.9.3

$ gem install heroku
ERROR: Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

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

6 个答案:

答案 0 :(得分:202)

我最终从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

答案 1 :(得分:9)

其他两个回答几乎都是正确的......

rvm site for zlib提供快速解决方法!

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

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

答案 2 :(得分:1)

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/local/Cellar/readline/6.2.1

答案 3 :(得分:1)

Ruby有一堆包依赖,比如zlib-devel上的依赖。它们很讨厌,因为在尝试做一些常规的事情时,没有任何迹象表明你需要这个库,直到得到一些模糊的错误信息。

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

rvm requirements

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

答案 4 :(得分:1)

使用autolibs安装依赖项:

rvm autolibs enable
rvm reinstall 1.9.3

RVM将自动安装缺少的依赖项并使用它们来编译ruby。

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

答案 5 :(得分:1)

rvm github repo,issue #3389中描述了适用于我的解决方案。

运行

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

用于ruby 2.3.0 版本。