So che pacman -Su
aggiorna tutti i pacchetti. Ma come posso ottenere solo l'elenco dei pacchetti che devono essere aggiornati?
So che pacman -Su
aggiorna 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 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.
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 -Qu
sia la risposta corretta alla domanda di OP. Assicurati solo di eseguire pacman -Su
prima di installare qualsiasi pacchetto.
pacman -Sy
di 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-pages
ottenere solo le ultime pagine man sarebbe perfetto (le pagine man non hanno dipendenze e non sono richieste da nessun altro pacchetto).
pacman -Sy
e correre pacman -S nvidia
che 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, checkupdates
fornisce un modo per farlo senza richiedere root o rovinare il /var/lib/pacman
database. 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 -Sy
sulla tua cartella temporanea.pacman -Qu
nella cartella temporanea.
pacman -Sy
" (fonte: wiki.archlinux.org/index.php/… )