cannot load such file — zlib even after using rvm pkg install zlib

时光毁灭记忆、已成空白 提交于 2019-11-26 09:20:30

问题


I installed zlib package and ruby 1.9.3 using rvm, but whenever I try to install gems it says cannot load such file -- zlib

The commands I used to install are

$ 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

All the help on this subject tells me to just do rvm pkg install zlib, and then reinstall the ruby with --with-zlib-dir=/home/username/.rvm/usr, but this didn\'t work.


回答1:


I ended up installing zlib from apt-get and then reinstalling ruby to not use the rvm directory for zlib.

Here's how do:

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

[Edit] As commenter @chrisfinne mentions, on CentOS/RedHat based systems:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3



回答2:


The both other responses were almost right...

The rvm site for zlib provides a quick fix!

On the top off the page is a "Quick fix" follow it's instructions, it will:

  • fix your installation,
  • provide you instructions what to do to install zlib from your system
  • and show how to reinstall ruby



回答3:


Ruby has a bunch of package dependencies like the one on zlib-devel. They're nasty because there's nothing to indicate you need the library until get some obscure error message while trying to do something routine.

The solution is to use rvm. Use it even if you only need one version of ruby. Why? Because then you can do

rvm requirements

This will probe your particular OS and produce a set of commands you can copy back to the command line to install those missing packages.




回答4:


Use autolibs to install dependencies:

rvm autolibs enable
rvm reinstall 1.9.3

RVM will automatically install missing dependencies and use them for compiling ruby.

More details on autolibs => http://rvm.io/rvm/autolibs




回答5:


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



回答6:


The solution that worked for me is described in rvm github repo, issue #3389.

Run

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

for ruby 2.3.0 version.



来源:https://stackoverflow.com/questions/9727908/cannot-load-such-file-zlib-even-after-using-rvm-pkg-install-zlib

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!