首页 文章

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

提问于
浏览
110

我使用rvm安装了zlib包和ruby 1.9.3,但每当我尝试安装gem时它会说 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 回答

  • 1

    我最终从apt-get安装zlib,然后重新安装ruby以不使用rlm目录来安装zlib .

    这是怎么做的:

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

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

    $ sudo yum install zlib-devel
    $ rvm reinstall 1.9.3
    
  • 1

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

    rvm site for zlib提供快速修复!

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

    • 修复你的安装,

    • 为您提供了从系统安装zlib的说明

    • 并显示如何重新安装ruby

  • 1

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

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

    rvm requirements
    

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

  • 9

    使用autolibs安装依赖项:

    rvm autolibs enable
    rvm reinstall 1.9.3
    

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

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

  • 199
    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
    
  • 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 版本 .

相关问题