Come determinare quali pacchetti devono essere aggiornati in Arch Linux?


8

So che pacman -Suaggiorna tutti i pacchetti. Ma come posso ottenere solo l'elenco dei pacchetti che devono essere aggiornati?

Risposte:


11

Guardando la pagina man qualcosa del genere

pacman -Syu

per sincronizzare il database fino all'ultima versione seguita da

pacman -Qu

per

-u, --upgrade

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

sistema locale. (Solo le versioni dei pacchetti vengono utilizzate per trovare pacchetti obsoleti, le sostituzioni non sono selezionate qui.) Questa opzione funziona meglio se il database di sincronizzazione viene aggiornato usando -Sy.


1
PERICOLO : La documentazione dice "non correre mai pacman -Sy" (fonte: wiki.archlinux.org/index.php/… )
blippy,

1
@blippy Quel documento non esisteva quando è stata scritta questa risposta, la sua prima revisione è di alcuni mesi dopo . Inoltre, la dichiarazione a cui fai riferimento non è stata aggiunta al documento fino a (23 ottobre 2015) [ wiki.archlinux.org/… ) oltre 4 anni dopo. Invece di essere così melodrammatico, avresti dovuto modificare la risposta e fare riferimento al documento come motivo per la tua richiesta di modifica. Inoltre, tieni presente che anche ora la pagina man non fornisce tali avvisi.
user9517,

2
voglio solo chiarire anche - il motivo per cui non pacman -Syè in esecuzione è evitare l'installazione di pacchetti da diversi aggiornamenti del database dei pacchetti. ad es. pacman -S <something>potrebbe darti un pacchetto e dipendenze differenti rispetto a pacman -Sy && pacman -S <something>. Dalla loro documentazione, tuttavia, sembra pacman -Sy && pacman -Qusia la risposta corretta alla domanda di OP. Assicurati solo di eseguire pacman -Suprima di installare qualsiasi pacchetto.
aaaaaa,

1
Voglio solo chiarire che l'articolo non dice pacman -Sydi per sé un male. Non dice nemmeno che è "cattivo" o "pericoloso". Sta semplicemente affermando che un aggiornamento parziale non è supportato e che dovresti evitarlo. In altre parole, correre pacman -Sy e poi correre pacman -S <some package with dependencies>ha il potenziale per rompere qualcos'altro che ha le stesse dipendenze. Eseguire qualcosa come pacman -Sy && pacman -S man-pagesottenere solo le ultime pagine man sarebbe perfetto (le pagine man non hanno dipendenze e non sono richieste da nessun altro pacchetto).
Ha disegnato Chapin il

Sono trascorsi 5 giorni quando hai dimenticato di correre pacman -Sye correre pacman -S nvidiache probabilmente romperai qualcosa.
Ha disegnato Chapin il

7
checkupdates

I checkupdate degli script bash, inclusi con il pacchetto pacman, forniscono un modo sicuro per verificare gli aggiornamenti dei pacchetti installati senza eseguire contemporaneamente un aggiornamento del sistema.

Sistema in manutenzione


Questa dovrebbe essere la risposta corretta
Nitz

0

Come accennato da @Panagiotis, checkupdatesfornisce un modo per farlo senza richiedere root o rovinare il /var/lib/pacmandatabase. Ecco una versione minima:

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

Funziona da:

  1. Creazione di una cartella temporanea per il tuo database.
  2. Collegamento simbolico al tuo /var/lib/pacman/local.
  3. In esecuzione pacman -Sysulla tua cartella temporanea.
  4. Interrogazione tramite pacman -Qunella cartella temporanea.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.