刚开始碰到这个问题的时候,从网上找的例子。搞了半天很差使,后来发现了缘由,主因是本身对linux认知不够,只有发布服务、查看日志的基本功。linux
先上原文链接:http://blog.csdn.net/zhongruixian/article/details/21076405shell
而后再讲本身操做失败的缘由,主要是为了给本身作下记录。vim
错误信息:centos
[plain] view plain copy app
解决办法:ui
一、下载openssl源码this
wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz
tar zxvf openssl-1.0.1f.tar.gz.net
二、进入源码目录,若是不是新下载解压的目录,并且之前有编译安装过的,进入目录后执行make clean以确保能从新编译日志
cd openssl-1.0.1fcode
三、为了避免要和已安装的openssl混淆,这里指定一个新的安装目录
./config --prefix=/opt/ssl
四、config以后,会生成Makefile,打开Makefile找到gcc,在CFLAG参数列表里加上-fPIC
vim Makefile
[cpp] view plain copy
五、编译并安装
make && make install
六、如今进入你的erlang源码安装目录,若是已经编译安装过erlang,为确保能从新编译,先执行:
make clean
七、加上openssl安装路径从新configure,若是有安装多个版本的erlang,为了能够方便找到新安装的erl,这里能够指定一个新的安装目录,示例以下:
./configure --with-ssl=/opt/ssl/ --prefix=/opt/erlang
八、编译并安装
make && make install
九、运行刚才安装的erlang
/opt/erlang/bin/erl
[plain] view plain copy
十、小结
不少同窗根据我上一篇文章重装后仍然失败的缘由,常见的有以下几个:
一、加-fPIC参数重装openssl后,不明确新编译出来的静态库libcrypto.a在哪里,若是之前有安装过的,不明确是否被覆盖;
二、对于已经编译安装过的源码目录,没有执行make clean;
二、重装erlang时,没有具体指定最新安装的ssl目录;
三、重装erlang后,直接执行erl时,仍然执行了老的erl,能够加上完整路径执行erl尝试,用whereis erl查看一下默认执行路径。
本人操做时就蠢在了第三个缘由上面。先是进入了指定的erlang安装目录,可是,可是,进入目录后直接运行了erl 命令,而不是 ./erl ,饮恨此处。
解决方法:
一、whereis erl 找到erl的运行路径:/usr/local/bin/erl(centos)
二、vi /usr/local/bin/erl(erl命令路径文件)
修改:ROOTDIR="/app/erlang/lib/erlang" 切记修改ROOTDIR指定的路径。 就算修改了/etc/profile也很差使,切记修改此处。
这个问题找了半天,终究缘由是本身对linux认知不够,这种问题以前根本不会的。