zlib上的Ubuntu rails安装失败

Pau*_*aul 129 ruby rubygems ruby-on-rails zlib ubuntu-8.10

我刚刚转到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
Run Code Online (Sandbox Code Playgroud)

我(在教程中推荐)安装了zlib,zlib1g和zlib1g-dev.我甚至找到了一些关于这个特殊问题的教程(但是除了我的以外的所有口味),但它们没有帮助.

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

我尝试过各自单独重新安装红宝石和宝石,但无济于事.

Jos*_*phL 297

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

步骤是:

rvm pkg install zlib
Run Code Online (Sandbox Code Playgroud)

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

然后

rvm remove 1.9.1
rvm install 1.9.1
Run Code Online (Sandbox Code Playgroud)

  • 伟大的,相同的方法适用于我有1.9.2的小变化:vm包安装zlib; rvm删除1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path/usr (33认同)
  • 有同样的麻烦,终于发现这对我有用:`vm package install zib; rvm删除1.9.2; rvm install 1.9.2 --with-zlib-dir = $ rvm_path/usr` (11认同)

Adr*_*idt 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
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.这与上面发布的其他人类似,但并不完全如此,所以我想我也可以发布我所做的事情来实现它.

  • 这是我找到的最好的资源.我在没有rvm的情况下从源代码安装了ruby,并且遇到了zlib的问题.这篇文章帮助很多.谢谢! (2认同)

小智 22

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

首先,我确保存在zlib和zlib-devel(如上所述).

yum install zlib zlib-devel
Run Code Online (Sandbox Code Playgroud)

其次,我重新编译并安装了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
Run Code Online (Sandbox Code Playgroud)

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

这对我有用...希望你.

问候.


小智 13

尝试

aptitude install zlib1g-dev
Run Code Online (Sandbox Code Playgroud)

然后开始你的事业.


小智 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  
Run Code Online (Sandbox Code Playgroud)

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

gem list
Run Code Online (Sandbox Code Playgroud)

它不起作用......关于zLib找不到垃圾...

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

[my ruby source directory]/ext/Setup
Run Code Online (Sandbox Code Playgroud)

和UN-COMMENT中包含zLib的行...删除第一列中的"#"

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

./configure
make  
install  
sudo make install  
Run Code Online (Sandbox Code Playgroud)

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

Joet


小智 7

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

转到/你的ruby-dir/ext/zlib

ruby extconf.rb
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

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

问候

SAURABH


小智 6

rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1
Run Code Online (Sandbox Code Playgroud)

这样做了.经过无数次的疯狂追逐,我很高兴找到了这个页面.