Kali Linux — неудовлетворенные зависимости / поврежденная система

Вопрос или проблема

Недавно я серьезно испортил свою виртуальную машину 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 для автоматической установки или исправления зависимостей, это приводило к ошибкам, так как пакеты, от которых зависели другие, были удалены, и установка новых версий была невозможна без устранения конфликтов.

Шаги для решения проблемы

  1. Создайте резервную копию данных: Если вы еще этого не сделали, воспользуйтесь вашим старым снимком системы для создания резервной копии всех важных данных, используя SCP или другие инструменты.

  2. Проверка состояния APT:

    sudo apt update
    sudo apt autoclean
    sudo apt autoremove
  3. Исправление зависимостей:
    Попробуйте различные команды для исправления зависимостей. Ваша основная цель — установить все отсутствующие зависимости:

    sudo apt --fix-broken install
    sudo apt install -f
  4. Повторная установка удаленных пакетов:
    Если вышеуказанные команды не помогли, вам может потребоваться установить ключевые пакеты вручную. Например:

    sudo apt install kali-desktop-core kali-desktop-xfce

    Если возникнут ошибки зависимостей, попробуйте установить пакеты по одному или удалить конфликующие версии.

  5. Обновление системы:
    После того как вы восстановили основные пакеты, выполните:

    sudo apt update
    sudo apt upgrade
  6. Рассмотрите возможность переустановки:
    Если ни один из вышеупомянутых шагов не помог и система по-прежнему выводит ошибки, возможно, будет проще и быстрее переустановить Kali Linux на новую виртуальную машину. Скопируйте данные из поврежденной системы на новую.

Заключение

Проблема с "невыполненными зависимостями" в Kali Linux всегда может быть вызвана мешающим взаимодействием пакетов. Наилучший способ избежать подобных ситуаций в будущем — это регулярное создание резервных копий виртуальных машин и ознакомление с документацией по установленным пакетам. Помните, что использование системных снимков является важной практикой, которую не стоит игнорировать.

Пусть ваш опыт станет уроком для других технических специалистов, и всегда проверяйте, какие зависимости имеют удаляемые вами пакеты.

Оцените материал
Добавить комментарий

Капча загружается...