¿Cómo determinar qué paquetes necesitan actualizarse en Arch Linux?

8

Sé que pacman -Suactualiza todos los paquetes. Pero, ¿cómo puedo obtener solo la lista de paquetes que necesitan actualizarse?

Eugene Yarmash
fuente

Respuestas:

11

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 the

sistema 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.

Iain
fuente
1
PELIGRO : La documentación dice "nunca ejecutar pacman -Sy" (fuente: wiki.archlinux.org/index.php/… )
blippy
1
@blippy Ese documento no existía cuando se escribió esta respuesta, su primera revisión es unos meses más tarde . Además, la declaración a la que se refiere no se agregó al documento hasta (23 de octubre de 2015) [ wiki.archlinux.org/… ) más de 4 años después. En lugar de ser tan melodramático, debería haber editado la respuesta y hacer referencia al documento como el motivo de su solicitud de cambio. Tenga en cuenta que incluso ahora la página del manual no hace tales advertencias.
user9517
2
solo quiero aclarar también: la razón por la que no se ejecuta 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.
aaaaaa
1
Solo quiero aclarar que el artículo no dice que 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).
Drew Chapin
5 días después, cuando has olvidado que corriste pacman -Syy corriste pacman -S nvidia, es probable que rompas algo.
Drew Chapin
7
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.

Mantenimiento del sistema

Panagiotis Dimopoulos
fuente
Esta debería ser la respuesta correcta
Nitz
0

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:

  1. Crear una carpeta temporal para su base de datos.
  2. Simbolizando tu /var/lib/pacman/local.
  3. Ejecutando pacman -Syen su carpeta temporal.
  4. Consulta a través pacman -Qude su carpeta temporal.
Mateen Ulhaq
fuente