在 zlib 上 Ubuntu Rails 安装失败

我刚刚转移到 Ubuntu 8.10作为我的开发工具箱; 这是我第一次认真尝试将 Linux 作为日常使用的操作系统,我很难让 Rails 运行起来。我已经遵循了一些教程,似乎都工作良好,但当我尝试使用 gem 安装或 gem 更新的任何东西,我得到一个错误,看起来像这样:

/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.8

我试过分别重新安装 Ruby 和 gem 但都没用。

66503 次浏览

问题在于 Ubuntu 上的 Ruby 不是基于 zlib 构建的; 你需要做一个源代码构建来安装 Ruby。你可以用 apt-get source -b ruby做到这一点

您可以尝试在 幻觉站点上下载 ruby Enterprise deb 包。并通过包装安装乘客。按照说明 给你。 或者您可以尝试使用找到的 bash 脚本 给你

在运行 Rails 时,我不推荐使用 Ruby1.8.8 dev。坚持使用1.8.6,最好是 Ruby 企业版。看看 铁路实验室上的这篇文章,其他人在使用什么。

如果你坚持走高科技路线,那就安装 Ruby1.9.1。

但在这两种情况下,建立自己或使用 Marans 的建议。

你试过 apt-get install libzlib-ruby 吗?

也可以安装 rubyforge 的 rubygems,我不喜欢 Ubuntu 里的 rubygems 包。

是的,但那也没起作用。从另一个来源得到这个,这终于为我做到了,其他的东西失败了。

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 gem

还是谢谢你们。

我在 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,在重新编译和安装 zlib 之后,我既不重新编译也不安装 gem (实际上我不知道如何卸载它,因为我没有找到这样做的脚本)

那对我有用... 希望你能。

问候。

打开 Ruby 源代码包,解压缩。

Goto/your-ruby-dir/ext/zlib

ruby extconf.rb
make
sudo make install

如果包丢失了,它会告诉你,主要是 libzlib 相关的包

问候

Saurabh

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

步骤如下:

rvm pkg install zlib

(或 Rvm package install zlib 如果您得到“ ERROR: 未识别的命令行参数: ‘ pkg’”-较早版本的 rvm 使用动词‘ package’代替)

那么

rvm remove 1.9.1
rvm install 1.9.1

试试看

aptitude install zlib1g-dev

那就去忙你的吧。

我使用的是 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

解决了问题。这与上面其他人发布的内容类似,但并不完全相同,所以我想我也可以发布我所做的内容。

关于 Debian (Squeeze) :

Libruby 包含了 zlib for ruby 以及其他所有让 ruby 在 Debian 上正常工作所需的东西,所以..。

apt-get install libruby

然后..。

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

这对我有用,但是你的情况可能有所不同。我做了一个轻微的散弹枪接近 zlib 之前,发现所有需要的东西都被 libruby 覆盖。

rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

成功了,经过无数次的徒劳,我很高兴我找到了这一页。

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

那么..。

我正在安装一个新的盒子 Ubuntu 8.04 LTS 64位..。

所以,我..。

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 找不到垃圾..。

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

[my ruby source directory]/ext/Setup

通过删除第一列中的“ #”来解除带有 zLib 的行的注释

然后我再次运行命令... 包含在这里作为参考..。

./configure
make
install
sudo make install

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

Joet