zoukankan      html  css  js  c++  java
  • error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared

    samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
    

    使用conda 安装samtools,使用samtools报错。说是samtools在使用时要加载libcrypto.so.1.0.0这个文件,但是没找到它,就报错了。
    这个错误,我在centOS 7服务器上遇到过,也在win的linux ubuntu子系统下也遇到过。

    centOS 7服务器上

    samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
    

    搜索参考 Problem with libcrypto.so.1.0.0 centos 7

    查看一下当前系统文件里,libcrypto.so都有哪些版本

    $ ll /usr/lib64/libcrypto.so.*
    -rwxr-xr-x. 1 root root 1440256 Mar  9  2016 /usr/lib64/libcrypto.so.0.9.8e
    lrwxrwxrwx  1 root root      19 Jul 28 13:24 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
    -rwxr-xr-x  1 root root 2521144 Aug  9  2019 /usr/lib64/libcrypto.so.1.0.2k
    lrwxrwxrwx. 1 root root      19 Jul  6 22:08 /usr/lib64/libcrypto.so.6 -> libcrypto.so.0.9.8e
    

    属实没有这个libcrypto.so.1.0.0,但是有这个/usr/lib64/libcrypto.so.1.0.2k,此外在anaconda目录下也看到了

    $ ll ~/anaconda3/envs/hts/lib/libcrypto.so.*
    -rwxrwxr-x 1 user user 3266768 Dec 24 15:46 /home/user/anaconda3/envs/hts/lib/libcrypto.so.1.1
    

    看名字可知道,这两应该相差不多,于是可以尝试建立一个叫libcrypto.so.1.0.0的符号链接指向/usr/lib64/libcrypto.so.1.0.2k 或者~/anaconda3/envs/hts/lib/libcrypto.so.1.1
    使用命令

    ## 其中,`ENV_NAME`是conda环境名,需根据自己的名字进行替换。
    $ ln -s ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.1 ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.0.0
    

    or

    使用命令

    ## 其中,`ENV_NAME`是conda环境名,需根据自己的名字进行替换。
    $ ln -s /usr/lib64/libcrypto.so.1.0.2k ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.0.0
    

    尝试运行samtools,成功运行。

    win linux子系统下

    在wsl下,我试过直接用sudo apt-get install samtools安装samtools,然后运行,没出问题。

    而用conda安装samtools,运行报错了。(没新建环境,直接在base环境下安装的)
    在anconda3安装目录下的lib目录下找到相关文件。
    使用命令建立一个合适的软链接

    ## 这里因为是在默认base环境下安装的samtools,所以不需要进入虚拟环境目录下envs/ENV_NAME的lib目录
    $ ln -s ~/anaconda3/lib/libcrypto.so.1.1 ~/anaconda3/lib/libcrypto.so.1.0.0
    

    尝试运行samtools,成功运行。

    运行某个软件,报错提示某个lib*.so找不到,这算是一类问题了,
    可以尝试建立一个软件需要的文件名指向高或低的版本库文件来解决该问题,(虽然不一定能解决所有问题,但还是能解决部分问题)

    在网上搜索,出现这个错误的情况并不单是用samtools,其他软件也有,若是用anconda安装可参考上面的解决方案。
    若不是的话,可参考这个命令。将符号链接建立在/usr/lib64/或者/usr/lib/目录下试试看~

    ## 这个命令也可解决上面centOS 7服务器上samtools的问题,不过需要管理员权限
    $ sudo ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.0
    
  • 相关阅读:
    3.2 直线与方程
    3.1.2 两条直线平等与垂直的判定
    GNU Make
    linux 启动后台进程
    go 占位符
    raft 协议
    restTemplate 接收list数据
    JAVA通过实体类生成数据库查询语句(驼峰命名规则)
    flink使用命令开始、停止任务
    SPringBoot 配置类继承WebMvcConfigurationSupport和实现WebMvcConfigurer的使用
  • 原文地址:https://www.cnblogs.com/huanping/p/13786701.html
Copyright © 2011-2022 走看看