问题1:在Centos下,手动安装Ruby,安装完成后,输入命令行ruby后,却提示
-bash: /usr/bin/ruby: No such file or directory
解决问题之前,先确认一个情况,输入命令
/usr/local/bin/ruby --version
如果有版本信息,那说明ruby被装到了该目录下,而非系统认为的 /usr/bin/ruby
解决方法是在系统默认运行ruby的位置[/usr/bin/ruby]创建一个symlink(相当于win下的快捷方式),指向ruby的实际位置[/usr/local/bin/ruby]
命令是:
ln -s /usr/local/bin/ruby /usr/bin/ruby
再输入:
ruby -v
检测版本,OK了
问题2:要是安装gem也出现这种情况[-bash: /usr/bin/gem: No such file or directory]也是和问题1同理
ln -s /usr/local/bin/gem /usr/bin/gem
问题3:Ruby安装完成之后,执行命令gem install redis时可能会报错
解决方案:我们需要再安装zlib才行
yum install zlib-devel
问题4:安装完Zlib,再次执行gem install redis,还会报上面的错误,我们需要编译安装zlib。
解决方案:进入ruby/ruby-2.4.2/ext/zlib目录,执行命令:
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.h
执行make命令,再执行make install,执行安装成功。
问题5:zlib安装完毕,再执行gem install redis,又会报错(你妹的,没完没了了):
这是因为我们没有安装OpenSSL。
安装openssl
1、下载OpenSSL并解压
2、进入解压目录执行以下命令
./config shared zlib --prefix=/usr/local/openssl && make && make install
上面的命令,是安装openssl到 /usr/local/openssl 目录,安装之后,编译;这个时候执行需要有耐心,可以查看命令行一直在滚屏,等到滚屏结束,安装编译完成;
3、./config -t
4、make depend
5、cd /usr/local
6、ln -s openssl ssl
7、在/etc/ld.so.conf文件的最后面,添加如下内容: /usr/local/openssl/lib
8、ldconfig
9、添加OPESSL的环境变量:在etc/的profile的最后一行,添加:
export OPENSSL=/usr/local/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin
10、移除老版本的openssl,创建新的软连接;这个地方注意路径
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -sf /usr/local/openssl/lib/libcrypto.so.1.0.0 /lib/libcrypto.so.6
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
ldconfig -v
11、ldd /usr/local/openssl/bin/openssl
安装完成OpenSSL。
进入ruby源码目录下的ext/openssl 目录执行以下命令:
ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib
接下来并且将ruby 源码目录下的include目录软链接到 / 目录下:
ln -s /data/ruby/ruby-2.4.2/include /
执行命令:make
执行命令:make install
成功
再执行gem install redis
成功