我使用 rvm 安装了 zlib 包和 ruby 1.9.3,但每当我尝试安装 gems 时,它都会显示 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,但这不起作用。
我最终从 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
其他两个回答几乎都是正确的......
rvm site for zlib 提供快速修复!
页面顶部是“快速修复”,按照说明进行操作,它将:
修复您的安装,
为您提供说明如何从您的系统安装 zlib
并展示如何重新安装 ruby
使用 autolibs 安装依赖项:
rvm autolibs enable
rvm reinstall 1.9.3
RVM 将自动安装缺少的依赖项并将它们用于编译 ruby。
有关 autolibs 的更多详细信息 => http://rvm.io/rvm/autolibs
rvm github repo, issue #3389 中描述了对我有用的解决方案。
跑
rvm install 2.3.0 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8
对于 ruby 2.3.0 版本。
Ruby 有一堆包依赖项,比如 zlib-devel 上的依赖包。它们很讨厌,因为没有任何迹象表明您需要该库,直到在尝试执行某些例行程序时收到一些晦涩的错误消息。
解决方案是使用 rvm。即使您只需要一个版本的 ruby,也可以使用它。为什么?因为那样你就可以做到
rvm requirements
这将探测您的特定操作系统并生成一组命令,您可以将其复制回命令行以安装那些缺少的软件包。
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