Как мне восстановить libz.so.1?
Пытаясь решить проблему с Python, я случайно сдул libz.so.1
двоичный файл путем символической ссылки на него. Теперь куча вещей, в том числе apt-get
не сработает Ущерб ограничен только libz.so.1 (который указывал на libz.so.1.2.8
) поэтому я смогу это исправить, просто найдя бинарный файл x86_64 и вернув его на место, но все, что я могу найти, - это источник, и я не могу его скомпилировать. Я на Ксениале. Где я могу найти скомпилированный бинарный файл?
3 ответа
Правильный способ решить эту проблему - это загрузить нужный пакет вручную, а затем установить или распаковать его в систему. Конечно, вы можете выполнять такие действия из LiveCD/LiveUSB.
Как решить такие проблемы:
- Посетите https://packages.ubuntu.com/.
Введите пропущенное имя файла в поле Поиск содержимого пакетов (в нашем случае
libz.so.1.2.8
) указание целевого распределения (xenial
в нашем случае) и архитектура процессора (amd64
):Нажмите Search, появится страница результатов:
Затем нажмите на
zlib1g
ссылка на сайтВ разделе Скачать нажмите
amd64
:На открывшейся странице выберите ближайшее зеркало (скопируйте ссылку или загрузите deb-файл браузером)
wget http://mirrors.kernel.org/ubuntu/pool/main/z/zlib/zlib1g_1.2.8.dfsg-2ubuntu4_amd64.deb
Попробуйте установить загруженный пакет в систему:
sudo dpkg -i zlib1g_1.2.8.dfsg-2ubuntu4_amd64.deb
Если это не работает - распакуйте его прямо в файловую систему:
sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_amd64.deb /
А затем обязательно переустановите его с помощью APT:
sudo apt-get install --reinstall zlib1g
Расширение инструкций N0rbert, если вы делаете это в живом сеансе, убедитесь, что вы извлекаете пакет в корень поврежденной установки Ubuntu, а не в корень самого живого сеанса (который ничего не решает и исчезнет при перезагрузке).
Из POV живого сеанса ваша сломанная установка будет смонтирована примерно так: /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f
(не фактическое значение, но некоторый длинный хэш, подобный этому). Возможно, вам придется перейти к нему в проводнике, чтобы открыть папку.
Таким образом, во время сеанса вы извлекаете команду, такую как:
sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_amd64.deb /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/
Как только пропал libz.so.1
восстанавливается в /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/lib/x86_64-linux-gnu/
, вы должны быть в состоянии перезагрузить, запустить sudo apt-get install --reinstall zlib1g
в tty1 и перезагрузитесь в работающую систему снова.
Хорошо, так как я сдул оригинальный файл, я не мог apt
или даже распаковать или использовать rpm
или же alien
, Мне удалось найти версию RPM, но я не смог вывести двоичный файл, потому что ни один из инструментов, основанных на сжатии, не работал. Поэтому я загрузил RPM-файл в Convertio и преобразовал его в tar-файл, скачал его, распаковал и положил обратно на место.
Боже, извлек урок, будь осторожен с этими общими библиотеками!