美文网首页技术瓶
AWS-AttributeError: /usr/lib/x86

AWS-AttributeError: /usr/lib/x86

作者: 阿木摄影 | 来源:发表于2018-10-22 18:26 被阅读335次

是这样的,之前利用搬瓦工搭建的VPS过期了,最近搞了一个AWS,也就是利用亚马逊云服务搭建的VPS,遇到的一个棘手的问题;

具体报错

AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

    load_openssl()
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
    libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 379, in __getattr__
    func = self.__getitem__(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 384, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

原因

仔细查看报错原因:在Python2.7中的openssl文件中,下面这个函数没有定义,具体就是这个哥们:
EVP_CIPHER_CTX_cleanup
更深层的是是由于在openssl1.1.0版本中,废弃了EVP_CIPHER_CTX_cleanup函数,要用这个函数EVP_CIPHER_CTX_reset()代替;

解决办法

打开openssl文件

用vim打开文件:((以下路径可以根据自己的系统情况自行修改))
vim /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py

搜索关键字并修改

直接搜索关键字:EVP_CIPHER_CTX_cleanup,一共有2处;
进入编辑模式将
libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
改为
libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
其实就是把 cleanup 改为reset,就可以了;
保存并退出,重新启动就行;
完美解决;
如果想免费科学上网,点击这个文章;

相关文章

网友评论

    本文标题:AWS-AttributeError: /usr/lib/x86

    本文链接:https://www.haomeiwen.com/subject/veagzftx.html