libssl.so.10: 找不到共享对象文件:没有这样的文件或目录

我正在尝试使用twoBitToFa,这是由加州大学圣塔克鲁兹分校发布的一个小程序,用于解压缩大型基因组文件,但我遇到了以下错误:
error while loading shared libraries: libssl.so.10: cannot open shared object file: No     such file or directory

我试图搜索提供它的软件包。我从使用过yum provides的Fedora切换过来,但是在寻找Ubuntu的等效命令时,我遇到了apt-file search,但是当我尝试使用它时,出现了“命令未找到”的错误。
我该如何获取这个libssl文件,更一般地说,我该如何搜索提供某个文件的软件包,以便将来自己解决这个问题?

您需要使用“sudo apt-get install apt-file”安装apt-file,然后需要运行sudo apt-get updatesudo apt-get install apt-filesudo apt-file update - mchid
7个回答

让我们确保您已经安装并更新了SSL证书:
sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev

现在我们通过创建一个链接来修复文件的命名:
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

最后,让我们通知开发者这个漏洞,好让他来修复它 :)

3在我的情况下(来自UCSC的bedToBigBed),除了上面的答案之外,我还需要运行一个类似的命令来处理"libcrypto":sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10 - user2821352
2在我的情况下,我需要“重新安装”这些软件包。sudo apt-get install libssl1.0.0 libssl-dev --reinstall - Edward Wilde
谢谢 @EdwardWilde,重新安装似乎是最简单的方法!sudo apt-get install libssl1.0.0 libssl-dev --reinstall - Stéphane Bruckert
1在执行apt-get命令之后,我仍然没有在/lib/x86_64-linux-gnu目录下看到任何libssl*文件。(Ubuntu 18) - MiloDC
你确定需要libssl-dev吗?可能不需要的。 - Michel Samia
4在18.04上,图书馆已安装在/usr/lib/x86_64-linux-gnu目录下。 - Sa'ad
在Ubuntu(apt-get)中的libcrypto.so.1.0.0和Redhat(yum)中的libcrypto.so.10是相同的吗?创建符号链接的技术基础是什么?这些版本看起来不同。 - Yixing Liu
无法找到软件包libssl1.0.0。 - JRichardsz

似乎Mongo期望在/usr/lib/目录中找到libssl文件。
  sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/libssl.so.10
  sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10

ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

- jmp
这两个是一样的吗?它们似乎是不同版本的。 - Yixing Liu
也许有人想看一下关于MongoDB的这个答案:https://superuser.com/a/1215357/126616 - kommradHomer

我是这些工具的开发者之一。我们的二进制文件目前还没有官方支持Ubuntu(但会在不久的将来提供)。解决这个问题的官方方法是从源代码重新编译,而这个过程已经变得非常简单(请参考https://github.com/NullModel/kentUtils)。我们目前正在尝试构建不依赖libssl的静态二进制文件。

有新的链接吗?上面的链接说它现在已经过时。 - Ryuu

在我的情况下,我愚蠢地在我的Ubuntu机器上使用了一个为Red Hat Enterprise Linux编译的应用程序。仅仅使用Ubuntu版本就解决了这个问题。
这与Max所描述的对Ubuntu的支持不足类似。

一样的情况。我不是完全确定这是主要原因,但可能是。顺便说一下 - 软件是RoyalRender。 - bossi
是的,在我的情况下,我下载了适用于非 Ubuntu(另一个 Linux)的 Mongo tar.gz。当下载 Mongo 时,在 Mongo 网站上看到下拉菜单并选择了 Ubuntu。 - Maxim Yefremov
1我也是...对Ubuntu还不熟悉...在经过大约45分钟的谷歌搜索和尝试之后,这个答案帮了我一个大忙。 - SourceVisor
我也是。
  1. 其他人是如何让它工作的?也许他们错过了帖子中的“Ubuntu”参考?
  2. 为什么发行版很重要?它不是针对相同架构编译的吗?
- Ryuu

只需手动安装libssl1.0.0:

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb

我在安装较新版本的OpenSSL时,不知何故弄乱了我的符号链接。为了解决这个问题,我修复了位于/usr/lib64目录下的符号链接。例如:sudo ln -sf libssl.so.0.9.8e libssl.so.10

关于 apt-file,首先您必须安装它。
sudo apt install apt-file

更新缓存
sudo apt-file update

然后apt-file search some-file应该可以工作。
关于软件包安装,我认为你不需要libssl-dev,你只需要libssl1.0.0 - 这是运行时库。第二个是用于开发的。