
Поэтому я пытался обновить openssl и решил удалить существующие пакеты openssl, поскольку они были из другого репозитория.
После удаления я больше не могу заставить работать ни yum, ни wget, потому что все они, похоже, полагаются на SSL.
Мне не хватает файлов
libssl.so.10
libcrypto.so.10
Мне удалось восстановить данные, 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
wget:
wget: error while loading shared libraries: libcrypto.so.10:
Другими словами, теперь я в тупике: я не могу использовать yum
, wget
, curl
, rpm (with url)
, или rsync (by connecting to a backup server instance)
, потому что все они требуют файлы библиотек SSL.
Я даже не могу открыть новый SSH-подключение к проблемному серверу, так как файлы SSL lib теперь исчезли (доступ возможен только с помощью существующей командной строки Putty).
Я пытаюсь «скопировать и вставить» содержимое файла с помощью редактора VIM, используя другую резервную копию снимка, но это, похоже, не работает.
Я думаю, есть ли способ загрузить RPM-пакет или даже отдельный файл по обычному http-протоколу, используя существующие инструменты, не перечисленные выше...
решение1
НЕ ТАК ХОРОШО. Старайтесь избегать --force
команды RPM, если вы не знаете, что делаете.
Чтобы попытаться восстановиться до приемлемого состояния и иметь возможность выполнить корректное восстановление, запустите с резервной копии или другого идентичного сервера:
# tar cfz - $(rpm -ql openssl) | base64 > oh_my_god_what_did_I_do
Скопируйте вывод этого (из 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 -
Удачи.
(если вы сообразительны, вы можете придумать другие способы перемещения этого файла. NFS, netcat, несложно что-то найти)