Je viens d'ajouter un référentiel PPA pour la version de développement de GIMP, mais j'obtiens cette erreur:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
Pourquoi et comment puis-je le résoudre pour pouvoir utiliser la dernière version au lieu de la version actuelle?
apt
package-management
jfoucher
la source
la source
Réponses:
Selon un article sur debian-administration.org ,
Solution prudente 1:
Selon la réponse de Pablo , vous pouvez exécuter
sudo apt-get --with-new-pkgs upgrade
et installer les packages conservés.Cela présente l'avantage de ne pas marquer les paquets conservés comme "installés manuellement", ce qui pourrait forcer davantage les utilisateurs à intervenir plus tard (voir les commentaires).
Si la solution de Pablo fonctionne pour vous, faites-la passer au vote supérieur. Si non, veuillez commenter ce qui a mal tourné.
Solution prudente 2:
La solution prudente est de courir
sudo apt-get install <list of packages kept back>
. Dans la plupart des cas, cela donnera aux paquets conservés ce dont ils ont besoin pour réussir leur mise à niveau.Solution agressive:
Une solution plus agressive consiste à exécuter
sudo apt-get dist-upgrade
, ce qui forcera l'installation de ces nouvelles dépendances.Mais
dist-upgrade
peut être assez dangereux . Contrairement à la mise à niveau, il peut supprimer des packages pour résoudre des situations de dépendance complexes. Contrairement à vous, APT n’est pas toujours assez intelligent pour savoir si ces ajouts et suppressions pourraient faire des ravages.Donc, si vous vous trouvez dans un endroit où la "solution prudente" ne fonctionne pas,
dist-upgrade
peut fonctionner ... mais vous feriez probablement mieux d'en apprendre un peu plus sur APT et de résoudre les problèmes de dépendance "à la main" en installant et en supprimant forfaits au cas par cas.Pensez-y comme si vous répariez une voiture ... si vous avez le temps et que vous êtes maniable avec une clé, vous obtiendrez une tranquillité d'esprit en lisant et en réparant vous-même. Si vous vous sentez chanceux, vous pouvez déposer votre voiture avec votre cousine
dist-upgrade
et espérer qu'elle connaisse ses affaires.la source
dist-upgrade
d'un système stable comme beaucoup d'autres réponses ci - dessous ont fait remarquer. Personnellement, je pense qu’il existe une solution plus simple et plus sûre qui mérite d’être promue: apt-get install <liste de pkgs>sudo apt-get dist-upgrade
peut également supprimer des paquets. Par conséquent, il est préférable de toujours inspecter la liste des modifications qui seront apportées avant de les accepter, lors de l'exécutionsudo apt-get dist-upgrade
.apt-get upgrade
peut supprimer des paquets? Cela se fera toujours quand il y aurait un conflit de version autrement. Pensez àllvm3.6
vsllvm3.6v5
(avec le "v5" signifiant qu'il a été compilé avecgcc 5
). Ces deux ne peuvent pas coexister , seuls les deux peuvent être conservés dans le système. Donc oui,dist-upgrade
peut supprimer certains paquets également, mais ce n’est pas seulementdist-upgrade
que cela ferait cela; dans certaines circonstances, leupgrade
serait également.Chaque fois que vous recevez
apt-get upgrade
le message de la commandepuis mettre à jour un ou tous les paquets gardés en arrière, sans faire de mise à jour de distribution (c'est ce que
dist-upgrade
fait, si je me souviens bien), est d'émettre la commande:cela résoudra les problèmes qui ont été conservés et demandera l'installation de paquets supplémentaires, etc. comme expliqué par d'autres réponses.
la source
apt-get upgrade <list of packages>
, si je refaisapt-get upgrade
, les paquets en question seront listés comme n'étant plus nécessaires et que je pourrai utiliserapt autoremove
pour les supprimer, ce que je fais, puis un dernierapt-get upgrade
et ils ne sont plus répertoriés comme retenu ... très bizarre. Des pensées?apt-get install
Supprime- t-il également les packages lorsque cela est nécessaire pour résoudre les situations de dépendance gnarly, ou devrez-vous exécuter uneapt-get remove
commande distincte pour accomplir cette partie du processus de mise à niveau?apt autoremove
puis supprime ces dépendances inutilisées.sudo apt-get --with-new-pkgs upgrade
apt-get dist-upgrade
est dangereux pour un environnement stable,Cas d'utilisation: mise à niveau du noyau conservée, vous voulez simplement mettre à niveau le noyau, ne voulez pas mettre à niveau toute la distribution.
Meilleure façon de gérer les colis gardés:
Si vous avez conservé le paquet, vous devriez voir les paquets mis à niveau en haut de la liste.
Votre paquet conservé est installé.
la source
apt-get dist-upgrade
n'est dangereux que si vous avez de mauvais référentiels dans/etc/apt/sources.list*
. Il est bon de savoir quedist-upgrade
met à jour tous les paquets, mais avec les référentiels par défaut, qui devrait être bien. Ne pas utiliserdist-upgrade
pourrait être dangereux, car vous risqueriez de manquer des mises à jour de sécurité.apt-get dist-upgrade
peut supprimer ou ajouter des packages, mais ce n’est pas vraiment dangereux. Toute commande d'installation de paquet peut causer de sérieux dommages si vous rencontrez des problèmes dans votresources.list
fichier ! Uneapt-get upgrade
commande normale installera n'importe quel paquet de n'importe quelle source de logiciel activée.dist-upgrade
n'est pas unique de cette façon. De plus, utiliseraptitude
pour exécuter une opération, du moins sur amd64, est beaucoup plus dangereux que de courirapt-get dist-upgrade
, dans une version où le bogue 831768 n'est pas corrigé.sudo aptitude safe-upgrade
Pourquoi ne pas essayer cette réponse Unix SE :
apt
commande ( alternative amicale àapt-get
) partager cette option.Utiliser à la
apt install <pkg>
place marquera pkg comme "installé manuellement" !! Pour le marquer à nouveau comme "installé automatiquement", utilisezapt-mark auto <pkg>
(voir aussi la sous-commandeshowmanual
). Plus d'infos sur cette réponse .la source
apt-mark auto <pkg>
ne devrait être nécessaire que pour marquer un paquet comme étant installé automatiquement ( ici la page de manuel ).sudo apt-get --with-new-pkgs upgrade
affiche toujours les paquets comme "conservés". Aucun message d'erreur.Il y a normalement deux raisons pour lesquelles vous pouvez voir ce message.
Si la mise à niveau du programme (via
sudo apt-get upgrade
) entraîne l'ajout ou la suppression de packages, le programme est alors retenu. Vous pouvez utilisersudo apt-get dist-upgrade
dans ce cas, qui proposera ensuite d'ajouter ou de supprimer les programmes supplémentaires.Ceci est assez commun et généralement pas un problème. De temps en temps (en particulier lors d'une alpha d'Ubuntu),
dist-upgrade
il vous sera proposé de supprimer beaucoup d'autres programmes, auquel cas vous voudrez probablement l'annuler.Si le programme dépend de packages ou de versions qui ne sont pas disponibles, le programme sera retenu. Vous ne pouvez vraiment rien faire d'autre que d'attendre dans ce cas, car le paquet est fondamentalement désinstallable. Cela peut se produire lorsque des packages sont ajoutés au référentiel dans le désordre, lorsqu'un package est renommé ou lorsqu'un package cesse de fournir un package virtuel.
la source
apt-get dist-upgrade
refusé de l'installer. L'inspection du paquet avec aptitude a montré que cela dépend d'un paquet qui n'est pas disponible. Je suppose que je devrai attendre.Vous pouvez aussi essayer:
sudo aptitude safe-upgrade
.C'est plus sûr que
full-upgrade
(nommé à l'origine dist-upgrade) car "les packages ne seront pas supprimés à moins qu'ils ne soient inutilisés".De
man aptitude
:la source
Très probablement, ces paquets sont conservés, car leur installation créerait des incohérences de dépendance. Cela peut se produire si vous utilisez des archives en cours de développement actif, ppas ou parce que le miroir que vous utilisez n'est pas complètement mis à jour.
Dans le dernier cas, attendez, lorsque les dépendances seront résolues, il sera installé la prochaine fois.
Modifier:
Il existe une autre possibilité: les paquets pourraient être retenus s’ils étaient suspendus ou épinglés.
la source
dist-upgrade
tout. Si vous le souhaitezdist-upgrade
, consultez les nouveaux packages à installer et les packages à supprimer avant de poursuivre.apt-get install --reinstall <packages>
.Cela est généralement dû au fait que le paquet a ajouté une dépendance et que la mise à niveau ne veut pas l'ajouter pour vous sans autorisation.
Si vous courez:
Ensuite, les nouvelles versions doivent être installées avec leur nouvelle dépendance.
la source
Cela a fonctionné pour moi
la source
aptitude upgrade
travaillé pour moi.Ubuntu 14.04
et je n'ai pas deaptitude
ligne de commandeapt-get dist-upgrade
m'a donné le même message, mais cela l'a résolu pour moi. J'avais un paquet qui cassait la mise à jour d'un autre paquet. Je n’avais pas besoin de celui que j’avais installé, alorsaptitude full-upgrade
j’ai eu l’option de le supprimer pour pouvoir mettre à niveau tout le reste.J'ai trouvé qu'aptitude faisait un meilleur travail pour mettre à jour des paquets si les versions diffèrent légèrement. J'ai eu une situation comme celle-ci:
Cela a permis à apt-get de retenir la mise à jour, mais aptitude l'a mise à jour correctement. Je ne sais pas quel algorithme est utilisé pour déterminer si un paquet doit être mis à jour ou non. Je suppose que ces deux-là avaient la même version, mais un "qualificatif" différent. Mais dans tous les cas, apt-get ne le mettrait pas à jour, mais aptitude le ferait.
la source
Dans mon cas, les paquets retenus étaient ceux liés aux en -têtes linux et au noyau. J'y suis arrivé en essayant de résoudre un problème avec un point d'exclamation rouge dans la zone de notification et l'impossibilité de mettre à jour les paquets.
Pour le résoudre, je n'ai pas eu besoin d'utiliser ni dist-upgrade ni apt-get install xxx manuel .
Ce que j'ai fait et que j'ai aidé a été simple et propre :
Je devais confirmer manuellement la mise à jour de Grub et sa configuration.
Ensuite, je viens de travailler avec l'ordinateur pendant un moment, puis un dialogue de mise à jour standard est enfin apparu, y compris la section "Base Ubuntu" avec le noyau et les éléments associés. La mise à jour a été effectuée sans problème et je ne vois plus aucun paquet bloqué.
En outre, il est très important de garder à l'esprit que ces mises à jour * buntu, y compris les mises à jour du noyau, sont sensibles à l'hibernation . J'ai ce problème plusieurs fois et je le résous toujours en redémarrant l'ordinateur et en effectuant les étapes ci-dessus.
Alors peut-être que cela suffirait?!
(la situation décrite ici est liée à mon Xubuntu 15.10 fin décembre 2015)
la source
J'ai rencontré ce problème lorsqu'un nouveau noyau a été publié. (Peut-être parce que les mises à jour instables sont activées.) J'ai trouvé que le moyen le plus simple de procéder à l'installation était via l'installateur graphique d'Ubuntu (
update-manager
).la source
Je me suis heurté à ce problème en utilisant Synaptic car il semblait se bloquer, et pour essayer de résoudre ce problème, j'ai redémarré et essayé à nouveau.
Ensuite, j'ai découvert un message informatif dans le package avec des instructions de post-installation pour moi.
J'ai dû taper " détails ", puis " q " pour quitter après avoir lu le message, puis les choses se sont déroulées normalement.
la source
Cela ressemble à la bonne façon de réinstaller le paquetage sauvegardé:
apt-get install --reinstall libjpeg-progs
Au moins, cela a fonctionné pour moi lorsque je suis
libjpeg-progs
resté bloqué après la mise à niveau d’Ubuntu 14.04 à 16.04. Je suis sûr que vous pouvez faire la même chose avec n'importe quelle autre application conservée, par exemplegimp
.Source: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
la source
--reinstall
, aussi.En fait, le commutateur dont vous avez besoin est celui
dselect-upgrade
qui installe / supprime les dépendances pour l’ensemble de paquets concerné.la source
J'ai lu tous les articles et découvert qu'il existe de nombreuses explications intéressantes. Je les essayais tous mais je n'ai aucun résultat complet. J'ai un problème avec mysql-utilities que je n'ai pas pu mettre à jour. La mise à jour a été proposée par le système. Donc, je veux montrer quelques étapes pour le faire. Bien sûr, je vais répéter dans quelques instants tous les messages susmentionnés. Voici mon erreur, oui je l'ai trouvé par des postes déjà existants, mais que dois-je faire ensuite?
La prochaine étape est:
Les résultats que nous pouvons voir dans l'image ci-dessous. Je retire le paquet et vérifie cela par la commande:
Résultats - bien! Plus tard, j'ai installé cette nouvelle version du paquet correctement.
De cette façon, je pense que cela peut aider davantage de nouvelles personnes, car avec d'autres packages, nous pouvons suivre les mêmes étapes.
Une fois, je suis désolé, lorsque j'ai répété à certains endroits d'autres messages.
la source
{}
bouton dans l'éditeur pour le formater correctement.Ubuntu 18.04 fournit une syntaxe plus récente et rationalisée,
apt
qui peut être utilisée à la place deapt-get
.la source