我使用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,但是这个
没用。
答案 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提供快速解决方法!
在页面顶部是一个“快速修复”按照它的说明,它将:
答案 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 版本。