zoukankan      html  css  js  c++  java
  • no version information available && openssl && libpython2.7.so

    错误描述
    /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/lib/libpython2.7.so.1.0)
    使用vim或者编译程序或者其他使用python的情况下就会出现
    而且基于ssh的file transfer也无法使用

    起因
    自己对openssl中的内容进行了修改,希望使用其中的内容,静态库好说,可以实现,但是强迫症般的想通过动态库调用。
    将openssl编译出的.so文件(加shared参数)复制到/usr/local/lib目录下,并做了链接,而在调用的时候就出现了上述的问题

    起初以为是旧的库(位于/lib/x86_64-linux-gnu/libcrypto.so.1.0.0)没有删除而引起冲突所致,无奈删除后依然无果

    后来发现可能自己的方式不科学,因为是直接复制过去的(居然这么想,2了)。依照网上的说法,做链接到/usr/local/ssl/lib/libcrypto.so.1.0.0,依然无果

    而且即使直接将.so文件复制到/lib/x86_64-linux-gnu/目录下覆盖原有文件也不行

    这时才意识到,这个东西是应该跟上述的位置问题无关的,因为在执行ldd /usr/lib/libpython2.7.so.1的时候显示的引用的共享库内容已经是我自己编译的那个了,说明在调用的时候并没有问题,也不应该受到系统自带的ssl库的影响

    后来想到是不是openssl对python有特殊的支持,而我config的时候参数设置有问题呢,去查看Configure/config/Makefile内容,依然无果,并没有python相关内容

    又在网上找了找,有人提到版本问题,感觉挺靠谱,继续看下去,他提到了2进制安装包编译与运行环境不同的问题
    尤其指出openssl编译出的共享库的soname中的版本号并不受openssl版本最后一位字母的影响,也就是1.0.1e和1.0.1c编译出的共享库看起来是一模一样的
    这时就感觉问题已经解决了

    卸载了原有的python2.7(不知道有没有必要),下载源码,并重新编译安装,当然还有vim,因为在卸载python2.7的时候已经被一起删除了

    之前的错误提示并没有发生,高兴的去用SSH secure shell链接,发现file transfer可以使用了
    而libpython2.7.so.1所调用的共享库是/usr/local/lib/libcrypto.so.1.0.0,也就是我自己编译的没错

    问题算是解决了

    2013.1.16

    啊,太不幸了,因为我在另一台虚拟机上尝试的时候ssh的file transfer还是不能用,scp也不能用,而且后来我想了一下,把依赖libcrypto.so的库都重装也不现实。
    我后来是把旧的openssl完全卸载,所有有关的东西都删掉,然后再装新的,果然能用了哈。

    但是它居然会一小段时间就断开连接,过一段时间后才可以再次连,周而复始,我在想是不是什么东西给删错了呢。

    不会看日志呀不会看日志。

    若未特殊声明,本博客内容均为作者原创并首发于博客园。欢迎转载,但转载后必须在明显位置给出作者以及原文链接,否则保留追究法律责任的权利。

    作者博客:http://www.cnblogs.com/sarshes/

  • 相关阅读:
    zoj-1610线段树刷题
    poj-3268最短路
    poj-2528线段树练习
    线段树-最小逆序数hdu1394
    线段树延迟更新
    hdu-4027线段树练习
    RMQ_第一弹_Sparse Table
    字符串hash与字典树
    背包问题
    网络流
  • 原文地址:https://www.cnblogs.com/sarshes/p/2855352.html
Copyright © 2011-2022 走看看