因为要写个自动打版工具,发现scp无法使用。因为openssl库太过老旧,所以就升级了一下。用yum升级之后,scp确实可以使用了。但是原来项目的libssl.so却出现了问题,cmake编译项目的时候无法找到libssl库,报错 error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory。
发现libssl库的版本对不上了。用ln -s建立软连接之后,让项目使用高版本的libss库,项目编译通过了。但是启动项目的时候,发现编译的时候骗过了编译器,但是启动不了,版本升级应该改动了不少东西,导致了项目里逻辑出现了问题。(原来是这样 ./libssl.so -> libssl.so.0.9.8e,变成了 ./libssl.so -> libssl.so.1.1.1)。又手动安装之前的版本之后,用ln -s 建立软连接之后,可以正常启动了。相当于lisssl.so对应了两个版本,一个是0.9.8e,一个是1.1.1。发布到外网的时候又出现了问题,因为外网libssl的版本是系统自带的,需要升级,考虑到以后经常发布需要不停的升级ssl库的情况,只能把ssllib回退到之前的版本。
通过 ldd $(which program) 命令可以看到当前启动的程序会用到哪些lib库,以及是否有响应的库