Как разрешить конфликты пакетов между Ubuntu и GIMP?

В Ubuntu 18.04 (Корица) пакет cpp-7 зависит именно от версии 7.3.0-27ubuntu1~18.04 пакета gcc-7-base:

$ aptitude why gcc-7-base
i   cpp-7 Depends gcc-7-base (= 7.3.0-27ubuntu1~18.04)

Между тем, пакет libgfortran4 зависит именно от версии 7.3.0-16ubuntu3 той же упаковки gcc-7-base:

$ apt-cache show libgfortran4
Package: libgfortran4
...
Depends: gcc-7-base (= 7.3.0-16ubuntu3), libc6 (>= 2.27), libgcc1, libquadmath0

а также libgfortran4 не будет установлен, если у меня уже установлена ​​другая версия пакета:

$ sudo apt-get install libgfortran4
...
The following packages have unmet dependencies:
 libgfortran4 : Depends: gcc-7-base (= 7.3.0-16ubuntu3) but 7.3.0-27ubuntu1~18.04 is to be installed
                Depends: libquadmath0 but it is not going to be installed

cpp-7 находится в графе зависимостей ubuntu-desktop, libgfortran4 находится в графе зависимостей gimp, Не означает ли это, что никто не может установить GIMP из репозиториев в Ubuntu 18.04? Пожалуйста, поправьте меня, если я ошибаюсь, но я определенно не могу.

Чтобы сделать вопрос еще более сводящим с ума, apt-cache showpkg показывает, что две разные версии gcc-7-base приходят из того же хранилища и имеют тот же хеш 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

Это означает (опять же, поправьте меня, если я ошибаюсь), что они точно такой же код. Таким образом, здесь нет фактического конфликта зависимостей, только один из ярлыков.

Как это происходит и как это исправить? Например, есть ли способ сказать мне cpp-7 или же libgfortran4 что можно принять другую версию gcc-7-baseпотому что это точно такой же код? Нужно ли привлекать сопровождающего (-ых) к пакету?

Изменить: несколько дней назад я разместил вопрос по этой теме. Текущий вопрос - это суженный результат работы, которую я проделал за это время.

Изменить: Это мои активные источники:

$ grep -Ev '(^#|^ *$|deb-src)' /etc/apt/sources.list /etc/apt/sources.list.d/*
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
/etc/apt/sources.list:deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main
/etc/apt/sources.list.d/keybase.list:deb http://prerelease.keybase.io/deb stable main
/etc/apt/sources.list.d/keybase.list.save:deb http://prerelease.keybase.io/deb stable main
/etc/apt/sources.list.d/vscode.list~:deb [arch=amd64] http://packages.microsoft.com/repos/vscode stable main

Там комментируется deb-src для обновлений,

# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

но ничего не комментируется или не комментируется для обновлений, которые просто deb, Должен ли я добавить строку

deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

?

Редактировать: Добавление

deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

к моему /etc/apt/sources.list файл, то $ sudo apt-get update работал. GIMP установлен как положено с $ sudo apt-get install gimp, Спасибо вам всем!

3 ответа

Решение

Этот тип проблемы обычно решается с помощью простого apt update,

Давайте посмотрим, почему, запросив базу данных Madison для доступных 18.04 версий gcc-7-base а также libgfortran4,

$ rmadison gcc-7-base
 gcc-7-base | 7.3.0-16ubuntu3       | bionic         | amd64, arm64, armhf, i386, ppc64el, s390x
 gcc-7-base | 7.3.0-27ubuntu1~18.04 | bionic-updates | amd64, arm64, armhf, i386, ppc64el, s390x

$ rmadison libgfortran4
 libgfortran4 | 7.3.0-16ubuntu3       | bionic         | amd64, arm64, armhf, i386, ppc64el, s390x
 libgfortran4 | 7.3.0-27ubuntu1~18.04 | bionic-updates | amd64, arm64, armhf, i386, ppc64el, s390x

Ты это видишь libgfortran4 является бионической (без обновлений) версией и имеет бионическую (без обновлений) зависимость. gcc-7-base, с другой стороны, использует более новую зависимость bionic-updates.

Существует две распространенные причины такого рода рассинхронизации между базовым репозиторием и его соответствующим репозиторием обновлений в одной системе.

  1. Пользователь недавно отключил хранилище -updates. Достаточно легко проверить и исправить в /etc/apt/sources.list или в панели управления вашего программного обеспечения и источников.

  2. Пользователь просто не запускается apt update через некоторое время обновить (обновить) локальную базу данных apt доступных пакетов из обоих источников. Это тоже легко исправить.

Ваш файл /etc/apt/sources.list должен иметь некоторую комбинацию зеркал и источников, которая складывается из:

deb [mirror URL] bionic main
deb [mirror URL] bionic-updates main
deb [mirror URL] bionic-security main

Необязательный universe, multiverse, а также restricted репо могут быть включены в те же строки.

Другим вариантом является установка версии GIMP. Я понимаю, что некоторые люди не любят снимки, но это может быть более приемлемым решением для обычного пользователя Linux.

sudo snap install gimp

В дополнение к принятому ответу: Если у вас включены только источники по умолчанию и список последних пакетов (apt update) и по-прежнему сталкиваются с такими конфликтами в базовых пакетах, таких как gimp, затем сообщают об ошибке. Это то, что должно быть исправлено сопровождающим пакета и что, вероятно, довольно легко исправить для него. Это также может повлиять на больше людей, чем только вы. Такие ошибки случаются время от времени, но сопровождающие должны знать.

Конечно, вы должны убедиться, что ваша конфигурация и состояние пакета не были проблемой раньше, потому что, если вы, например, получили gimp (или некоторые из его зависимостей) из стороннего репозитория, сопровождающие Ubuntu не смогут вам помочь.

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