即使在使用 rvmpkg install zlib 之后也不能加载这样的文件—— zlib

我使用 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重新安装红宝石,但是这个 没用。

77203 次浏览

我最终从 apt-get 安装 zlib,然后使用 zlib 的 rvm 目录将 ruby 重新安装到 没有

下面是怎么做:

$ 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

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

Zlib 的 rvm 站点提供了一个快速修复!

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

  • 修好你的安装,
  • 提供从系统安装 zlib 的指导
  • and show how to reinstall ruby
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

Ruby 有很多类似于 zlib-devel 的包依赖项。它们之所以令人讨厌,是因为在尝试执行某些例程时得到一些模糊的错误消息之前,没有任何迹象表明您需要这个库。

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

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

使用 autolibs 安装依赖项:

rvm autolibs enable
rvm reinstall 1.9.3

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

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

我使用的解决方案在 rvm github repo,第3389期中进行了描述。

Run

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

对于 Ruby 2.3.0版本。