Как восстановить из поврежденного glibc на сервере Ubuntu 20.04

Если бы мне представился второй шанс, я бы перепроверил его, но случайно запустил sudo ln -sf something / usr / lib / x86_64-linux- gnu / libc-2.31.so . И нет другой копии glibc, потому что это настоящий общий объект, а не символическая ссылка.

Так как я могу оправиться от этого? Я думаю, мне, возможно, придется получить еще одну копию glibc, загрузить машину с USB-устройства и скопировать чистый libc-2.31.so в / usr / lib / x86_64-linux-gnu .

Как правильно это делать? Мне также нужно перестроить символические ссылки libc.so.6 в / lib / x86_64-linux-gnu и / usr / lib / x86_64-linux-gnu ]?

2
задан 21 July 2021 в 22:04

1 ответ

Не создавайте симлинки в папках, которые контролируются APT!!!
Вы сломаете систему и/или создадите кошмар для ее дальнейшего обслуживания!!!

Для восстановления ситуации переустановите пакет libc6 по

sudo apt-get update
sudo apt-get install --reinstall libc6 

и в следующий раз не трогайте симлинки.
Если вы хотите поиграть с системой - делайте это в /usr/local/bin, который находится вне контроля APT.


Примечание: на свежем минимальном 20.04 LTS есть только один файл с именем libc-2.31.so - см.

# find / -name libc-2.31.so
/usr/lib/x86_64-linux-gnu/libc-2.31.so

и один с именем libc.so.6:

 # find / -name libc.so.6
 /usr/lib/x86_64-linux-gnu/libc.so.6

пока они симлинкованы следующим образом (центральная часть заменена на (...)):

 # ls -al /usr/lib/x86_64-linux-gnu/libc-2.31.so /usr/lib/x86_64-linux-gnu/libc.so.6
 -rwxr-xr-x (...) /usr/lib/x86_64-linux-gnu/libc-2.31.so
 lrwxrwxrwx (...) /usr/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so

Оба предоставляются libc6 deb-пакетом.

1
ответ дан 28 July 2021 в 11:16

Другие вопросы по тегам:

Похожие вопросы: