gem安裝redis庫時報錯

報錯一:

[root@Redis-1 software]# /usr/local/ruby/bin/gem install redis-3.2.2.gem 
ERROR: Loading command: install (LoadError)
 cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

【解決】linux

  1. yum -y install zlib-develredis

  2. 進入ruby源碼文件夾,安裝ruby自身提供的zlib包:ruby

    cd ruby-2.4.4/ext/zlib/
     /usr/local/ruby/bin/ruby extconf.rb 
     make
     make install

2.1 報錯:ui

make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.

打開:ext/zlib/Makefile文件,找到#zlib.o: $(top_srcdir)/include/ruby.h換成zlib.o: ../../include/ruby.hcode

#zlib.o: $(top_srcdir)/include/ruby.h
zlib.o: ../../include/ruby.h

報錯二:

[root@Redis-1 software]# /usr/local/ruby/bin/gem install redis-4.1.0.gem 
ERROR: While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

【解決】ssl

  1. 安裝openssl:yum(本環境使用)或者源碼get

  2. 進入ruby源碼文件夾,安裝ruby自身提供的openssl包:源碼

    cd ruby-2.4.4/ext/openssl
    # 找到各個組件的路徑
    /usr/local/ruby/bin/ruby extconf.rb --with-openssl-include=/usr/include/openssl/ --with-openssl-lib=/usr/lib64/openssl/
    make 
    make install

2.1. make報錯:openssl

make: *** No rule to make target `/thread_native.h', needed by `ossl.o'. Stop.

打開Makefile文件:增長top_srcdir = /opt/software/ruby-2.4.4路徑it

topdir = /usr/local/ruby/include/ruby-2.4.0
top_srcdir = /opt/software/ruby-2.4.4
hdrdir = $(topdir)
arch_hdrdir = /usr/local/ruby/include/ruby-2.4.0/x86_64-linux
相關文章
相關標籤/搜索