Normalerweise sperre ich auf meinem Ubuntu 16.04 LTS Paketversionen mit APT-Pin-Funktionalität.
Wenn ich zum Beispiel meld
an Version 1.5.3-1ubuntu1 anheften möchte, erstelle ich die folgende Pin-Datei:
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-meld
Package: meld
Pin: version 1.5.3-1ubuntu1
Pin-Priority: 1337
EOF
Diese Datei gilt Einstellungen systemweit: apt
, apt-get
, aptitude
und GUI - Tools wie synaptic
und muon
respektiert sie.
Ich kenne andere Mechanismen - apt-mark
. Angenommen. Mein Ausgangspunkt - Ich habe meld_1.5.3-1ubuntu1 manuell installiert , sein Pin wurde entfernt.
$ apt-mark showhold
$ apt-cache policy meld
meld:
Installed: 1.5.3-1ubuntu1
Candidate: 3.14.2-1
Version table:
3.14.2-1 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
*** 1.5.3-1ubuntu1 100
100 /var/lib/dpkg/status
Dann halte ich die installierte Version.
$ sudo apt-mark hold meld
meld set on hold.
$ dpkg -l | grep meld
hi meld 1.5.3-1ubuntu1 all graphical tool to diff and merge files
Die APT-Markierung zeigt an, dass sie gehalten wird. Habe apt-cache policy meld
aber keine Änderungen
$ apt-cache policy meld
meld:
Installed: 1.5.3-1ubuntu1
Candidate: 3.14.2-1
Version table:
3.14.2-1 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
*** 1.5.3-1ubuntu1 100
100 /var/lib/dpkg/status
apt-get upgrade
Berichte , die meld
sich zurückgehalten :
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
meld
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Aber wenn ich aptitude
im interaktiven Modus starte, habe ich meld
in Upgradable Packages :
Actions Undo Package Resolver Search Options Views Help
C-T: Menu ?: Help q: Quit u: Update g: Preview/Download/Install/Remove Pkgs
aptitude 0.7.4
--\ Upgradable Packages (1)
--\ gnome - The GNOME Desktop Environment (1)
--\ universe - Unsupported Free Software. (1)
ih meld 1.5.3-1ubuntu1 3.14.2-1
und wenn ich versehentlich Aktionen -> Ausstehende Aktionen abbrechen auswähle , wird das Halten entfernt.
Soweit ich verstehen kann, werden Markierungen synaptic
ignoriert. Die Funktionalität der Sperrversion funktioniert anders. wird hier als Installiert (aktualisierbar) aufgeführt . Die Schaltfläche Alle Upgrades markieren wählt sie nicht automatisch aus, aber das Paket wird möglicherweise versehentlich von Mark for Upgrade aktualisiert .apt-mark
meld
Muon arbeitet auf die gleiche Weise mit Paketen, die von gehalten werden apt-mark
. Aber was interessant ist seine Option Lock at Current Version schreibt Pin-Datei in /etc/apt/preferences.d/meld
.
Verstehe ich richtig, dass APT-Pin zuverlässiger ist als apt-mark
?
Antworten:
Ja, das Feststecken ist zuverlässiger als
apt-mark
.Was ich entdeckt habe:
letzte 12-14 Jahre Synaptic verwendet eine eigene Pinning-Datei (/ var / lib / synaptic / settings ) - siehe Fehler 42178 auf dem Launchpad . Für systemweit kann man Symlink zwischen
/etc
und Synaptic einstellenDaher ist es eine Problemumgehung. Das Sperren von Versionen in Synaptic wird nicht empfohlen (diese Datei wird nicht von
apt-get
und gelesenaptitude
).Muon verwendet systemweite PIN-Dateien pro Anwendung in
/etc/apt/preferences.d
.aptitude
hat zwei Fehler:apt-mark
vollständig respektiert (siehe meinen Fehler 1747189 am Launchpad ).apt-mark
gehen verloren, nachdem Sie auf Aktionen -> Ausstehende Aktionen abbrechen geklickt haben (siehe meinen Fehler 1747191 auf dem Launchpad ).aber in 18.04 LTS
aptitude
haben keine solchen Fehler, es ist großartig.Meine Schlussfolgerung lautet also wie folgt:
apt-mark
Kann nur verwendet werden, wenn Sie Software nur mit installieren / entfernen / aktualisierenapt-get
. Andernfalls sollten Sie Pinning (dh/etc/apt/preferences.d/
) verwenden. Dies ist zuverlässiger und unkomplizierter.Hinweis: Um zu verhindern, dass die Pin-Priorität der Paketinstallation negativ ist :
zum Beispiel
Pin-Priority: -10
.quelle
apt-mark
18.04 allgemein anerkannt wird? In einem Kommentar zu Ihrem Ticket wurde festgestellt, dass der Fehler anscheinend nicht den 18.04. Betrifft, aber nicht sicher ist, ob es um den 18.04. Andere Macken gibt ...apt-mark
hier nicht zuverlässig ist. Daher werde ich empfehlen und hier weiterhin Pinning verwenden.