128

我刚刚转移到 Ubuntu 8.10 作为我的开发工具箱;这是我第一次认真尝试将 Linux 作为日常使用的操作系统,我很难让 Rails 运行起来。我遵循了许多似乎都可以正常工作的教程,但是当我尝试在任何东西上使用 gem install 或 gem update 时,我得到一个看起来像这样的错误:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:5
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144:in `find_command'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:131:in `process_args'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
from /usr/local/bin/gem:21

我已经(按照教程中的建议)安装了 zlib、zlib1g 和 zlib1g-dev。我什至找到了一些关于这个特定问题的教程(但是,所有这些都是针对我以外的口味),但它们没有帮助。

我在 Ubuntu 8.10,ruby 版本 1.8.8dev gem 版本 1.3.2

我试过分别重新安装红宝石和宝石,但无济于事。

4

13 回答 13

297

如果您在尝试在 Ubuntu 10.04 上使用 Ruby 版本管理器 (RVM) 安装 Ruby 时遇到这个问题,那么在 rvm 网站http://rvm.beginrescueend.com/packages/zlib/上有安装 zlib 的说明

步骤是:

rvm pkg install zlib

(或者 rvm package install zlib如果你得到“错误:无法识别的命令行参数:'pkg'” - 旧版本的 rvm 使用动词 'package' 代替)

然后

rvm remove 1.9.1
rvm install 1.9.1
于 2010-05-26T09:40:23.277 回答
53

我正在使用 Ubuntu 10.04 (Lucid),我想安装 ruby​​ 1.9.2,因为 Rails 不推荐使用 1.9.1。所以我下载了 1.9.2 的源代码并解压/解压。我的源发行版是 ruby​​-1.9.2-p0。解压后,我构建 zlib 如下:

cd ruby-1.9.2-p0/ext/zlib
ruby extconf.rb
make
sudo make install
sudo gem install rails

解决了这个问题。这类似于其他人在上面发布的内容,但不完全一样,所以我想我也可以准确地发布我为实现它所做的事情。

于 2010-09-09T12:31:13.593 回答
22

我在 CentOS 中遇到了同样的问题,并通过执行以下命令来修复它:

首先,我确保 zlib 和 zlib-devel 存在(就像上面的许多建议一样)。

yum install zlib zlib-devel

其次,我重新编译安装了ruby自带的zlib的源码。

cd /home/myname/installers/ruby-1.8.7-p174/ext/zlib/
ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
make
make install

该命令似乎解决了问题,然后我执行gem update --system并且 zlib 的错误消失了。然后我用 gem install rails 安装 rails。请注意我之前安装了gem,并且在重新编译并安装zlib之后,我都没有重新编译安装gem(实际上我不知道如何卸载它,因为我没有找到执行此操作的脚本)

这对我有用……希望你能。

问候。

于 2009-11-02T13:57:27.637 回答
13

尝试

aptitude install zlib1g-dev

然后去做你的事。

于 2010-08-17T03:23:31.500 回答
8

我真的不喜欢这些答案中的任何一个......没有一个真正关注用户的实际需求和问题......只是人们告诉他们做了什么......没有上下文,它甚至对我不起作用......

所以, ..

我正在安装一个新盒子 Ubuntu 8.04 LTS 64-bit ...

所以我 ...

cd ~  
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p180.tar.gz  
tar -xvvf ruby-1.9.2-p180.tar.gz  
cd ruby-*  
./configure  
make  
install  
sudo make install  

然后我有这个问题......

gem list

它不起作用......关于zLib的一些东西没有找到废话......

所以,我实际上阅读了自述文件,发现我需要编辑一个文件......

[my ruby source directory]/ext/Setup

并取消注释其中包含 zLib 的行...通过删除第一列中的“#”

然后我再次运行命令...包含在此处以供参考...

./configure
make  
install  
sudo make install  

一切都很好......这是合乎逻辑的......并且没有“rvm”和其他......“只需安装更多东西以使其工作”类型的解决方案。

乔特

于 2011-04-25T01:12:09.220 回答
7

只需转到 Ruby Source Package ,解压缩它。

转到 /your-ruby-dir/ext/zlib

ruby extconf.rb
make
sudo make install

如果缺少包它会告诉你,主要是 libzlib 相关的包

问候

索拉布

于 2010-02-25T09:24:19.670 回答
6
rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

做到了。经过无数次的大雁追逐,我很高兴找到了这个页面。

于 2011-04-19T14:44:25.290 回答
4

是的,那也没有做这项工作。从另一个来源得到这个,这终于在其他东西失败的地方为我做到了。

wget http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.6.0.tar.gz
tar xvzf ruby-zlib-0.6.0.tar.gz
cd ruby-zlib-0.6.0
ruby extconf.rb && make
sudo make install

从源代码重新安装 ruby​​ gems

无论如何,谢谢,伙计们。

于 2009-04-21T17:15:01.233 回答
2

问题是 Ubuntu 上的 Ruby 不是针对 zlib 构建的。您需要进行源代码构建来安装 Ruby。你可以这样做apt-get source -b ruby

于 2009-04-20T18:26:33.520 回答
2

您是否尝试过 apt-get install libzlib-ruby?

还要从 ruby​​forge 安装 ruby​​gems。我不喜欢 Ubuntu 中的 ruby​​gems 包。

于 2009-04-21T17:03:34.833 回答
2

在 Debian(挤压)上:

libruby 包含用于 ruby​​ 的 zlib 以及使 ruby​​ 在 Debian 上正常工作所需的所有其他东西。所以...

apt-get install libruby

然后...

cd /usr/local/src/ruby
make clean
make
make install
cd ../rubygems
ruby setup.rb
gem install rails

这使它对我有用,但是您的里程可能会有所不同。在发现所需的一切都被 libruby 覆盖之前,我对 zlib 做了一个轻微的霰弹枪方法。

于 2011-02-18T16:52:35.563 回答
1

您可以尝试在phusion网站上下载 ruby​​ enterprise deb 包。并通过包安装乘客。按照此处的说明进行操作。或者您可以尝试使用此处找到的 bash 脚本。

于 2009-04-21T08:50:55.503 回答
0

在运行 Rails 时,我不建议使用 Ruby 1.8.8dev。坚持使用 1.8.6,最好是 Ruby 企业版。请参阅RailsLab上的这篇文章,其他人正在使用什么。

如果您坚持使用高科技,请安装 Ruby 1.9.1。

但在这两种情况下,您都可以自己构建它或使用 Marans 的建议。

于 2009-04-21T08:59:58.040 回答