Warum verhindern, dass ein Paket aktualisiert wird? Angenommen, Sie installieren ein Paket, das älter ist als die Version, die in Debian-, Ubuntu- oder Linux Mint-Repositories verfügbar ist, oder Sie wissen, dass ein Update Probleme verursacht, und Sie möchten alle Pakete minus einem (oder zwei, drei …) aktualisieren.
Hier ist ein Beispiel. Ich verwende auch den Chromium-Browser Hardwarebeschleunigungs-Patches aus dem Saiarcot895-dev PPA in Ubuntu 18.10. Damit die Hardwarebeschleunigung mit Nvidia-Treibern funktioniert, ist ein gepatchtes vdpau-va-Treiberpaket erforderlich, das in diesem PPA für das neueste Ubuntu 18.10 noch nicht verfügbar ist. Glücklicherweise kann das Ubuntu 18.04-Paket in Ubuntu 18.10 installiert werden, aber jedes Upgrade durch „apt upgrade“ oder die Verwendung des Software Updater aktualisiert dieses Paket, was ich nicht möchte. In diesem Fall würde ich also dieses Paket von Upgrades fernhalten, um alle anderen Pakete aktualisieren zu können, ohne mich darum kümmern zu müssen.
Beachten Sie, dass das Verhindern zukünftiger Upgrades eines Pakets in einigen Situationen zu Problemen führen kann, wenn das von Ihnen gespeicherte Paket als Abhängigkeit von einem anderen Paket verwendet wird, das aktualisiert werden kann. Versuchen Sie also, nicht zu viele Pakete vom Upgrade abzuhalten, insbesondere Bibliotheken.
Aus derselben Serie:So finden Sie verfügbare Pakete von der Befehlszeile in Debian, Ubuntu oder Linux Mint [APT]
Hier sind 3 Möglichkeiten, um zu verhindern, dass ein Paket in Debian, Ubuntu, Linux Mint aktualisiert wird.
1. Verhindern Sie Paketaktualisierungen mit einer GUI:Synaptic Package Manager
Synaptic Package Manager, ein grafisches Gtk-Paketverwaltungsprogramm für apt, kann Pakete sperren, was verhindert, dass sie aktualisiert werden.
Es ist wichtig zu beachten, dass die Verwendung von Synaptic zum Sperren von Paketen nicht verhindert, dass sie über die Befehlszeile aktualisiert werden – indem apt upgrade
ausgeführt wird oder apt-get upgrade
aktualisiert weiterhin ein Paket, das in Synaptic gesperrt ist. Das Sperren von Paketen in Synaptic verhindert Paket-Upgrades mit der Software Updater-App von Ubuntu und möglicherweise anderen grafischen Paketmanagern. Es verhindert jedoch nicht, dass Pakete mit der Linux Mint Update Manager-Anwendung aktualisiert werden. Also empfehle ich die Verwendung von apt-mark
oder dpkg
(siehe unten), um zu verhindern, dass Pakete aktualisiert werden.
Sie können den Synaptic Package Manager mit diesem Befehl installieren:
sudo apt install synaptic
Um zu verhindern, dass ein Paket mit Synaptic aktualisiert wird, suchen Sie es, wählen Sie das Paket aus und klicken Sie auf das Synaptic-Menü Package -> Lock Version
:
Sie können das Paket auch auf die gleiche Weise entsperren.
Um alle blockierten Pakete in Synaptic anzuzeigen, klicken Sie auf Status
unten links und dann auf Pinned
über Status
Abschnitt:
2. Verhindern, dass ein Paket mit apt-mark
aktualisiert wird
Das Verhindern, dass Pakete mit apt-mark aktualisiert werden, sollte verhindern, dass sie mit Ubuntus Software Updater sowie Befehlszeilen-Upgrades (apt upgrade
/ apt-get upgrade
).
Sie können ein Paket für zukünftige Upgrades (und für die automatische Entfernung) mit apt-mark
verwenden mit diesem Befehl:
sudo apt-mark hold PACKAGE
Ersetzen Sie PACKAGE
mit dem Paket, das Sie nicht aktualisieren möchten.
Sie können überprüfen, welche Pakete als hold
gekennzeichnet sind (damit sie nicht aktualisiert werden) mit:
apt-mark showhold
Um einen Hold zu entfernen (damit das Paket aktualisiert werden kann), verwenden Sie:
sudo apt-mark unhold PACKAGE
Für beide hold
und unhold
Sie können mehrere Pakete angeben, genau wie beim Installieren von Software mit apt
(trennen Sie die Pakete mit einem Leerzeichen).
3. Verhindern Sie Paketaktualisierungen mit dpkg
Vor einiger Zeit gab es einige grafische Paketmanager, die den apt-mark-hold-Status ignorierten. Ich bin mir nicht sicher, ob das immer noch der Fall ist, aber um sicherzugehen (und falls Sie eine alte Debian / Ubuntu / Linux Mint-Version verwenden), gibt es eine andere Möglichkeit, Paketaktualisierungen in Ubuntu, Linux Mint oder Debian zu erhalten hier verhindern:dpkg.
Um zu verhindern, dass ein Paket mit dpkg aktualisiert wird, verwenden Sie:
echo "PACKAGE hold" | sudo dpkg --set-selections
Ersetzen Sie PACKAGE
mit dem Paket, das Sie nicht aktualisieren möchten.
Sie können alle Packet Holds mit diesem Befehl anzeigen:
dpkg --get-selections | grep hold
Zum Entsperren (Upgrade des Pakets zulassen) verwenden Sie:
echo "PACKAGE install" | sudo dpkg --set-selections
nicht wie apt-mark
, erlaubt diese Lösung nicht die gleichzeitige Angabe mehrerer Pakete.