Sé que pacman -Suactualiza todos los paquetes. Pero, ¿cómo puedo obtener solo la lista de paquetes que necesitan actualizarse?
Sé que pacman -Suactualiza todos los paquetes. Pero, ¿cómo puedo obtener solo la lista de paquetes que necesitan actualizarse?
Respuestas:
Mirando la página del manual algo así
pacman -Syu
para sincronizar la base de datos con la última versión seguida de
pacman -Qu
a
-u, - actualizaciones
Restrict or filter output to packages that are out of date on thesistema local (Solo se usan versiones de paquetes para encontrar paquetes obsoletos, los reemplazos no se verifican aquí.) Esta opción funciona mejor si la base de datos de sincronización se actualiza usando -Sy.
pacman -Syes para evitar la instalación de paquetes de diferentes actualizaciones de la base de datos de paquetes. por ejemplo, pacman -S <something>puede darle un paquete y dependencias diferentes a pacman -Sy && pacman -S <something>. Sin embargo, según su documentación, parece pacman -Sy && pacman -Quser la respuesta correcta a la pregunta de OP. Solo asegúrate de ejecutarlo pacman -Suantes de instalar cualquier paquete.
pacman -Sysea malo en sí mismo. Ni siquiera dice que es "malo" o "peligroso". Simplemente indica que una actualización parcial no es compatible y que debe evitarla. En otras palabras, correr pacman -Sy y luego correr pacman -S <some package with dependencies>tiene el potencial de romper algo más que tiene las mismas dependencias. Ejecutar algo como pacman -Sy && pacman -S man-pagessolo obtener las últimas páginas de manual estaría perfectamente bien (las páginas de manual no tienen dependencias y ningún otro paquete lo requiere).
pacman -Syy corriste pacman -S nvidia, es probable que rompas algo.
checkupdates
Las actualizaciones de comprobación de script bash, incluidas con el paquete pacman, proporcionan una forma segura de verificar las actualizaciones de los paquetes instalados sin ejecutar una actualización del sistema al mismo tiempo.
Como mencionó @Panagiotis, checkupdatesproporciona una manera de hacerlo sin requerir root o desordenar su /var/lib/pacmanbase de datos. Aquí hay una versión mínima:
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
Funciona por:
/var/lib/pacman/local.pacman -Syen su carpeta temporal.pacman -Qude su carpeta temporal.
pacman -Sy" (fuente: wiki.archlinux.org/index.php/… )