对于centos7,自带的openssl版本为1.0.2k,不满足libcoap对于dtls的支持,libcoap编译会报错:configure: error: ==> OpenSSL 1.0.2k too old. OpenSSL >= 1.1.0 required for suitable DTLS support build.因此需要升级openssl到1.1.0版本及以上,升级就分为openssl的升级和libcoap的安装,步骤如下:
升级Openssl
这个方法同样适用于升级Openssl的场景,以前有不熟悉的同事升级openssl,结果电脑都无法ssh访问了,就是因为有的链接库没有正确的引用 1、首先下载openssl的升级包: wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
2、切换到root,将安装包拷贝到/usr/local 3、解压: tar -xzvf openssl-1.1.1k.tar.gz 4、进入目录并配置: cd openssl-1.1.1k ./config shared zlib --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl 5、编译并安装 make make install
6、替换可执行文件、替换头文件:ln -s(soft)f(force) <现有文件> <目标链接> mv /usr/bin/openssl /usr/bin/openssl_bak? ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl mv /usr/include/openssl /usr/include/openssl_bak ln -s /usr/local/openssl/include/openssl /usr/include/openssl
7、替换/lib64下的openssl的库 cd /lib64/ ll libcrypto* ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 libcrypto.so ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 libcrypto.so.10 ldconfig ll libssl* ln -sf /usr/local/openssl/lib/libssl.so.1.1 libssl.so ln -sf /usr/local/openssl/lib/libssl.so.1.1 libssl.so.10 ldconfig 8、修改pkg-config管理的链接 mv /usr/lib64/pkgconfig/openssl.pc ~ cp /usr/local/openssl-1.1.1k/openssl.pc /usr/lib64/pkgconfig/openssl.pc
9、查看升级openssl后的结果: openssl version pkg-config --modversion openssl ldconfig -v |grep libssl ldconfig -v |grep libcrypto
===========================至此可以安装libcoap了==========================
安装libcoap
1、下载libcoap的包 有人推荐直接从git上拉主干:git clone ?https://github.com/obgm/libcoap.git 个人不建议,最好选择一个固定的版本,最好是稳定版的 访问官网https://libcoap.net/ 点击Getting Started,在Get the Code界面点击stable version,会自动创建下载链接
2、进入目录,执行生成脚本: cd libcoap ./autogen.sh 3、配置, ./configure? 但是可能会报错,configure: WARNING: ==> You want to build the manpages, but a2x was not found! configure: error: ==> Install the package that contains a2x (mostly asciidoc) or disable the build of the manpages using '--disable-manpages'. 这里只需要安装一下asciidoc即可: yum install asciidoc ./configure
4、编译、安装 make? make install ?
|