Итак, я пытался обновить 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:
Другими словами, я сейчас в ловушке-22; Я не могу использовать yum
, wget
, curl
, rpm (with url)
, или rsync (by connecting to a backup server instance)
потому что все они требуют файлов ssl lib.
Я даже не могу открыть новый SSH для проблемного сервера, так как файлов SSL lib больше нет. (можно получить доступ только с существующей подсказкой Putty).
Я пытаюсь «скопировать и вставить» содержимое файла с помощью редактора VIM, используя другую резервную копию моментального снимка, но, похоже, не работает.
Я думаю, есть ли способ загрузить rpm или даже один файл через простой http, используя существующие инструменты, не указанные выше ...
НЕ ТАК ХОРОШО, КАК ХОТЕЛОСЬ БЫ. Попробуйте и избегайте --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, что-то найти несложно)