Me acabo de inspirar de este proyecto:
Bueno, quería hacer algo similar, después de que dpkg coloque algo nuevo en el directorio /usr/share/applications, pero ¿a dónde debería apuntar mi script y el parámetro a pasar?
Respuesta1
Si el script no toma parámetros, agregue un archivo en /etc/apt/apt.conf.d/
, por ejemplo 92local
(los números se usan para forzar el orden de ejecución de los scripts en ese directorio), con el siguiente contenido:
DPkg::Post-Invoke { "/path-to/my-script"; };
y recuerda hacerlo ejecutable.
No puedo encontrar en este momento información sobre cómo pasar parámetros o entradas al script.
Si puede ser de ayuda, cuando se ejecuta apt
en la línea de comando, debe encontrar la línea de comando en la variable de entorno SUDO_COMMAND
.
Respuesta2
He encontrado una manera de ejecutar la línea de comando del comando APT:
Crear un archivo /etc/apt/apt.conf.d/90my_dpkg_post_invoke
con contenido
DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }
Crear un archivo ejecutable /usr/local/lib/my_dpkg_post_invoke.sh
con contenido
#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }" # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }" # trim leading spaces
echo "#### APT Command: ${APTCMD}"
Ahora puede ampliar el archivo ejecutable con una prueba si ${APTCMD}
contiene una cadena para la que desea activar una acción.