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整理。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理