安装 openssl 后缺少库(libcrypto.so.1.1,...)

安装 openssl 后缺少库(libcrypto.so.1.1,...)

我通过尝试安装 openssh 使我的 Arcolinux (5.12.14-arch1-1 x86_64) 无法使用。谷歌搜索了几个小时并尝试了一些东西,但没有成功。

我做了以下事情:

$sudo pacman -S openvpn

然后vpn说需要oppenssl,所以我就安装了

$sudo pacman -S openssl

然后我尝试启动 openvpn 并收到错误“缺少 libcrypto.so.1.1”

不幸的是,许多应用程序(包括 sudo 和 pacman!)似乎依赖于这个库,所以我无法再启动它们。

经过一番谷歌搜索后,我从这里下载了 libcryptohttps://archlinux.org/packages/core/x86_64/openssl-1.1/ 并将libcrypto.so.1.1文件复制到/usr/lib/(使用 sh,因为 sudo 不起作用)

然后我尝试再次启动pacmansudo收到另一个错误:

sudo: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libcrypto.so.1.1)

现在,也许我也可以尝试复制这个文件等等,但我认为这不是干净解决问题的正确方法。

如何恢复到安装 openssl 之前的状态(上图)

我在安装 openssh 时出错了什么?我认为/依赖于 pacman 考虑依赖关系,如果有另一个应用程序或库依赖于它,则不会自动删除库?

非常感谢您的提示或指导!

答案1

根据您的内核版本(5.12.14-arch1-1 x86_64) 您显然已经大约 15 个月没有更新您的 Arch 安装了。

跟上像 Arch 这样的滚动发布发行版往往需要频繁更新。发行版维护人员无法保证您能够将最新的软件包安装到任何旧的安装中:随着当前安装的软件包与最新状态之间的时间范围,需要管理的依赖关系网络变得呈指数级复杂。的分布增长。

除非所有的包都有其依赖信息一直都绝对完美随着更新之间的时间间隔增加,遇到无法自动检测到的依赖项的风险也会增加。而对你来说,这种风险似乎已经实现了。

您应该至少每月一次,甚至每周一次,安装已安装软件包的所有更新。

相反,您将绝对最新的软件包安装openvpnopenssl了一年半的旧系统中。不幸的是,看起来新版本是针对比您的系统当前openssl版本更新的版本构建的。glibc为了解决这个问题,您可能需要一个openssl介于系统原始版本和当前最新版本之间的版本...但您需要的版本可能已经从 Arch 过期存储库,因为您的系统处于如此旧的状态。如果是这样,那么“没有办法从这里到达那里”:滚动版本已经从你身边滚走了,你再也无法抓住它了。

最简单的方法是从备份恢复,然后在尝试安装任何尚不存在的软件之前尝试完全升级到最新状态。但即使这样也可能不会成功,因为您的系统似乎处于如此旧的状态。

有可能可能的通过“手动干预”(Arch Wiki 称之为)从当前情况中恢复,但是从头开始重新安装并从备份恢复数据可能会更容易、更快。

如果你没有备份?然后我建议从一些外部媒体启动,安装此安装的文件系统,备份所有数据和配置文件,然后重新安装。

相关内容