Я использую 64-битную версию Crunchbang на базе Debian.
Я пытался исправить определенную проблему с libc6 и наивно последовал совету из ответа askUbuntu (связь), что заставило меня выполнить следующую команду:
sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6
Теперь я не могу запустить ни одну команду терминала или программу GUI. На терминале я получаю множество ошибок. Вот ls
, например:
ls: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32
sed: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32
/usr/bin/env: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32
дата: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32
sed: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32
Программы с графическим интерфейсом просто не запускаются или выдают странные сообщения об ошибках.
Короче говоря, у меня нет возможности удалить симлинк, который вызвал эту катастрофу. Что я могу сделать, чтобы мой компьютер снова заработал?
решение1
Папка /lib32 может содержать только 32-битные библиотеки. Вы создали ссылку libc.so.6 в /lib32, которая указывает на 64-битную версию того же файла. Получите 32-битную версию libc.so.6 и поместите ее в папку /lib32.
решение2
Поскольку вы испортили свою libc, а от нее, как правило, зависит работа всех полезных утилит, то единственный удобный вариант — загрузиться с Live CD/USB и исправить ошибку, или вставить свой жесткий диск в чужой компьютер (не загружайтесь с него) и исправить ошибку оттуда.
Чтобы исправить это, отмените то, что вы сделали.
Однако ваш неудачный выбор опции -f
и ln
предполагаемая неспособность создать резервную копию любого исходного файла означает, что если он /lib/x86_64-linux-gnu/libc.so.6
действительно существовал до того, как вы выполнили эту команду, он был перезаписан. В этом случае лучшим вариантом будет получить копию из другого места, желательно совместимой версии, а затем принудительно переустановить libc, как только вы снова заставите свою машину работать, просто чтобы убедиться, что все нужные версии нужных файлов находятся в нужных местах.
Если у вас изначально не было этого файла, то не беспокойтесь.
После того, как вы все это исправите, рассмотрите возможность использования менее рискованных решений, например, размаскировки и установки правильных пакетов для вашей платформы и т. д., вместо того, чтобы возиться с символическими ссылками на критические библиотеки.