Обновление дистрибутива Debian с Bookworm до Trixie завершилось неудачей из-за множества проблем с зависимостями.

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

Я следовал руководству с этой страницы https://wiki.debian.org/DebianUpgrade, чтобы обновить свою дистрибутив Debian. Всё шло хорошо до окончательного полного обновления, и возник ад зависимостей, как указано ниже.

$ sudo apt-get full-upgrade
[sudo] пароль для karim: 
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Вам может понадобиться запустить 'apt --fix-broken install', чтобы исправить это.
Следующие пакеты имеют неудовлетворённые зависимости:
 girepository-tools : Зависит: libglib2.0-0t64 (= 2.82.4-1), но он не установлен
 gnome-system-monitor : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 kwayland-integration : Зависит: libqt5core5t64 (>= 5.15.2~), но он не установлен
                        Зависит: libqt5gui5t64 (>= 5.15.2~), но он не установлен или
                                 libqt5gui5-gles (>= 5.15.2~), но он не установлен
                        Зависит: qtbase-abi-5-15-15
                        Зависит: qtwayland-client-abi-5-15-15
 libadwaita-1-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libalgorithm-diff-xs-perl : Зависит: perl (>= 5.40.0-6), но установлен 5.36.0-7+deb12u1
                             Зависит: perlapi-5.40.0
 libappstream5 : Зависит: libcurl3t64-gnutls (>= 7.63.0), но он не установлен
                 Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libatkmm-1.6-1v5 : Зависит: libatk1.0-0t64 (>= 2.12.0), но он не установлен
                    Зависит: libglib2.0-0t64 (>= 2.34.0), но он не установлен
 libc-bin : Зависит: libc6 (< 2.37), но установлен 2.40-4
 libc6-dbg : Зависит: libc6 (= 2.36-9+deb12u8), но установлен 2.40-4
 libc6-dev : Зависит: libc6 (= 2.36-9+deb12u8), но установлен 2.40-4
             Зависит: libc-dev-bin (= 2.36-9+deb12u8)
 libcairo-gobject2 : Зависит: libglib2.0-0t64 (>= 2.68.0), но он не установлен
 libcairo2 : Зависит: libpng16-16t64 (>= 1.6.2), но он не установлен
 libcrypt-dev : Зависит: libcrypt1 (= 1:4.4.33-2), но установлен 1:4.4.36-5
 libedataserver-1.2-27t64 : Зависит: libcamel-1.2-64t64 (>= 3.53.2), но он не установлен
                            Зависит: libglib2.0-0t64 (>= 2.68.0), но он не установлен
 libgck-2-2 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgcr-4-4 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgio-2.0-dev : Зависит: libglib2.0-0t64 (= 2.82.4-1), но он не установлен
                  Рекомендуется: libgio-2.0-dev-bin (= 2.82.4-1)
                  Рекомендуется: libglib2.0-bin (= 2.82.4-1)
 libgirepository-2.0-0 : Зависит: libglib2.0-0t64 (= 2.82.4-1), но он не установлен
 libglib2.0-dev : Зависит: libglib2.0-bin (= 2.82.4-1)
 libglib2.0-dev-bin : Зависит: libgio-2.0-dev-bin (= 2.82.4-1)
 libglibmm-2.4-1t64 : Зависит: libglib2.0-0t64 (>= 2.62.0), но он не установлен
 libglibmm-2.68-1t64 : Зависит: libglib2.0-0t64 (>= 2.82), но он не установлен
 libgnome-autoar-0-0 : Зависит: libarchive13t64 (>= 3.4.0), но он не установлен
                       Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgnome-bg-4-2t64 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgnome-desktop-4-2t64 : Зависит: gnome-desktop3-data (>= 44.1-1), но установлен 43.2-2
                           Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgnome-rr-4-2t64 : Зависит: gnome-desktop3-data (>= 44.1-1), но установлен 43.2-2
                      Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgs10 : Зависит: libcups2t64 (>= 2.3~b6), но он не установлен
           Зависит: libpng16-16t64 (>= 1.6.2), но он не установлен
 libgtk-4-1 : Зависит: libcups2t64 (>= 1.7.0), но он не установлен
              Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
              Зависит: libpng16-16t64 (>= 1.6.2), но он не установлен
              Рекомендуется: libgtk-4-media-gstreamer
 libgtkmm-4.0-0 : Зависит: libglib2.0-0t64 (>= 2.44.0), но он не установлен
 libgtop-2.0-11 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libgudev-1.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libharfbuzz-gobject0 : Зависит: libglib2.0-0t64 (>= 2.14.0), но он не установлен
 libharfbuzz0b : Зависит: libglib2.0-0t64 (>= 2.32.0), но он не установлен
 libical3t64 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libngtcp2-crypto-gnutls8 : Зависит: libgnutls30t64 (>= 3.8.2), но он не установлен
 libnm0 : Зависит: libglib2.0-0t64 (>= 2.44.0), но он не установлен
          Зависит: libgnutls30t64 (>= 3.7.2), но он не установлен
 libnsl2 : Зависит: libtirpc3t64 (>= 1.0.2), но он не установлен
 libpam-systemd : Зависит: systemd (= 252.30-1~deb12u2)
 libpango-1.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libpangocairo-1.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libpangoft2-1.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libpangomm-1.4-1v5 : Зависит: libglib2.0-0t64 (>= 2.34.0), но он не установлен
 libpangomm-2.48-1t64 : Зависит: libglib2.0-0t64 (>= 2.34.0), но он не установлен
 libpangoxft-1.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libpng-dev : Зависит: libpng16-16t64 (= 1.6.44-3), но он не установлен
 libqt5quick5 : Зависит: libqt5core5t64 (>= 5.15.1), но он не установлен
                Зависит: libqt5gui5t64 (>= 5.1.0), но он не установлен
                Зависит: libqt5gui5t64 (>= 5.15.1), но он не установлен или
                         libqt5gui5-gles (>= 5.15.1), но он не установлен
                Зависит: libqt5network5t64 (>= 5.15.1), но он не установлен
                Зависит: qtbase-abi-5-15-15
                Зависит: qtdeclarative-abi-5-15-15
 librtmp1 : Зависит: libgnutls30t64 (>= 3.8.1), но он не установлен
            Зависит: libhogweed6t64, но он не установлен
            Зависит: libnettle8t64, но он не установлен
 libsoup-2.4-1 : Зависит: libglib2.0-0t64 (>= 2.62.0), но он не установлен
 libsoup-3.0-0 : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libsoup-gnome-2.4-1 : Зависит: libglib2.0-0t64 (>= 2.38.0), но он не установлен
 libssl-dev : Зависит: libssl3 (= 3.0.14-1~deb12u2)
 libtirpc-dev : Зависит: libtirpc3t64 (= 1.3.4+ds-1.3+b1), но он не установлен
 libtotem-plparser18 : Зависит: libarchive13t64 (>= 3.0.4), но он не установлен
                       Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 libwireplumber-0.5-0 : Зависит: libglib2.0-0t64 (>= 2.68), но он не установлен
                        Зависит: libpipewire-0.3-0t64 (>= 1.1.81), но он не установлен
 libxmlb2 : Зависит: libglib2.0-0t64 (>= 2.54.0), но он не установлен
 locales : Зависит: libc-bin (> 2.40)
 mutter-common-bin : Зависит: libglib2.0-0t64 (>= 2.80.0), но он не установлен
 network-manager : Зависит: libcurl3t64-gnutls (>= 7.24.0), но он не установлен
                   Зависит: libglib2.0-0t64 (>= 2.68.0), но он не установлен
                   Зависит: libgnutls30t64 (>= 3.7.2), но он не установлен
                   Зависит: libreadline8t64 (>= 6.0), но он не установлен
 openssh-sftp-server : Зависит: openssh-client (= 1:9.2p1-2+deb12u3)
 pavucontrol : Зависит: libglib2.0-0t64 (>= 2.32.0), но он не установлен
 pipewire : Зависит: pipewire-bin (= 0.3.65-3+deb12u1)
 pipewire-bin : Зависит: libpipewire-0.3-modules (= 1.2.7-1), но установлен 0.3.65-3+deb12u1
                Зависит: libasound2t64 (>= 1.2.5), но он не установлен
                Зависит: libpipewire-0.3-0t64 (= 1.2.7-1), но он не установлен
                Зависит: libreadline8t64 (>= 6.0), но он не установлен
 pipewire-pulse : Зависит: pipewire (= 1.2.7-1), но установлен 0.3.65-3+deb12u1
 python3 : Предварительно зависит: python3-minimal (= 3.11.2-1+b1), но установлен 3.12.6-1
 qml-module-qtqml : Зависит: libqt5core5t64 (>= 5.15.1), но он не установлен
                    Зависит: qtdeclarative-abi-5-15-15
 qml-module-qtquick-dialogs : Зависит: libqt5qml5 (>= 5.15.15+dfsg~), но установлен 5.15.8+dfsg-3
                              Зависит: libqt5core5t64 (>= 5.15.15+dfsg~), но он не установлен
                              Зависит: libqt5gui5t64 (>= 5.15.15+dfsg~), но он не установлен или
                                       libqt5gui5-gles (>= 5.15.15+dfsg~), но он не установлен
                              Зависит: qtbase-abi-5-15-15
                              Зависит: qtdeclarative-abi-5-15-15
 samba-common-bin : Зависит: samba-common (= 2:4.17.12+dfsg-0+deb12u1), но установлен 2:4.21.2+dfsg-3
 vlc-plugin-base : Зависит: vlc-data (= 3.0.21-0+deb12u1), но установлен 3.0.21-2
 wget : Зависит: libgnutls30t64 (>= 3.8.1), но он не установлен
        Зависит: libnettle8t64, но он не установлен
 wireplumber : Зависит: libglib2.0-0t64 (>= 2.68), но он не установлен
               Зависит: libpipewire-0.3-0t64 (>= 1.0.2), но он не установлен
               Зависит: pipewire (>= 1.0.2), но установлен 0.3.65-3+deb12u1
 x11-apps : Зависит: libpng16-16t64 (>= 1.6.2), но он не установлен
 xdg-desktop-portal : Зависит: libglib2.0-0t64 (>= 2.70.0), но он не установлен
                      Зависит: libpipewire-0.3-0t64 (>= 0.3.1), но он не установлен
 xwayland : Зависит: libtirpc3t64 (>= 1.0.2), но он не установлен
E: Неудовлетворённые зависимости. Попробуйте 'apt --fix-broken install' без указания пакетов (или укажите решение).

У меня нет резервных копий системы. Есть ли шанс, что я могу спасти свою систему, даже если потребуется сложное вмешательство?

Ответ или решение

К сожалению, выполнение полной переустановки или обновления дистрибутива Debian с одной версии на другую может привести к так называемому "зависимостному аду", особенно при переходе с версии Bookworm на Trixie. Основной проблемой, с которой вы столкнулись, являются нарушения зависимостей пакетов.

Анализ проблемы

Ваша система требует установки множества библиотек и пакетов, которые должны соответствовать определённым версиям. Например, для работы пакета girepository-tools требуется библиотека libglib2.0-0t64 версии 2.82.4-1, но этот пакет не установлен. Аналогичная ситуация наблюдается и для других зависимостей: множество пакетов зависят от библиотек с конкретными версиями, которые не установлены.

Возможные решения

  1. Команда apt --fix-broken install:
    Первоначально попробуйте выполнить команду, которую система предлагает:

    sudo apt --fix-broken install

    Это может помочь установить недостающие зависимости. Однако если у вас остались старые пакеты в системе, это может не решить проблему.

  2. Обновление списка пакетов:
    Убедитесь, что у вас актуальный список пакетов. Используйте команды:

    sudo apt update
    sudo apt upgrade
  3. Удаление конфликтующих пакетов:
    Если предыдущие шаги не помогли, возможно, придётся удалить некоторые конфликтующие пакеты. Определите, какие пакеты вызывают проблемы, и удалите их:

    sudo apt remove <имя_пакета>
  4. Ручная установка зависимостей:
    Вы можете попробовать вручную установить необходимые версии зависимостей. Например, если требуется libglib2.0-0t64, выполните:

    sudo apt install libglib2.0-0t64
  5. Использование aptitude:
    Утилита aptitude может предоставить более интуитивное решение для конфликтов зависимостей. Установите её, если она ещё не установлена, и запустите:

    sudo aptitude

    Эта утилита предложит возможные варианты решения зависимостей.

  6. Предварительное восстановление:
    Если система начинает проявлять ещё более серьёзные неполадки, стоит задуматься о восстановлении состояния системы с использованием инструмента восстановления.

Заключение

Даже в случае отсутствия резервных копий, есть шанс спасти систему, однако процесс может потребовать времени и терпения. Начните с корректировки зависимостей и выполнения команд, предложенных выше. Следите за результатами каждой команды, чтобы понять, какие изменения действительно помогают решить проблему. В случае сложностей, не стесняйтесь обратиться за помощью на специализированные форумы, где опытные пользователи Debian смогут предложить дополнительные варианты устранения неполадок.

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

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