So che pacman -Suaggiorna tutti i pacchetti. Ma come posso ottenere solo l'elenco dei pacchetti che devono essere aggiornati?
So che pacman -Suaggiorna tutti i pacchetti. Ma come posso ottenere solo l'elenco dei pacchetti che devono essere aggiornati?
Risposte:
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 thesistema 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.
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.
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).
pacman -Sye correre pacman -S nvidiache probabilmente romperai qualcosa.
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.
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:
/var/lib/pacman/local.pacman -Sysulla tua cartella temporanea.pacman -Qunella cartella temporanea.
pacman -Sy" (fonte: wiki.archlinux.org/index.php/… )