Hi!请登陆

no such file to load — zlib

2020-10-27 68 10/27

安装了rubygems后,gem list出现如下错误.

$ gem list
/usr/local/ruby/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/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/query_command.rb:3
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/list_command.rb:2
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144:in `find_command'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:131:in `process_args'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
from /usr/local/ruby/bin/gem:21

原因是缺少zlib、zlib-devel,一下是解决办法:

1、查看zlib、zlib-devel是否存在

[root@localhost zlib]# rpm -qa|grep zlib
zlib-1.2.3-3
zlib-1.2.3-3

2、发现缺少zlib-devel,安装zlib-devel

yum install zlib-devel

3、进入ruby安装路径,重新编译安装zlib

$ cd /usr/local/src/ruby-1.8.7-p72/ext/zlib
$ ruby ./extconf.rb
checking for deflateReset() in -lz... yes
checking for zlib.h... yes
checking for kind of operating system... Unix
creating Makefile
$ make
gcc -I. -I. -I/usr/local/ruby/lib/ruby/1.8/x86_64-linux -I. -DHAVE_ZLIB_H  -DOS_CODE=OS_UNIX    -fPIC -g -O2   -c zlib.c
gcc -shared -o zlib.so zlib.o -L. -L/usr/local/ruby/lib -Wl,-R/usr/local/ruby/lib -L.  -rdynamic -Wl,-export-dynamic    -lz  -ldl -lcrypt -lm   -lc
[root@localhost zlib]# make install
/usr/bin/install -c -m 0755 zlib.so /usr/local/ruby/lib/ruby/site_ruby/1.8/x86_64-linux

4、查看一下,已经正常了

$ gem list
*** LOCAL GEMS ***

centos 安装程序是使用yum,opensuse是zypper,ubuntu是apt-get 请根据自己系统情况选择.

Tag:

相关推荐