Как исправить зависимости пакета mystery

У меня установлена ​​новая версия Ubuntu 18.04.1 на новом ноутбуке, и мусорная ОС уже сама себя загрузила.

Основная проблема в том, что я не могу apt-get install любой пакет, который зависит от gcc-7-base или же gcc-8-base, Например,

libquadmath0 : Depends: gcc-8-base (= 8-20180414-1ubuntu2) but 8.2.0-1ubuntu2~18.04 is installed
libgfortran4 : Depends: gcc-7-base (= 7.3.0-16ubuntu3) but 7.3.0-27ubuntu1~18.04 is installed

В соответствии с apt-cache policyэто текущие версии gcc-7-base или же gcc-8-base:

$ apt-cache policy gcc-7-base
gcc-7-base:
  Installed: 7.3.0-27ubuntu1~18.04
  Candidate: 7.3.0-27ubuntu1~18.04
  Version table:
 *** 7.3.0-27ubuntu1~18.04 100
        100 /var/lib/dpkg/status
     7.3.0-16ubuntu3 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
$ apt-cache policy gcc-8-base
gcc-8-base:
  Installed: 8.2.0-1ubuntu2~18.04
  Candidate: 8.2.0-1ubuntu2~18.04
  Version table:
 *** 8.2.0-1ubuntu2~18.04 100
        100 /var/lib/dpkg/status
     8-20180414-1ubuntu2 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

Установленные версии имеют разные имена, чем версии в репозитории; Версии в репозитории имеют имя, которого ожидают другие пакеты.

$ apt-cache showpkg gcc-7-base показывает, что обе версии имеют одинаковое происхождение "File" и хэш MD5:

$ apt-cache showpkg gcc-7-base
Package: gcc-7-base
Versions: 
7.3.0-27ubuntu1~18.04 (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
                  MD5: b6e93638a6d08ea7a18929d7cf078e5d
...
7.3.0-16ubuntu3 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
                  MD5: b6e93638a6d08ea7a18929d7cf078e5d

(с аналогичным результатом для gcc-8-baseВыложу если кто спросит). Итак, насколько я могу судить, "плохие" (установленные) пакеты - это те же самые пакеты, что и "хорошие" (ожидаемые) пакеты, и из одного и того же источника, но по какой-то причине они имеют разные имена, и это мешает таким вещам, как libquadmath0 а также libgfortran4 от установки.

Веб-поиск "7.3.0-27ubuntu1~18.04" дает эту страницу описания для репозитория bionic-updates как единственный соответствующий хит, но единственные репозитории "обновлений" в моем /etc/apt/sources.list закомментированы, и я никогда сознательно не включал их.

Итак, мой первый вопрос:1) Как появились пакеты 7.3.0-27ubuntu1~18.04 а также 8.2.0-1ubuntu2~18.04 быть установленным на моем компьютере? Есть ли способ узнать это?

Мой второй вопрос2) Как это исправить, используя apt-get? Поскольку версии с наивысшим приоритетом каждого на выходе apt-cache policy являются "правильными" версиями,

$ apt-get remove gcc-7-base
$ apt-get install gcc-7-base

произвести правильную конфигурацию наличия 7.3.0-16ubuntu3 а также 8-20180414-1ubuntu2 установлен для пакетов gcc-7-base а также gcc-8-baseсоответственно?

Для записи я пробовал цикл обновления / обновления / автоудаления, я пробовал apt-get install -fи я попробовал apt-get clean, Ни один из них не имел никакого эффекта вообще.

1 ответ

Ответ на вопрос 1: версии, о которых вы спрашиваете, являются версиями пакетов по умолчанию для 18.04 (это мой вывод): jan@jan-XPS-9550:~$ sudo apt-get install libquadmath0 libgfortran4 Reading package lists... Done Building dependency tree
Reading state information... Done libgfortran4 is already the newest version (7.3.0-27ubuntu1~18.04). libquadmath0 is already the newest version (8.2.0-1ubuntu2~18.04).

Ответ на вопрос 2: Я думаю, что вам лучше всего было бы: apt-get remove --purge libgfortran4 libquadmath0 gcc-7-base gcc-8-base apt-get autoremove reboot (just in case, most likely not needed at all) install packages again тогда он должен вернуться к стандартным / неконфликтным

Другие вопросы по тегам