¿Cómo puedo ejecutar de manera responsable actualizaciones automáticas en Arch Linux?

¿Cómo puedo ejecutar de manera responsable actualizaciones automáticas en Arch Linux?

Soy un poco nuevo en Arch Linux y todavía me estoy acostumbrando a algunos de sus paradigmas. Vengo con muchos hábitos de otra distribución que era bastante más estructurada y en cierto modo predecible.

Una cosa que me gustaría hacer con algunos sistemas¹ es habilitar una tarea cron para realizar actualizaciones automáticas de todos los paquetes del sistema. Esto parece bastante fácil, excepto que también quiero recibir comentarios significativos del sistema que me digan cómo fueron las cosas y que no sean tan detallados como para terminar ignorándolos hasta que descubro que el sistema está actuando mal.

  • La salida completa de pacmanes innecesaria. No me importa cuánto tiempo tardaron las descargas o que esté en la actualización 46 de 53.
  • En general, no me importan los éxitos.
  • Me importan los errores. Si falla la ejecución de una actualización, quiero saberlo y corregir cualquier mensaje de error específico.
  • Me importan los "avisos" que se emiten durante la instalación. Por ejemplo, la actualización de systemd de hoy decía:

    :: coredumps are no longer sent to the journal by default. To re-enable:  
    echo >/etc/sysctl.d/50-coredump.conf \  
        "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
    

    O el sistema de archivos produjo esto:

    warning: /etc/group installed as /etc/group.pacnew  
    warning: /etc/passwd installed as /etc/passwd.pacnew  
    warning: /etc/shadow installed as /etc/shadow.pacnew
    

    Esta última categoría es en realidad lo que me impulsó a hacer esta pregunta porque parece que son muy inconsistentes en todo el conjunto de paquetes. Algunos de estos parecen ser generados por post_upgrade(), otros por install(), etc. A veces se escriben en stdout, a veces en stderr. El formato de los mensajes varía ampliamente: a veces un bloque completo tiene un prefijo con sangría de alguna manera, otras veces solo hay una cadena con eco.

Quiero saber acerca de cosas que pueden requerir mi intervención en un sistema pero que no me molesten de otra manera. ¿Existe alguna herramienta que gestione inteligentemente estos datos y simplifique la administración del sistema? ¿Hay alguna forma de obtener la salida generada por los paquetes por separado del proceso de pacman al instalarlos? ¿O estoy solo para escribir algún tipo de analizador que filtre cosas benignas del registro de instalación?

¹ Antes de decir lo estúpido que es esto, tenga en cuenta que soy lo suficientemente inteligente como para no hacer esto en servidores de producción y no sin copias de seguridad completas del sistema basadas en instantáneas que facilitarían la recuperación en caso de una catástrofe.

Respuesta1

Quiero ser claro tanto para usted como para cualquier otra persona que pueda encontrarse con este hilo. Lo que quieres hacer esnoposible. Arch no oculta el hecho de que esperapara administrar su sistema. Parte de esa responsabilidad es estar presente durante el ciclo de actualización.

Ahora haypasosdel proceso de actualización que puede automatizar de manera responsable, pero nunca equivaldrá a un proceso automatizado -Syu. Simplemente necesita estar presente para la actualización.

Lo que puede hacer, por ejemplo, es configurar un crontrabajo que descargue los paquetes que deben instalarse (pero no los instale). El siguiente es un extracto de la pacmandocumentación:

SYNC OPTIONS
...
-w  --downloadonly
    Retrieve all packages from the server, but do not install/upgrade anything.

Luego podría configurar un crontrabajo para ejecutarlo sudo pacman -Syuw. No estoy muy familiarizado con cronsus capacidades de programación. Sin embargo, si solo es capaz de ejecutar un trabajo después de que se haya cumplido una condición particular (por ejemplo, un comando que devuelve un valor particular), entonces sería bastante trivial activar la descarga de nuevos paquetes según sea necesario.

Me imagino realizando una verificación contra checkupdates | wc -l, por ejemplo. Si devuelve cualquier número superior a cero, podría activar la descarga. Nuevamente, sin embargo, esto no reemplazará la ejecución de un -Syucuando esté presente y listo para realizar la actualización.

Para la parte final de su pregunta, dónde obtener resultados de lo que sucedió durante una actualización, está buscando /var/log/pacman.log. Incluye toda la información de error que podría interesarle.


Hayuna herramientaeso está destinado a ser pacmanun poco más amigable para usuarios desconocidos. Si no me equivoco, también proporciona una notificación sobre noticias si hay una actualización que requiere intervención manual.

Esta herramienta puede hacer su vida un poco más sencilla a corto plazo, pero nunca reemplazará el seguimiento sensato y diligente de las listas de correo.

Respuesta2

Hay un guión antiguo que hace un trabajo realmente bueno; se llamapaquete seguro.

EDITAR: este script todavía está disponible en github aquí: https://github.com/bencahill/binfiles/blob/master/safepac

¿Qué hace y cómo funciona?

La forma en que normalmente actualizo Arch es leer las noticias y luego hacerlo pacman -Syu, o simplemente hacer pacman -Syuy si algo sale mal, leer las noticias. Ahora este script no hace nada más: obtiene las últimas noticias del canal RSS, hace algo de sedmagia y compara los nombres de todos los paquetes que tienen actualizaciones disponibles para las noticias. Coincide con "nombre-paquete" y "nombre-paquete-" en las noticias, y si el nombre del paquete aparece en algún lugar de las noticias, ignorará el paquete y solo actualizará todos los demás. De esta manera, cualquier cosa que pueda salir mal se pospondrá hasta que uno tenga tiempo de inspeccionar el asunto a mano, mientras que las actualizaciones no críticas se realizarán automáticamente.

Por lo general, una vez que se haya ocupado de una actualización que posiblemente no sea fluida, no querrá ignorar safepacun determinado paquete porque todavía está en las noticias. Para eso está la lista de ignorados. Entonces, cada vez que haya actualizado manualmente, puede agregar la entrada de noticias respectiva a la lista de ignorados con , dondesafepac -Ia xxxxxxes el número de la entrada de noticias. También puede especificar la cantidad de noticias más recientes que desea incluir en su análisis con el -ninterruptor. El script también es lo suficientemente inteligente como para omitir entradas no existentes. Si tiene problemas con paquetes que tienen nombres muy cortos que podrían aparecer arbitrariamente en las noticias (como "sí"), puede agregarlos a la lista blanca safepac -Wapara que siempre se instalen incluso si aparecen en las noticias.

Tenga en cuenta que necesita una configuración de correo que funcione, ya que este script también le envía un correo de resumen (¿con el registro completo?) y con partes destacadas de la actualización:

análisis de pacmanla salida para buscar estas palabras y agregarlas al resumen:
"nota" "pacnew" "error" "importante" "advertencia" "existe".

El script es antiguo, pero la idea es buena y probablemente todavía funcione con una actualización menor, si corresponde.

Respuesta3

yo uso el miohastatilidadpara ejecutar yaourtpor cron.

información relacionada