Scripts y hooks en Arch Linux: diferencias y casos de uso

Fuentes: On scripts and hooks

El equipo de Arch Linux ha analizado en unos 120 repositorios de paquetes el uso de los mecanismos alpm-install-scriptlet(5) y alpm-hooks(5), las dos herramientas del gestor de paquetes pacman pensadas para manipular datos que no pertenecen a ningún paquete: creación de usuarios y grupos, directorios, archivos de caché, cambios de permisos o migraciones de datos.

Los scriptlets son archivos de shell que viajan dentro del paquete y se ejecutan antes o después de la transacción de ese paquete concreto. Ofrecen acceso a información de versión, pero presentan limitaciones importantes: dependen del intérprete configurado en pacman (Bash en Arch), no declaran sus dependencias en tiempo de ejecución, obligan a codificar UID y GID en tiempo de compilación y pueden generar duplicaciones al actualizar cachés que dependen de varios paquetes.

Los hooks, introducidos en pacman 5.0 en 2016 junto con tmpfiles.d y sysusers.d de systemd, son archivos declarativos que viven en rutas conocidas del sistema y se ejecutan antes o después de bloques completos de transacciones. Pueden declarar sus dependencias, se activan por cambios en paquetes o rutas y son configurables por el administrador. Sin embargo, no conocen la versión del paquete y solo están disponibles una vez instalado el paquete que los aporta.

El artículo orienta a mantenedores y usuarios sobre cuándo elegir uno u otro mecanismo para integrar datos no gestionados por el gestor de paquetes.