Вопрос или проблема
Недавно я серьезно испортил свою виртуальную машину Kali. Я случайно установил пакет (“fontconfig”). Я не знал, что это такое и почему его установка заняла так много времени. Я попытался удалить его и понял, что, когда удаление началось, было удалено много пакетов. Я быстро отменил удаление и сделал снимок. Я попытался перезагрузить, чтобы убедиться, что моя система все еще стабильна, но теперь она загружается только до черного экрана с мигающим курсором.
Я откатил снимок и смог вернуться в состояние сразу после удаления. Я знал, что какой-то конфигурационный или важный пакет был удален из-за моей ошибки.
Посматривая на term.log, я вижу последние записи. При проверке эти пакеты точно были удалены.
Журнал начат: 2021-04-26 21:50:52
(Чтение базы данных ... ^M(Чтение базы данных ... 5%^M(Чтение базы данных ... 10%^M(Чтение базы данных ... 15%^M(Чтение базы данных ... 20%^M(Чтение базы данных ... 25%^M(Чтение базы данных ... 30%^M(Чтение базы данных ... 35%^M(Чтение базы данных ... 40%
Удаление apt-listchanges (3.22) ...^M
Удаление kali-desktop-xfce (2020.1.13) ...^M
Удаление atril (1.24.0-1) ...^M
Удаление binwalk (2.2.0+dfsg1-1) ...^M
Удаление bless (0.6.0-7) ...^M
Удаление cherrytree (0.39.4-0) ...^M
Удаление chromium-driver (81.0.4044.92-1) ...^M
Удаление kali-desktop-core (2020.2.21) ...^M
Удаление chromium (81.0.4044.92-1) ...^M
Удаление commix (3.0-20191111-0kali1) ...^M
Удаление crackmapexec (5.0.2~dev-0kali2) ...^M
Удаление creddump7 (0.1+git20190429-0kali1) ...^M
Удаление crowbar (4.1-0kali1) ...^M
Удаление legion (0.3.6b-0kali2) ...^M
Удаление cutycapt (0.0~svn10-0.1+b2) ...^M
Удаление faraday (3.10.2-0kali1) ...^M
^X^X^X
Я пытался исправить проблему, пытаясь переустановить / исправить сломанные пакеты в apt. Но я постоянно сталкиваюсь с неудовлетворенными зависимостями.
Я также попытался полностью очистить /var/lib/dpkg/status, но это ничего не дало, чтобы исправить проблему.
Команды, которые я пробовал:
sudo apt update
sudo apt install -f
sudo apt --fix-broken install
sudo apt upgrade
sudo apt auto-remove
sudo apt-get clean && sudo apt-get update
sudo apt-get autoclean
sudo apt-get clean
apt --fix-broken install
sudo apt --fix-broken install
apt update && apt install -f
sudo apt update && apt install -f
Выполнение большинства команд выше в итоге приводит к попытке запустить fix-broken, что в итоге приводит к выводу, который вы видите в конце этого поста.
Похоже, что многое было удалено. Является ли единственным способом исправить это вручную установить все это? Как мне поступить, чтобы установить все это? Когда я пытаюсь sudo apt install
первый пакет (libpangoft2-1.0-0), я также получаю неудовлетворенные зависимости.
Что я могу сделать в этот момент?
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Возможно, вы захотите выполнить 'apt --fix-broken install', чтобы исправить это.
Следующие пакеты имеют неудовлетворенные зависимости:
gir1.2-pango-1.0 : Зависит от: libpangoft2-1.0-0 (= 1.44.7-4), но 1.46.2-3 должен быть установлен
guymager : Зависит от: libqt5gui5 (>= 5.0.2), но он не будет установлен или
libqt5gui5-gles (>= 5.0.2), но он не будет установлен
keditbookmarks : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
kio : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
kolourpaint : Зависит от: libqt5gui5 (>= 5.11.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.11.0~), но он не будет установлен
kwayland-integration : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libdbusmenu-qt5-2 : Зависит от: libqt5gui5 (>= 5.0.2), но он не будет установлен или
libqt5gui5-gles (>= 5.0.2), но он не будет установлен
libkf5auth5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5bookmarks5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5completion5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5configgui5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5configwidgets5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5crash5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5globalaccel-bin : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5globalaccel5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5globalaccelprivate5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5guiaddons5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5iconthemes-bin : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5iconthemes5 : Зависит от: libqt5gui5 (>= 5.12.2), но он не будет установлен или
libqt5gui5-gles (>= 5.12.2), но он не будет установлен
libkf5idletime5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5itemviews5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5jobwidgets5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5kdelibs4support5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5kdelibs4support5-bin : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5kiofilewidgets5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5kiogui5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5kiowidgets5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5notifications5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5parts5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5sane5 : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
libkf5solid5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5sonnetui5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5textwidgets5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5wallet-bin : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5waylandclient5 : Зависит от: libqt5gui5 (>= 5.12.2), но он не будет установлен или
libqt5gui5-gles (>= 5.12.2), но он не будет установлен
libkf5widgetsaddons5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5windowsystem5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libkf5xmlgui5 : Зависит от: libqt5gui5 (>= 5.12.0~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.0~), но он не будет установлен
libpangocairo-1.0-0 : Зависит от: libpangoft2-1.0-0 (= 1.44.7-4), но 1.46.2-3 должен быть установлен
libpangoft2-1.0-0 : Зависит от: libpango-1.0-0 (= 1.46.2-3), но 1.44.7-4 должен быть установлен
Ломает: libpangoft2-1.0-0:i386 (!= 1.46.2-3), но 1.44.7-4 должен быть установлен
libpangoft2-1.0-0:i386 : Ломает: libpangoft2-1.0-0 (!= 1.44.7-4), но 1.46.2-3 должен быть установлен
libpangoxft-1.0-0 : Зависит от: libpangoft2-1.0-0 (= 1.44.7-4), но 1.46.2-3 должен быть установлен
libphonon4qt5-4 : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
libpolkit-qt5-1-1 : Зависит от: libqt5gui5 (>= 5.1.0), но он не будет установлен или
libqt5gui5-gles (>= 5.1.0), но он не будет установлен
libqscintilla2-qt5-15 : Зависит от: libqt5gui5 (>= 5.6.0~beta), но он не будет установлен или
libqt5gui5-gles (>= 5.6.0~beta), но он не будет установлен
libqt5charts5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5designer5 : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
libqt5help5 : Зависит от: libqt5gui5 (>= 5.0.2), но он не будет установлен или
libqt5gui5-gles (>= 5.0.2), но он не будет установлен
libqt5multimedia5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5multimedia5-plugins : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5multimediagsttools5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5multimediawidgets5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5opengl5 : Зависит от: libqt5gui5 (>= 5.1.0), но он не будет установлен
Зависит от: libqt5gui5 (>= 5.12.5), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5), но он не будет установлен
libqt5printsupport5 : Зависит от: libqt5gui5 (>= 5.11.0~rc1), но он не будет установлен или
libqt5gui5-gles (>= 5.11.0~rc1), но он не будет установлен
libqt5quick5 : Зависит от: libqt5gui5 (>= 5.1.0), но он не будет установлен
Зависит от: libqt5gui5 (>= 5.12.5), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5), но он не будет установлен
libqt5svg5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5waylandclient5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5waylandcompositor5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqt5webkit5 : Зависит от: libqt5gui5 (>= 5.9.0~beta), но он не будет установлен или
libqt5gui5-gles (>= 5.9.0~beta), но он не будет установлен
libqt5widgets5 : Зависит от: libqt5gui5 (>= 5.12.5), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5), но он не будет установлен
libqt5x11extras5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
libqtermwidget5-0 : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
ophcrack : Зависит от: libqt5gui5 (>= 5.0.2), но он не будет установлен или
libqt5gui5-gles (>= 5.0.2), но он не будет установлен
phonon4qt5-backend-vlc : Зависит от: libqt5gui5 (>= 5.0.2), но он не будет установлен или
libqt5gui5-gles (>= 5.0.2), но он не будет установлен
python3-pyqt5 : Зависит от: libqt5gui5 (>= 5.1.0), но он не будет установлен
Зависит от: libqt5gui5 (>= 5.12.2), но он не будет установлен или
libqt5gui5-gles (>= 5.12.2), но он не будет установлен
python3-pyqt5.qtopengl : Зависит от: libqt5gui5 (>= 5.1.0), но он не будет установлен
qt5-gtk-platformtheme : Зависит от: libqt5gui5 (>= 5.10.0), но он не будет установлен или
libqt5gui5-gles (>= 5.10.0), но он не будет установлен
qt5-gtk2-platformtheme : Зависит от: libqt5gui5 (>= 5.10.0), но он не будет установлен или
libqt5gui5-gles (>= 5.10.0), но он не будет установлен
qt5-style-plugin-cleanlooks : Зависит от: libqt5gui5 (>= 5.2.0), но он не будет установлен или
libqt5gui5-gles (>= 5.2.0), но он не будет установлен
qt5-style-plugin-motif : Зависит от: libqt5gui5 (>= 5.3.0), но он не будет установлен или
libqt5gui5-gles (>= 5.3.0), но он не будет установлен
qt5-style-plugin-plastique : Зависит от: libqt5gui5 (>= 5.2.0), но он не будет установлен или
libqt5gui5-gles (>= 5.2.0), но он не будет установлен
qterminal : Зависит от: libqt5gui5 (>= 5.7.0), но он не будет установлен или
libqt5gui5-gles (>= 5.7.0), но он не будет установлен
qtwayland5 : Зависит от: libqt5gui5 (>= 5.12.5+dfsg~), но он не будет установлен или
libqt5gui5-gles (>= 5.12.5+dfsg~), но он не будет установлен
sqlitebrowser : Зависит от: libqt5gui5 (>= 5.3.0), но он не будет установлен или
libqt5gui5-gles (>= 5.3.0), но он не будет установлен
E: Неудовлетворенные зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение).
Запустите следующую команду:
sudo apt-get update && sudo apt-get autoclean && sudo apt-get clean && sudo apt-get autoremove
Это очистит большинство ошибок.
Когда закончите, перезагрузите и выполните sudo apt-get update, за которым следует sudo apt-get upgrade.
Если это не сработает, вам, скорее всего, придется переустановить Kali. Лучше всего сделать это, создав новую машину и скопировав на нее все данные.
Примечание: Я делаю резервные копии всех своих виртуальных машин на другом компьютере, чтобы в случае необходимости восстановить рабочую машину.
Не было способа легко решить эту проблему. К счастью, у меня был снимок из декабря. Я смог сначала подключиться к системе через scp и сделать резервную копию того, что мне нужно, затем откатиться к снимку из декабря и исправить все изменения между сейчас и тогда.
Делайте резервные копии, люди. Также читайте документацию. Урок усвоен.
Ответ или решение
Решение проблемы "Невыполненные зависимости / Поломанная система" в Kali Linux
Описание проблемы
Вы столкнулись с серьёзной проблемой на вашей виртуальной машине Kali Linux после случайной установки и последующей попытки удаления пакета fontconfig
. Как вы заметили, во время удаления были удалены множество важных пакетов, что привело к тому, что ваша система перестала загружаться (черный экран с мигающим курсором). После отката к снимку системы, проблема все равно не устранена, и вы наблюдаете невыполненные зависимости при попытках установки пакетов.
Анализ ситуации
Давайте разберем ситуацию более подробно. Удаление пакета fontconfig
привело к тому, что ряд зависимостей, необходимых для работы других пакетов, был также удален. В частности, лог файлов говорит о том, что вы потеряли такие важные элементы, как:
kali-desktop-xfce
kali-desktop-core
Various kali tools (например, binwalk, bless и пр.)
Эти пакеты не только не были удалены, но и могли быть основными компонентами вашего рабочего окружения. Когда вы пытались использовать команды apt
для автоматической установки или исправления зависимостей, это приводило к ошибкам, так как пакеты, от которых зависели другие, были удалены, и установка новых версий была невозможна без устранения конфликтов.
Шаги для решения проблемы
-
Создайте резервную копию данных: Если вы еще этого не сделали, воспользуйтесь вашим старым снимком системы для создания резервной копии всех важных данных, используя SCP или другие инструменты.
-
Проверка состояния APT:
sudo apt update sudo apt autoclean sudo apt autoremove
-
Исправление зависимостей:
Попробуйте различные команды для исправления зависимостей. Ваша основная цель — установить все отсутствующие зависимости:sudo apt --fix-broken install sudo apt install -f
-
Повторная установка удаленных пакетов:
Если вышеуказанные команды не помогли, вам может потребоваться установить ключевые пакеты вручную. Например:sudo apt install kali-desktop-core kali-desktop-xfce
Если возникнут ошибки зависимостей, попробуйте установить пакеты по одному или удалить конфликующие версии.
-
Обновление системы:
После того как вы восстановили основные пакеты, выполните:sudo apt update sudo apt upgrade
-
Рассмотрите возможность переустановки:
Если ни один из вышеупомянутых шагов не помог и система по-прежнему выводит ошибки, возможно, будет проще и быстрее переустановить Kali Linux на новую виртуальную машину. Скопируйте данные из поврежденной системы на новую.
Заключение
Проблема с "невыполненными зависимостями" в Kali Linux всегда может быть вызвана мешающим взаимодействием пакетов. Наилучший способ избежать подобных ситуаций в будущем — это регулярное создание резервных копий виртуальных машин и ознакомление с документацией по установленным пакетам. Помните, что использование системных снимков является важной практикой, которую не стоит игнорировать.
Пусть ваш опыт станет уроком для других технических специалистов, и всегда проверяйте, какие зависимости имеют удаляемые вами пакеты.