Ubuntu Rails在zlib上安装失败


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

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


23
“在zlib上安装Ubuntu noob rails失败”。那就像有史以来最美丽的诗。
Nosredna

3
apt-get install zlib1g zlib1g-dev在Ubuntu 10.04上为我工作
bioneuralnet


Answers:


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

33
很好,同样的方法对我有用,但对1.9.2进行了一些改动:vm package install zlib; rvm删除1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path / usr
tardate 2010年

1
太好了,我想知道为什么即使通过apt安装了zlib,rvm也不能在debian上运行
Martin DeMello 2010年

11
遇到了同样的麻烦,终于发现这对我vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
有用

非常感谢!我有同样的问题。我只需要在Ubuntu中用“ ree”替换“ 1.9.1”。+1!
kikito 2011年

1
感谢您加入pkg第二个选项!
贾斯汀

52

我正在使用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

解决了这个问题。这与上面其他人发布的内容相似,但不完全相同,因此我认为我也可以确切地发布我为实现此目的所做的事情。


2
这是我发现的最佳资源。我从没有rvm的源代码安装了ruby,并且zlib出现问题。这篇文章有很多帮助。谢谢!
cristian

1
谢谢!解决了1.9.2-p136 / Ubuntu 10.04.1上的问题。
mgutz 2011年

谢谢。也修复了1.9.2-p180 / Red Hat 4.1.2-46上的问题。
2011年

这适用于Ubnutu 11.04 / Ruby 1.9.2-p180。我尝试了一下,apt-get install zlib1g zlib1g-dev但是没有用(zlib1g-dev在编译Ruby之前可能没有安装)。
Max Masnick

即使从源代码安装ruby,似乎也需要这样做。不知道为什么默认情况下未安装它
nimrodm 2012

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(实际上,我不知道如何卸载它,因为我没有找到执行此操作的脚本)

这对我有用...希望您这样做。

问候。


13

尝试

aptitude install zlib1g-dev

然后开始您的业务。


在编译红宝石源随附的zlib之前,我实际上必须执行此操作
Jeremy White

8

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

所以,..

我正在安装新的盒子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的某些内容找不到废话...

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

[my ruby source directory]/ext/Setup

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

然后我再次运行命令...这里包括参考...

./configure
make  
install  
sudo make install  

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

乔特


对我没有帮助。我也阅读了自述文件,并按照说明进行操作,但是即使在我仍然无法使红宝石宝石正常工作之后,它仍然说没有zlib ...
Jenny

实际上,答案是相关的,因为这是使用rvm时的常见问题。您的答案更适合不使用rvm的人。
foamdino

7

只需转到Ruby Source Package,将其解压缩即可。

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

ruby extconf.rb
make
sudo make install

如果缺少软件包,它将告诉您,主要是与libzlib相关的软件包

问候

索拉卜



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

从源代码重新安装红宝石宝石

谢谢,伙计们。


1
我在运行extconf.rb时遇到问题。(可能)通过安装zlib-devel解决了它。
gregers,2009年

同样在这里。尝试了所有其他方法,最后blue.sky.or.jp救了我。谢谢。
Abhishek 2010年

2

问题在于,Ubuntu上的Ruby不是针对zlib构建的。您需要做一个源代码构建来安装Ruby。你可以用apt-get source -b ruby


好的,再次,Linux新手。不知道你刚才说什么 大声笑。我的意思是,我理解命令;但是那之后我该怎么办?
Paul

好吧,现在,即使如此,也没有用。我收到“构建命令'cd ruby​​-defaults-4.2 && dpkg-buildpackage -b -uc'失败”错误
Paul

2

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

还可以从rubyforge安装rubygems。我不喜欢Ubuntu中的rubygems软件包。


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采取了一种shot弹枪的方法。


1

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


0

运行Rails时,我不建议使用Ruby 1.8.8dev。坚持使用1.8.6,最好是Ruby Enterprise Edition。在其他人正在使用的RailsLab上查看此帖子。

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

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


这是一个不好的建议,不要在导轨上使用1.9.1。不过,1.9.2 +可以正常工作。
xaxxon

那条评论是在2年前提出的,现在当然要走1.9.3了。
伤害

当然,我很好。但是,重要的是要有人知道这是错误的。
xaxxon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.