意外删除了 openssl lib 包,无法让 yum 或 wget 再次工作

zzz*_*yer 3 linux ssl centos

所以我试图升级 openssl 并决定删除现有的 openssl 包,因为它来自不同的存储库。

删除后,我无法再让 yum 或 wget 再次工作,因为它们似乎都依赖于 ssl

我缺少文件

libssl.so.10
libcrypto.so.10
Run Code Online (Sandbox Code Playgroud)

我能够libssl.so.10通过使用libssl3.so本地存在的libcrypto.so.10文件进行恢复,但尚未使用(因为此文件可能需要从远程位置下载)。

嗯:

The error leading to this problem was:
libcrypto.so.10: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

wget:

wget: error while loading shared libraries: libcrypto.so.10:
Run Code Online (Sandbox Code Playgroud)

换句话说,我现在处于 catch-22 状态;我不能使用yum, wget, curl, rpm (with url), 或者rsync (by connecting to a backup server instance)因为它们都需要 ssl lib 文件。

我什至无法打开一个新的 SSH 到有问题的服务器,因为 SSL lib 文件现在已经消失了。(只能使用现有的 Putty 提示访问)。

我尝试使用另一个快照备份使用 VIM 编辑器“复制并粘贴”文件内容,但似乎不起作用。

我在想是否有办法使用上面未列出的现有工具通过普通 http 下载 rpm 甚至单个文件...

Mik*_*eyB 10

不太好。--force除非您知道自己在做什么,否则尽量避免使用 RPM 命令。

要尝试恢复到合适的状态以便您可以尝试正确的恢复,请从备份或其他相同的服务器运行:

# tar cfz - $(rpm -ql openssl) | base64 > oh_my_god_what_did_I_do
Run Code Online (Sandbox Code Playgroud)

将输出(在oh_my_god_what_did_I_do文件中)复制到剪贴板并将其粘贴到其他服务器中:

# cat > oh_my_god_what_did_I_do
(paste here)
^D
# cd /; base64 -d < oh_my_god_what_did_I_do | tar xfz -
Run Code Online (Sandbox Code Playgroud)

祝你好运。

(如果你精明,你可以想出其他方法来移动那个文件。NFS,netcat,不难找到)