Как исправить зависимости пакета 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
тогда он должен вернуться к стандартным / неконфликтным