我正在尝试安装此依赖项但一直收到此错误消息:
这是我在终端中输入的内容:
sudo apt install libssl1.1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libssl1.1
E: Couldn't find any package by glob 'libssl1.1'
如何获得libssl1.1
我对 Linux 还很陌生,所以我不知道这是否是一个显而易见的问题。
我正在使用 Ubuntu 22.04 LTS
答案1
Ubuntu 22.04 使用libssl3
,因此libssl1.1
目前已被弃用。
为 Ubuntu 22.04 创建使用过时版本的新软件包libssl
似乎是一个非常糟糕的主意。此外,对系统范围的库版本进行修改也是libssl
一个非常糟糕的主意,这可能会在未来带来不可预测的后果。
因此,一个选择是,如果您要继续使用 Ubuntu 22.04,则应该将其转换为libssl3
用于您的应用程序。
另一种选择是在虚拟机或容器内运行旧版应用程序,您可以在其中安装已安装的旧版本的 Ubuntu(例如 20.04)libssl1.1
。
就您的情况而言,这两个选项似乎是最可行的途径。
答案2
虽然我认为 Artur 的建议很好。我设法easytether-usb
通过从 @Nishant 在其回答中引用的 1.1 安装中获取来解决旧版应用程序(特别是)的libcrypto.so.1.1
问题。我将其安装在我的主目录下的用户空间中,并在中创建了指向它的符号链接/lib/libcrypto.so.1.1
:
sudo ln -s ~/openssl/lib/libcrypto.so.1.1 /lib/libcrypto.so.1.1
您通常可以添加~/openss/lib
到LD_LIBRARY_PATH
所讨论的特定应用程序中,但就我而言,leacy 应用程序没有正确查找$LD_LIBRARY_PATH
,因此我必须找出它正在寻找的位置libcrypto.so.1.1
,我使用以下命令进行操作:
sudo strace -e trace=open,openat,close,read,write,connect,accept easytether-usb
这表明我尝试了十几次libcrypto.so.1.1
在不同位置查找该文件,这就是我知道要将符号链接添加到/lib/
上面的原因。
此后,旧版应用程序启动并正常运行。其他用例可能需要其他共享库。strace
上面的命令应该有助于确定需要什么。
答案3
https://packages.ubuntu.com/bionic/amd64/libssl1.1/download
给你!如果你想下载 libss,请使用此链接。
答案4
我建议的一种方法是将focal
存储库放入 22.04 LTS sources.list
。你只需复制这些main, universe and multiverse
行并替换jelly
为 focal 即可。
然后执行sudo apt update
它也会从焦点存储库更新,然后您可以libssl1.1
从安装预编译的focal repo
。但请务必稍后对其进行注释,因为它可能会与以后的软件包发生冲突。