Wie kann festgestellt werden, welche Pakete in Arch Linux aktualisiert werden müssen?

8

Ich weiß, dass pacman -Sualle Pakete aktualisiert werden. Aber wie kann ich nur die Liste der Pakete erhalten, die aktualisiert werden müssen?

Eugene Yarmash
quelle

Antworten:

11

Auf der Manpage so etwas wie

pacman -Syu

um die Datenbank auf die neueste Version zu synchronisieren, gefolgt von

pacman -Qu

zu

-u, --upgrades

Restrict or filter output to packages that are out of date on the

lokales System. (Es werden nur Paketversionen verwendet, um veraltete Pakete zu finden. Ersetzungen werden hier nicht aktiviert.) Diese Option funktioniert am besten, wenn die Synchronisierungsdatenbank mit -Sy aktualisiert wird.

Iain
quelle
1
GEFAHR : Die Dokumentation sagt "nie laufen pacman -Sy" (Quelle: wiki.archlinux.org/index.php/… )
blippy
1
@blippy Dieses Dokument war nicht vorhanden, als diese Antwort geschrieben wurde. Die früheste Überarbeitung erfolgt einige Monate später . Darüber hinaus wurde die Erklärung, auf die Sie sich beziehen, erst (23. Oktober 2015) [ wiki.archlinux.org/… ) über 4 Jahre später in das Dokument aufgenommen . Anstatt so melodramatisch zu sein, sollten Sie nur die Antwort bearbeitet und das Dokument als Grund für Ihre Änderungsanforderung angegeben haben. Beachten Sie auch, dass die Manpage auch jetzt noch keine derartigen Warnungen enthält.
user9517
2
Ich möchte nur auch klarstellen, dass der Grund für die Nichtausführung darin pacman -Sybesteht, die Installation von Paketen aus verschiedenen Paketdatenbankaktualisierungen zu vermeiden. zB pacman -S <something>können Sie ein anderes Paket und Abhängigkeiten als geben pacman -Sy && pacman -S <something>. Aus ihrer Dokumentation geht jedoch hervor, dass dies pacman -Sy && pacman -Qudie richtige Antwort auf die Frage von OP ist. Stellen Sie einfach sicher, dass Sie eventuell ausgeführt werden, pacman -Subevor Sie Pakete installieren.
aaaaaa
1
Ich möchte nur klarstellen, dass der Artikel nicht sagt, dass pacman -Syan und für sich schlecht ist. Es sagt nicht einmal, dass es "schlecht" oder "gefährlich" ist. Es wird lediglich angegeben, dass ein teilweises Upgrade nicht unterstützt wird und dass Sie es vermeiden sollten. Mit anderen Worten, das Ausführen pacman -Sy und dann das Ausführen pacman -S <some package with dependencies>hat das Potenzial, etwas anderes zu zerstören, das dieselben Abhängigkeiten aufweist. Laufen wie etwas pacman -Sy && pacman -S man-pagesbekommen nur die neuesten Mann-Seiten wären völlig in Ordnung (man-pages hat keine Abhängigkeiten und wird nicht durch andere Pakete erforderlich).
Drew Chapin
Es ist 5 Tage später, wenn Sie vergessen haben, dass Sie gelaufen sind pacman -Syund laufen, pacman -S nvidiadass Sie wahrscheinlich etwas kaputt machen werden.
Drew Chapin
7
checkupdates

Die im pacman-Paket enthaltenen Bash-Skript-Checkup-Daten bieten eine sichere Möglichkeit, nach Upgrades für installierte Pakete zu suchen, ohne gleichzeitig ein Systemupdate auszuführen.

Systemwartung

Panagiotis Dimopoulos
quelle
Dies sollte die richtige Antwort sein
Nitz
0

Wie @Panagiotis erwähnt, checkupdatesbietet dies eine Möglichkeit, dies zu tun, ohne dass root erforderlich ist oder Ihre /var/lib/pacmanDatenbank durcheinander gebracht wird . Hier ist eine minimale Version:

TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"

mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null

Es funktioniert durch:

  1. Erstellen eines temporären Ordners für Ihre Datenbank.
  2. Symlinking your /var/lib/pacman/local.
  3. Wird pacman -Syin Ihrem temporären Ordner ausgeführt.
  4. Abfrage über pacman -Quin Ihrem temporären Ordner.
Mateen Ulhaq
quelle