1. 程式人生 > >gem install redis報錯解決辦法

gem install redis報錯解決辦法

redis-cluster安裝需要通過gem install redis來安裝相關依賴。否則報錯。

通過gem install redis會報如下錯誤1:

  1. ERROR:  Loading command: install (LoadError)  
  2.     cannot load such file -- zlib  
  3. ERROR:  While executing gem ... (NoMethodError)  
  4. undefined method `invoke_with_build_args' for nil:NilClass  
這是缺少zlib依賴,需要安裝zlib庫

還有一個錯誤2就是

  1. ERROR:  While executing gem ... (Gem::Exception)  
  2. Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources  
提示缺少openssl庫,這兩個庫可以通過yum安裝,但是安裝了需要整合到ruby中。

先解決錯誤一,解決辦法分為兩步:

一、安裝zlib庫,如果已經安裝,跳過,直接進入第二步。

  1. yum install zlib-devel  
二、整合zlib庫到ruby環境

另一個缺少openssl庫的錯誤,可以用同樣的問題解決。

一、安裝openssl庫,如果已經安裝可以跳過,直接進入第二步。

  1. yum install openssl-devel  
不要只用yum install openssl來安裝,否則會缺少pcre等相關庫,執行ruby extconf.rb會提示找不到ssl.h檔案。
  1. checking for t_open() in -lnsl... no  
  2. checking for socket() in -lsocket... no  
  3. checking for openssl/ssl.h... no  
第二步、整合openssl庫到ruby
  1. [root@node01 openssl]# make && make install  
  2. compiling openssl_missing.c  
  3. compiling ossl.c  
  4. compiling ossl_asn1.c  
  5. compiling ossl_bio.c  
  6. compiling ossl_bn.c  
  7. compiling ossl_cipher.c  
  8. compiling ossl_config.c  
  9. compiling ossl_digest.c  
  10. compiling ossl_engine.c  
  11. compiling ossl_hmac.c  
  12. compiling ossl_ns_spki.c  
  13. compiling ossl_ocsp.c  
  14. compiling ossl_pkcs12.c  
  15. compiling ossl_pkcs5.c  
  16. compiling ossl_pkcs7.c  
  17. compiling ossl_pkey.c  
  18. compiling ossl_pkey_dh.c  
  19. compiling ossl_pkey_dsa.c  
  20. compiling ossl_pkey_ec.c  
  21. compiling ossl_pkey_rsa.c  
  22. compiling ossl_rand.c  
  23. compiling ossl_ssl.c  
  24. compiling ossl_ssl_session.c  
  25. compiling ossl_x509.c  
  26. compiling ossl_x509attr.c  
  27. compiling ossl_x509cert.c  
  28. compiling ossl_x509crl.c  
  29. compiling ossl_x509ext.c  
  30. compiling ossl_x509name.c  
  31. compiling ossl_x509req.c  
  32. compiling ossl_x509revoked.c  
  33. compiling ossl_x509store.c  
  34. linking shared-object openssl.so  
  35. /usr/bin/install -c -m 0755 openssl.so /usr/local/lib/ruby/site_ruby/2.4.0/x86_64-linux  
  36. installing default openssl libraries  
成功之後,再次執行gem install redis,出現以下介面:
  1. Fetching: redis-4.0.1.gem (100%)  
  2. Successfully installed redis-4.0.1
  3. Parsing documentation for redis-4.0.1
  4. Installing ri documentation for redis-4.0.1
  5. Done installing documentation for redisafter 1 seconds  
  6. 1 gem installed  
gem install redis安裝成功。