linux安装openssl到指定目录

背景:

最近在做linux嵌入式开发,发现项目中不同分支均有一套openssl源码和静态库,并没有依赖系统(编译服务器)openssl头文件和静态库。

带着些许的疑问,思考得出:在嵌入式设备里,并不需要给系统安装openssl,只需要编译时连接openssl的静态库即可。不同的分支、平台编译openssl源码安装到指定分支目录,链接可执行程序时,链接上该目录上的openssl静态库即可。

结论:openssl可以安装n个,当然系统只能安装一个(系统目录下或配置环境变量的目录下只能有一个),其他目录想安装多少就可以安装多少,想安装什么版本就可以安装什么版本,和系统安装的不冲突。

检测系统是否安装openssl:

openssl version -a

检测系统是否安装openssl,本质就是去指定目录搜索是否有openssl可执行文件。

1、准备

  1. 下载OpenSSL,官网下载地址:https://www.openssl.org/source/
  2. 需要先安装zlib,这里很详细:http://myswirl.blog.163.com/blog/static/513186422007101410382259/

2、安装

以openssl-1.0.2m.tar.gz为例:

1、解压OpenSSL

tar -zxf openssl-1.0.2m.tar.gz
cd openssl-1.0.2m

2、配置openssl安装参数

./config no-shared --prefix=/home/my/share/demo/openssl/local --openssldir=ssl

config 配置安装参数的可执行文件;
no-shared 指定生成的openssl库为静态库,即生成libcrypto.a和libssl.a;(默认生成动态库)
–prefix 指定安装路径; 默认是’/usr/local/ssl’ ,这里貌似只能为绝对路径;(./和…/测试不好使)
–openssldir 配置参数路径,在只需要头文件和静态库时,感觉意义不大;(安装时这里的路径是在–prefix指定路径的子目录下的,可能和系统或版本有关系)

配置完成后,最好检查下MakeFile文件内,安装路径是否已修改为–prefix指定的路径。

3、编译openssl

make

4、测试openssl

make test

此步可省略,建议最好测试下。

5、安装openssl

make install

安装完成,显示如下:
linux安装openssl到指定目录_第1张图片
bin目录下有openssl可执行文件,若执行刚才安装的openssl版本,可cd到bin目录下,执行./openssl(直接执行openssl为系统openssl)
include下有openssl文件夹,openssl文件夹为相关的头文件;
lib目录下有libcrypto.a和libssl.a静态库;
ssl文件夹为–openssldir=ssl指定文件夹;

重要事情说三遍:
优先阅读官方安装说明文档;
优先阅读官方安装说明文档;
优先阅读官方安装说明文档;

参考资料:
https://blog.csdn.net/chengqiuming/article/details/70139714
https://blog.csdn.net/shiyong1949/article/details/78212971?locationNum=10&fps=1
http://myswirl.blog.163.com/blog/static/513186422007101410149578/
https://blog.csdn.net/qq_37990044/article/details/79198623
https://blog.csdn.net/stelalala/article/details/9673385
https://www.linuxidc.com/Linux/2017-09/147117.htm

你可能感兴趣的:(linux,OpenSSL)