RVM Ruby 1.9.1 安装找不到 zlib 但它的运行时和开发库在那里

Posted

技术标签:

【中文标题】RVM Ruby 1.9.1 安装找不到 zlib 但它的运行时和开发库在那里【英文标题】:RVM Ruby 1.9.1 install can't locate zlib but its runtime and dev library are there 【发布时间】:2011-01-27 07:52:53 【问题描述】:

尝试在全新安装 (fedora) 上启动 Ruby 1.9.1 并使用 RVM 运行。

rvm install 1.9.1之后,rubygems错误日志显示找不到zlib

没有要加载的文件 -- zlib (LoadError)

但是,zlib 运行时和开发库都已安装并且是最新的。

我现在对这个有点难过。

【问题讨论】:

【参考方案1】:

在编译/安装 Ruby 之前,您需要安装 zlib。如果您没有这样做,请确保从您的 ~/.rvm 文件夹中删除与 Ruby 1.9.1 相关的所有内容(以便从头开始构建)。

使用您最喜欢的包管理器安装zlib

sudo apt-get install zlib1g-dev

您可能还需要安装以下软件包,因为它们是 OpenSSL 等工具所必需的, Nokogiri、IRB 或 SQLite:

 libssl-dev libreadline6-dev libxml2-dev libsqlite3-dev

然后再次安装 Ruby 1.9.1(现在我建议使用更新的版本):

rvm install 1.9.1

注意“正在编译...”。这应该需要一段时间。如果没有,那么 Ruby 1.9.1 可能仍会被缓存 在您的~/.rvm 文件夹中。

【讨论】:

这对我来说很好用,我宁愿通过系统的包管理器安装东西,也不愿通过“rvm 包”的东西。 因为有更新版本的libreadline可用,最好安装libreadline-dev或者直接安装libreadline6-dev 这是最好的解决方案,因为每次遇到需要 libssl、libxml 等的 gem 时,它都无需重新编译 ruby​​。事实上,您可能需要添加 libxslt1-dev 和 @ 987654329@ 到列表(nokogiri 依赖) 感谢“常见”包的列表。【参考方案2】:

使用rvm安装zlib

https://rvm.io/packages/zlib/

rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1 -C --with-zlib-dir=$rvm_path/usr

编辑:rvm package 命令在 v1.6.25 中重命名为 rvm pkg

【讨论】:

不错。重新安装 Ruby 花了很长时间,但它工作得很好(使用 1.9.2)。 如果先安装了zlib1g-dev,则无需此步骤。请参阅下面 rubiii 的解决方案。 这在 RVM 版本 1.8.1 中没有为我运行。 package 参数必须是过时的。我用了“rvm pkg install zlib”,没问题。 斯拉沃:你说得对。好像rvm package 被重命名为rvm pkg。我将编辑此答案以包含更改。 下面的 apt 解决方案对我有用,而这没有。我有一个 Debian linux。【参考方案3】:

由于您使用的是 Fedora,请尝试运行:

yum install zlib-devel.i686

然后尝试使用 RVM 安装 ruby​​ 1.9.1

rvm install 1.9.1

【讨论】:

【参考方案4】:

我在尝试时遇到了这个问题:

gem 安装 gruff

真正对我有用的(Ubunut 10.10,ruby MRI 1.8.7)是:

阅读 rvm 说明并为我的 ruby​​ 版本安装依赖项

sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev autoconf

然后严格按照https://rvm.io/packages/zlib/ 中描述的步骤进行
    rvm 包安装 zlib rvm 删除 1.8.7 rvm 安装 1.8.7

所以基本上:只需按照 rvm 手册进行操作

【讨论】:

【参考方案5】:

另外,你确实知道 1.9.1 被严重损坏了,这就是为什么没有人认真使用它的原因,对吧?这对所提问题的重要性在于,许多人没有意识到这一点,而是试图将其与诸如 Ruby On Rails 之类的 API 一起使用。但是,正如 ruby​​onrails.org/download 所述,Ruby 1.9.1 不支持与 Rails 一起使用,因为它已损坏

【讨论】:

【参考方案6】:

在现代版本的 rvm 中,package 参数已被替换为 pkg 参数。

现在,为了安装 rvm 需要的 zlib 包:

rvm pkg 安装 zlib

【讨论】:

【参考方案7】:

在最新的 Ubuntu (11.10) 上,readline 也存在问题。

如果您需要完成或历史记录,则无法要求 Readline 安装 readline 然后重新安装 ruby​​。

所以我为 ubunutu 11.10 安装的整个 rvm 和最新的 ruby​​ 安装过程是:

# install rvm
sudo apt-get install curl
curl -L get.rvm.io | bash -s stable

# install dependencies
rvm pkg install zlib
rvm pkg install readline

# install additional dependencies -- follow instructions for your distribution/version
rvm requirements

# install ruby
rvm install [ruby-version]

我将其发布以供将来参考,以防其他人也遇到此问题。

【讨论】:

【参考方案8】:

对我来说,解决方案非常简单:我忘记关闭/重新打开 shell,因为 rvm setup 指示我这样做。 在我这样做之后,zlib 错误消失了,我能够: gem install bundler

【讨论】:

以上是关于RVM Ruby 1.9.1 安装找不到 zlib 但它的运行时和开发库在那里的主要内容,如果未能解决你的问题,请参考以下文章

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

Deepin下安装ruby开发环境

RMagick 的 RVM Ruby 1.8.6 问题

如何在没有 RVM 的 Ubuntu 上安装 Ruby 2

Xcode - 配置:错误:在 $PATH 中找不到可接受的 C 编译器

Ruby 安装 JSON 错误