Dans Ubuntu 18.04 (Cinnamon), le package cpp-7
dépend précisément de la version 7.3.0-27ubuntu1~18.04
du package gcc-7-base
:
$ aptitude why gcc-7-base
i cpp-7 Depends gcc-7-base (= 7.3.0-27ubuntu1~18.04)
Pendant ce temps, le package libgfortran4
dépend précisément de la version 7.3.0-16ubuntu3
du même package gcc-7-base
:
$ apt-cache show libgfortran4
Package: libgfortran4
...
Depends: gcc-7-base (= 7.3.0-16ubuntu3), libc6 (>= 2.27), libgcc1, libquadmath0
et libgfortran4
ne s'installera pas si l'autre version du paquet est déjà installée:
$ 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
est dans le graphe de dépendance de ubuntu-desktop
. libgfortran4
est dans le graphe de dépendance de gimp
name__. Cela ne signifie-t-il pas que personne ne peut jamais installer GIMP à partir des référentiels sous Ubuntu 18.04? Corrigez-moi si je me trompe, mais je ne peux certainement pas.
Pour rendre le problème encore plus embêtant, apt-cache showpkg
montre que les deux versions différentes de gcc-7-base
proviennent du même référentiel et ont le même hachage 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
ce qui signifie (encore une fois, corrigez-moi si je me trompe), c'est exactement le même code. Donc, il n'y a pas de conflit de dépendance réel ici, seulement un des labels.
Comment cela se produit-il et comment puis-je le réparer? Par exemple, est-il possible pour moi de dire à cpp-7
ou à libgfortran4
qu'il est acceptable d'accepter l'autre version de gcc-7-base
, car c'est exactement le même code? Dois-je impliquer le (s) responsable (s) du paquet?
Edit: Il y a quelques jours, j'ai posté une question sur ce sujet. La question actuelle est le résultat limité du travail que j'ai fait entre-temps.
Edit: Voici mes sources actives:
$ 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
Il y a un deb-src
commenté pour les mises à jour,
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
mais rien de commenté ou de non commenté pour les mises à jour qui n'est que deb
name__. Dois-je ajouter une ligne
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
?
Edit: Ajout
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
dans mon fichier /etc/apt/sources.list
, puis $ Sudo apt-get update
a fonctionné. GIMP a été installé comme prévu avec $ Sudo apt-get install gimp
. Merci à tous!
Ce type de problème est généralement résolu par un simple apt update
.
Voyons pourquoi en interrogeant la base de données madison pour connaître les versions 18.04 disponibles de gcc-7-base
et 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
Vous pouvez constater que libgfortran4
est la version bionique (non mise à jour) et possède la dépendance bionique (non mise à jour). gcc-7-base
utilise quant à lui la nouvelle dépendance bionic-updates.
Ce type de désynchronisation entre un référentiel de base et son référentiel -updates correspondant sur un même système a deux raisons courantes.
L'utilisateur a récemment désactivé le référentiel -updates. Assez facile à vérifier et à réparer dans /etc/apt/sources.list ou dans le panneau de configuration Logiciels et sources.
L'utilisateur n'a simplement pas exécuté apt update
depuis longtemps pour actualiser la base de données locale d'apt (pdate) des paquets disponibles des deux sources. C'est une solution facile, aussi.
Votre fichier /etc/apt/sources.list devrait avoir une combinaison de miroirs et de sources qui ajoute:
deb [mirror URL] bionic main
deb [mirror URL] bionic-updates main
deb [mirror URL] bionic-security main
Les pensions universe
name____, multiverse
et restricted
facultatives peuvent être incluses sur les mêmes lignes.
Une autre option consiste à installer la version instantanée de GIMP. Je me rends compte que certaines personnes n'aiment pas les clichés, mais cela peut être une solution plus acceptable pour les utilisateurs occasionnels de Linux.
Sudo snap install gimp
En plus de la réponse acceptée: si seules les sources par défaut sont activées et la dernière liste de packages (apt update
) et que vous rencontrez toujours de tels conflits sur des packages de base tels que gimp, signalez un bogue. Ceci est quelque chose, ce qui devrait être corrigé par le mainteneur du paquet et ce qui est probablement assez facile à réparer pour lui. Cela peut également toucher plus de personnes que vous. Ces bugs se produisent de temps en temps, mais les responsables doivent le savoir.
Bien sûr, vous devez vous assurer que l'état de votre configuration et de votre package n'est pas le problème avant, car, par exemple, gimp (ou certaines de ses dépendances) d’un référentiel tiers, les mainteneurs d’ubuntu ne peuvent pas vous aider.