linux ruby安装教程,linux,不适用rvm情况下,安装ruby

Centos 6.5在使用yum -y install ruby 安装ruby的时候,版本号会低于2.2.2. ,在搭建redis集群环境时,执行gem install redis命令时提示以下错误信息: ERROR: Error installing redis: redis requires Ruby version >= 2.2.2.

Centos6.5 yum源默认是1.8.0版本,查看当前ruby版本: # ruby --version // 结果ruby 1.8.0.0p648 (2013-12-16) [x86_64-linux]

解决方法:

1.安装curl

# yum -y install curl

2.安装RVM

# curl -L get.rvm.io | bash -s stable

3.获得秘钥

# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

4.继续执行

# curl -sSL https://get.rvm.io | bash -s stable

5.RVM安装完成

使用source让当前shell读入路径为/usr/local/rvm/scripts/rvm的shell文件并依次执行文件中的所有语句,并重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

# source /usr/local/rvm/scripts/rvm

6.查看Ruby可用版本

# rvm list known

2c811773284daae7bfdc8d4776753bff.png

这里选择2.3.7版本安装,等待时间比较长。

# rvm install 2.3.7

7.使用安装的2.3.7版本

# rvm use 2.3.7

8、设置默认版本

# rvm use 2.3.7 --default

9、卸载之前的2.0.0版本

# rvm remove 2.0.0

10、查看ruby版本

# ruby --version

版本号为 ruby 2.3.7p456

接着返回继续执行gem install redis命令j即可。

二、下载ruby安装包进行升级。

tar -zxvf ruby-2.3.1.tar.gz

./configure -prefix=/usr/local/ruby

make && make install

cd /usr/local/ruby

cp bin/ruby /usr/local/bin

cp bin/gem /usr/local/bin

在配置 redis-3.1.1 群集中,使用gem install 安装 ruby redis 接口时报:

原因:

缺少openssl,需要安装openssl包,我现在这里来安装一个openssl-1.0.1s.tar.gz。

解决方法步骤

1.解压在/usr/local/src目录下,进入/usr/local/src/openssl-1.0.1s目录准备安装: [root@localhost src]# tar -xzvf openssl-1.0.1s.tar.gz [root@localhost src]# cd openssl-1.0.1s [root@localhost openssl-1.0.1s]# ./config -fPIC --prefix=/usr/local/openssl enable-shared [root@localhost openssl-1.0.1s]# ./config -t [root@localhost openssl-1.0.1s]# make && make install

openssl的配置文件必须要配置-fPIC参数,如果没有该参数下面的安装中会出现问题!

安装完成,可以检测一下是否安装成功: [root@localhost openssl-1.0.1s]# openssl version

2.进入ruby源码[/usr/local/src/ruby-2.3.1]目录下的ext/openssl 目录: [root@localhost openssl]# ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib checking for t_open() in -lnsl... no checking for socket() in -lsocket... no checking for assert.h... yes checking for openssl/ssl.h... yes .............................................中间略............................................. checking for EVP_CTRL_GCM_GET_TAG in openssl/evp.h... yes creating extconf.h creating Makefile

3.接下来并且将ruby 源码目录下的include目录软链接到 / 目录下:

[root@localhost openssl]# ln -s /usr/local/ruby-2.3.1/include /

接着再执行make,如果在配置openssl时没有-fPIC参数时就会出现如下错误 [root@localhost openssl]# make gcc -shared -o openssl.so ossl_x509.o ossl_x509cert.o ossl_x509crl.o ossl_pkcs7.o ossl_cipher.o ossl_pkey_dh.o ossl_ssl_session.o ossl_x509attr.o ossl_x509ext.o ossl_ocsp.o ossl_asn1.o ossl_x509name.o ossl_x509revoked.o ossl_rand.o ossl_pkcs12.o ossl_x509store.o ossl_ssl.o ossl.o ossl_digest.o ossl_config.o ossl_pkcs5.o ossl_bio.o ossl_pkey_dsa.o ossl_pkey.o ossl_x509req.o ossl_pkey_ec.o ossl_hmac.o openssl_missing.o ossl_ns_spki.o ossl_pkey_rsa.o ossl_engine.o ossl_bn.o -L. -L/usr/local/ruby/lib -Wl,-R/usr/local/ruby/lib -L/usr/local/ssl/lib -Wl,-R/usr/local/ssl/lib -L. -rdynamic -Wl,-export-dynamic -lssl -lcrypto -lrt -ldl -lcrypt -lm -lc /usr/bin/ld: /usr/local/ssl/lib/libssl.a(s2_meth.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/ssl/lib/libssl.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [openssl.so] Error 1

有配置-fPIC参数时就继续走下去:

[root@localhost openssl]# make

compiling ossl_pkey_dsa.c

compiling openssl_missing.c

compiling ossl_x509name.c

compiling ossl_pkey_rsa.c

.............................................中间略.............................................

compiling ossl_bn.c

compiling ossl.c l

inking shared-object openssl.so

再执行 [root@localhost openssl]# make install

gem install -l ./redis-3.3.0.gem [root@localhost src]# gem install /usr/local/src/redis-3.0.0.gem Successfully installed redis-3.0.0 Parsing documentation for redis-3.0.0 Installing ri documentation for redis-3.0.0 Done installing documentation for redis after 0 seconds WARNING: Unable to pull data from 'https://rubygems.org/': SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://rubygems.org/specs.4.8.gz) 1 gem installed

可以看到这时ruby redis接口已经安装成功了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值