Ich habe gerade ein PPA-Repository für die Entwicklungsversion von GIMP hinzugefügt, erhalte jedoch den folgenden Fehler:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
Warum und wie kann ich es lösen, damit ich die neueste Version anstelle der jetzt verfügbaren verwenden kann?
apt
package-management
jfoucher
quelle
quelle
Antworten:
Laut einem Artikel auf debian-administration.org ,
Vorsichtige Lösung 1:
Per Pablos Antwort können Sie ausführen
sudo apt-get --with-new-pkgs upgrade
, und es werden die zurückgehaltenen Pakete installiert.Dies hat den Vorteil, dass die zurückgehaltenen Pakete nicht als "manuell installiert" gekennzeichnet werden, was weitere Benutzereingriffe erzwingen kann (siehe Kommentare).
Wenn die Lösung von Pablo für Sie funktioniert, stimmen Sie dieser bitte zu. Wenn nicht, kommentieren Sie bitte, was schief gelaufen ist.
Vorsichtige Lösung 2:
Die vorsichtige Lösung ist zu laufen
sudo apt-get install <list of packages kept back>
. In den meisten Fällen erhalten die zurückgehaltenen Pakete so das, was sie für ein erfolgreiches Upgrade benötigen.Aggressive Lösung:
Es ist eine aggressivere Lösung
sudo apt-get dist-upgrade
, die die Installation dieser neuen Abhängigkeiten erzwingt.Aber
dist-upgrade
kann sehr gefährlich sein . Im Gegensatz zu aktualisieren kann es entfernen Pakete bis hin zu komplexen Abhängigkeitssituationen zu lösen. Im Gegensatz zu Ihnen ist APT nicht immer schlau genug zu wissen, ob diese Hinzufügungen und Entfernungen Chaos anrichten könnten.Wenn Sie sich also an einem Ort befinden, an dem die "vorsichtige Lösung" nicht funktioniert, funktioniert dies
dist-upgrade
möglicherweise. Sie sollten jedoch wahrscheinlich mehr über APT lernen und die Abhängigkeitsprobleme "von Hand" durch Installieren und Entfernen beheben Pakete von Fall zu Fall.Stellen Sie sich das wie das Reparieren eines Autos vor. Wenn Sie Zeit haben und mit einem Schraubenschlüssel zurechtkommen, können Sie sich beruhigen, wenn Sie die Reparatur selbst durchführen. Wenn Sie Glück haben, können Sie Ihr Auto bei Ihrer Cousine abstellen
dist-upgrade
und hoffen, dass sie sich auskennt.quelle
dist-upgrade
auf einem stabilen System zu warnen , wie viele der anderen Antworten unten gezeigt haben. Persönlich denke ich, dass es eine einfachere / sicherere Antwort gibt, die beworben werden muss: apt-get install <Liste der pkgs>sudo apt-get dist-upgrade
auch Pakete entfernt werden können. Daher ist es am besten, immer die Liste der vorgenommenen Änderungen zu überprüfen, bevor Sie diesen zustimmen, wenn sie ausgeführt werdensudo apt-get dist-upgrade
.apt-get upgrade
Pakete entfernt werden können? Dies ist immer dann der Fall, wenn andernfalls ein Versionskonflikt auftritt. Denken Sie anllvm3.6
vs.llvm3.6v5
(wobei "v5" bedeutet, dass es mit kompiliert wurdegcc 5
). Diese beiden können nicht nebeneinander existieren , nur einer von beiden kann auf dem System verbleiben. Ja,dist-upgrade
vielleicht werden auch einige Pakete entfernt, aber das würde nicht nurdist-upgrade
dazu führen. unter Umständenupgrade
auch.Wann immer Sie vom Befehl
apt-get upgrade
die Nachricht erhaltendist-upgrade
Wenn Sie dann eines oder alle zurückgehaltenen Pakete aktualisieren möchten, ohne ein Distributions-Upgrade durchzuführen (dies ist , wenn ich mich richtig erinnere, das Gleiche), geben Sie den folgenden Befehl ein:Dadurch werden die zurückgehaltenen Probleme behoben, und Sie werden aufgefordert, zusätzliche Pakete usw. zu installieren, wie in anderen Antworten erläutert.
quelle
apt-get upgrade <list of packages>
wiederholeapt-get upgrade
, werden die betreffenden Pakete als nicht mehr erforderlich aufgeführt, und ich kannapt autoremove
sie entfernen, was ich tue, und dann ein letztes,apt-get upgrade
und sie werden nicht mehr als aufgeführt zurückgehalten ... Sehr seltsam. Irgendwelche Gedanken?apt-get install
auch Pakete entfernt, wenn dies zur Behebung von Abhängigkeiten erforderlich ist, oder muss ein separaterapt-get remove
Befehl ausgeführt werden, um diesen Teil des Aktualisierungsprozesses auszuführen ?apt autoremove
Dann werden diese nicht verwendeten Abhängigkeiten entfernt.sudo apt-get --with-new-pkgs upgrade
was würde nicht Seite auswirken Pakete verursachen als manuell installiert werden markiertapt-get dist-upgrade
ist gefährlich für stabile Umwelt,Anwendungsfall: Kernel-Upgrade zurückgehalten, Sie möchten nur den Kernel aktualisieren, nicht die gesamte Distribution aktualisieren.
Besserer Umgang mit zurückgehaltenen Paketen:
Wenn Sie das Paket zurückbehalten haben, sollten Sie die Option Upgradable Packages (Aktualisierbare Pakete) oben in der Liste sehen.
Ihr zurückgehaltenes Paket ist installiert.
quelle
apt-get dist-upgrade
ist nur gefährlich, wenn Sie schlechte Repositories haben/etc/apt/sources.list*
. Es ist gut zu wissen, dass alle Paketedist-upgrade
aktualisiert werden, aber mit den Standard-Repositorys sollte dies in Ordnung sein. Nicht mit gefährlich sein könnte, wie Sie Sicherheitsupdates verpassen könnten.dist-upgrade
apt-get dist-upgrade
Pakete können sowohl entfernt als auch hinzugefügt werden, aber es ist nicht wirklich gefährlich. Jeder Paketinstallationsbefehl kann schwerwiegende Schäden verursachen, wenn Sie Probleme mit Ihrersources.list
Datei haben ! Ein regulärerapt-get upgrade
Befehl installiert jedes Paket von jeder aktivierten Softwarequelle.dist-upgrade
ist auf diese Weise nicht eindeutig. Darüber hinausaptitude
ist esapt-get dist-upgrade
in einer Version, in der der Fehler 831768 nicht behoben ist, viel gefährlicher, eine Operation auszuführen, zumindest auf amd64 .sudo aptitude safe-upgrade
Warum versuchst du nicht diese Unix SE Antwort :
apt
Befehl ( freundliche Alternative zuapt-get
) teilen Sie diese Option.Verwenden Sie
apt install <pkg>
stattdessen pkg als "manuell installiert" !! Um es wieder als "automatisch installiert" zu markieren, verwenden Sieapt-mark auto <pkg>
(siehe auch Unterbefehlshowmanual
). Weitere Informationen zu dieser Antwort .quelle
apt-mark auto <pkg>
sollte nur notwendig sein, um ein Paket als automatisch installiert zu markieren ( hier die Manpage ).sudo apt-get --with-new-pkgs upgrade
werden die Pakete immer noch als "zurückgehalten" angezeigt. Keine Fehlermeldung.Es gibt normalerweise zwei Gründe, warum diese Meldung angezeigt wird.
Wenn ein Upgrade des Programms (über
sudo apt-get upgrade
) dazu führen würde, dass Pakete hinzugefügt oder entfernt werden, wird das Programm zurückgehalten. Sie könnensudo apt-get dist-upgrade
in diesem Fall verwenden, die dann anbieten, die zusätzlichen Programme hinzuzufügen oder zu entfernen.Dies ist ziemlich häufig und normalerweise kein Problem. Gelegentlich (besonders während eines Ubuntu-Alphas)
dist-upgrade
bietet a an, viele andere Programme zu entfernen. In diesem Fall möchten Sie es wahrscheinlich abbrechen.Wenn das Programm von Paketen oder Versionen abhängt, die nicht verfügbar sind, wird das Programm zurückgehalten. Sie können unter diesen Umständen wirklich nichts anderes tun, als zu warten, da das Paket im Grunde genommen deinstallierbar ist. Dies kann passieren, wenn Pakete nicht mehr in der richtigen Reihenfolge zum Repository hinzugefügt werden, wenn ein Paket umbenannt wird oder wenn ein Paket kein virtuelles Paket mehr bereitstellt.
quelle
apt-get dist-upgrade
weigerte sich, es zu installieren. Die Prüfung des Pakets mit Eignung ergab, dass es von einem Paket abhängt, das nicht verfügbar ist. Ich muss wohl warten.Sie können auch versuchen:
sudo aptitude safe-upgrade
.Es ist sicherer als
full-upgrade
(ursprünglich als dist-upgrade bezeichnet), da "Pakete nur entfernt werden, wenn sie nicht verwendet werden".Von
man aptitude
:quelle
Höchstwahrscheinlich werden diese Pakete zurückgehalten, da ihre Installation zu Abhängigkeitsinkonsistenzen führen würde. Dies kann entweder passieren, weil Sie Archive in der aktiven Entwicklung (ppas) verwenden oder weil der von Ihnen verwendete Spiegel nicht vollständig aktualisiert wurde.
Warten Sie im letzten Fall einfach, bis die Abhängigkeiten aufgelöst sind und beim nächsten Mal installiert werden.
Bearbeiten:
Es gibt eine andere Möglichkeit, dass Pakete zurückgehalten werden, wenn sie zurückgehalten werden oder wenn sie angeheftet sind.
quelle
dist-upgrade
. Wenn Sie dies dennochdist-upgrade
möchten, lesen Sie die zu installierenden NEUEN Pakete und die zu entfernenden Pakete, bevor Sie fortfahren.apt-get install --reinstall <packages>
.Dies liegt normalerweise daran, dass das Paket eine Abhängigkeit hinzugefügt hat und das Upgrade diese nicht ohne Erlaubnis für Sie hinzufügen möchte.
Wenn du läufst:
Dann sollten die neuen Versionen zusammen mit ihrer neuen Abhängigkeit installiert werden.
quelle
Das hat bei mir funktioniert
quelle
aptitude upgrade
für mich gearbeitet.Ubuntu 14.04
und ich habe keineaptitude
Kommandozeileapt-get dist-upgrade
gab mir die gleiche Nachricht, aber das löste es für mich. Ich hatte ein Paket, das das Upgrade eines anderen Pakets brach. Ich brauchte den von mir installierten nicht, alsoaptitude full-upgrade
gab ich die Option, ihn zu entfernen, damit alles andere aktualisiert werden konnte.Ich habe festgestellt, dass aptitude das Upgraden von Paketen besser macht, wenn sich die Versionen nur geringfügig unterscheiden. Ich hatte eine Situation wie diese:
Dies hat apt-get dazu gebracht, das Update zurückzuhalten, aber aptitude hat es in Ordnung gebracht. Ich bin nicht sicher, welcher Algorithmus verwendet wird, um zu bestimmen, ob ein Paket aktualisiert werden soll oder nicht. Ich denke, diese beiden hatten die gleiche Version, nur einen anderen "Qualifier". Aber in jedem Fall würde apt-get es nicht aktualisieren, aber aptitude würde es aktualisieren.
quelle
In meinem Fall waren zurückgehaltene Pakete solche, die sich auf Linux-Header und Kernel bezogen. Ich habe versucht, ein Problem zu lösen, bei dem im Infobereich ein rotes Ausrufezeichen angezeigt wird und Pakete nicht aktualisiert werden können.
Um das Problem zu lösen, musste ich weder dist-upgrade noch manual apt-get install xxx verwenden .
Was ich getan und geholfen habe, war einfach und sauber :
Ich musste das Grub-Update und seine Konfiguration manuell bestätigen.
Dann habe ich nur eine Weile mit dem Computer gearbeitet und dann ist wieder der Standard-Update-Dialog erschienen, der endlich den Abschnitt "Ubuntu Base" mit Kernel und verwandten enthält. Das Update verlief problemlos und ich sehe keine zurückgehaltenen Pakete mehr.
Es ist auch sehr wichtig zu beachten, dass diese * buntu-Updates, einschließlich der Kernel-Updates, für den Ruhezustand empfindlich sind. Ich habe dieses Problem mehrmals und löse es immer, indem ich den Computer neu starte und die obigen Schritte durchführe.
Also vielleicht wäre das gerade genug ?!
(Die hier beschriebene Situation bezieht sich auf mein Xubuntu 15.10 Ende Dezember 2015)
quelle
Ich bin auf dieses Problem gestoßen, als ein neuer Kernel veröffentlicht wurde. (Möglicherweise, weil ich instabile Updates aktiviert habe.) Ich fand, dass die Installation am einfachsten über das grafische Installationsprogramm von Ubuntu (
update-manager
) erfolgt.quelle
Ich bin auf dieses Problem mit synaptic gestoßen, weil es anscheinend hängen geblieben ist. Um dies zu beheben, habe ich es neu gestartet und erneut versucht.
Dann entdeckte ich eine informative Nachricht als Teil des Pakets mit einigen Nachinstallationsanweisungen für mich.
Ich musste " Details " drücken und dann " q ", um die Nachricht zu beenden, und dann ging es normal weiter.
quelle
Dies sieht nach dem richtigen Weg aus, das zurückgehaltene Paket erneut zu installieren:
apt-get install --reinstall libjpeg-progs
Zumindest hat das bei mir
libjpeg-progs
geklappt, als nach dem Upgrade von Ubuntu 14.04 auf 16.04 feststeckte. Ich bin sicher, dass Sie das gleiche mit jeder anderen zurückgehaltenen App tun können, zgimp
.Quelle: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
quelle
--reinstall
.In der Tat ist der Schalter, den Sie benötigen,
dselect-upgrade
der Abhängigkeiten für die jeweilige betroffene Paketgruppe installiert / entfernt.quelle
Ich habe alle Beiträge gelesen und festgestellt, dass es viele interessante Erklärungen gibt. Ich habe alle ausprobiert, aber keine vollständigen Ergebnisse erzielt. Ich habe ein Problem mit mysql-utilities, das ich nicht aktualisieren konnte. Die Aktualisierung wurde vom System vorgeschlagen. Also möchte ich einige Schritte zeigen, um es zu tun. Natürlich werde ich in einigen Augenblicken alle oben genannten Beiträge wiederholen. Hier ist mein Fehler, ja ich habe ihn durch bereits vorhandene Beiträge gefunden, aber was soll ich als nächstes tun?
Der nächste Schritt ist:
Die Ergebnisse sehen Sie im Bild unten. Ich entferne das Paket und überprüfe dies per Befehl:
Ergebnisse - Gut! Später habe ich diese neue Version des Pakets korrekt installiert.
Auf diese Weise können wir meiner Meinung nach mehr neuen Leuten helfen, da wir mit anderen Paketen die gleichen Schritte ausführen können.
Einmal tut es mir leid, als ich an einigen Stellen andere Beiträge wiederholte.
quelle
{}
Taste im Editor, um ihn richtig zu formatieren.Ubuntu 18.04 bietet eine neuere, optimierte Syntax, über
apt
die anstelle von verwendet werden kannapt-get
.quelle