乐趣区

SUSE Linux上源码安装libssh2

缘起

要给测试支持一下,在 SUSE Linux 上安装 libssh2,环境上有了 openssl-1.0.1g 和 libssh2-1.8.0。

uname - a 还看不了发行版本。只能使用 cat /etc/issue 或 lsb_release - a 查看。

解决过程
第一步

之前没有安装过,于是搜索一番。linux 环境编译 libssh2
有且只找到一个合适的,当时一直卡在 -fPIC 参数的问题,虽解决./config 的问题,但 make 时又报错。

没招了,跟同事反馈了一下,给了一份简要的指导

./config –prefix=/home/openssl-1.0.1g –openssldir=/home/openssl-1.0.1g/ssl,根据文档里的这个命令改成源码的路径。
执行报错 Makefile:548: recipe for target ‘install_sw’ failed,根据提示,重新配置了一下,make OK。

第二步

移交给测试后,她试了一下还是报错。fatal error:libssh2_config.h:No such file or directory。

这个大概率就是路径没有配置正确。-I/src -I/include

在.profile 里 export LIBSSH2_HOME=/usr/local/libssh2,执行 source .profile 后,编译代码路径下的 Makefile.incl.platform 就能得值,执行就 OK。

第三步

说是 HP 和 SUSE 的还不太一样,HP 的还需要再修改值。被勉励了 要自己多思考和定位,而不要总想着现成的。
想到了之前升级 GCC6 的时候,其实也这么配过,但没想过这么多,当时就是照着抄了。
源代码编译时,要抽象出一些方法论来,确实思路都差不多。

内容
cd openssl-1.0.1s/
./config –prefix=/usr/local/openssl –openssldir=/usr/local/openssl/ssl
make && make install
./config shared –prefix=/usr/local/openssl –openssldir=/usr/local/openssl/ssl
make clean
make && make install

cd libssh2-1.8.0/
./configure –prefix=/usr/local/libssh2 –with-openssl CPPFLAGS=”-I/usr/local/openssl/include” LDFLAGS=”-L/usr/local/openssl/lib”
make clean
make && make install

其它
20190128 安装的,20190129 整理。

退出移动版