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 版本安装依赖项然后严格按照https://rvm.io/packages/zlib/ 中描述的步骤进行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
rvm 包安装 zlib rvm 删除 1.8.7 rvm 安装 1.8.7
所以基本上:只需按照 rvm 手册进行操作
【讨论】:
【参考方案5】:另外,你确实知道 1.9.1 被严重损坏了,这就是为什么没有人认真使用它的原因,对吧?这对所提问题的重要性在于,许多人没有意识到这一点,而是试图将其与诸如 Ruby On Rails 之类的 API 一起使用。但是,正如 rubyonrails.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