Выполнить команду после установки dpkg?

Выполнить команду после установки dpkg?

Меня только что вдохновил этот проект:

http://www.opendesktop.org/content/show.php?content=145633

Ну, я хотел сделать нечто подобное после того, как dpkg поместит что-то новое в каталог /usr/share/applications, но куда должен указывать мой скрипт и какой параметр ему передавать?

решение1

Если скрипт не принимает параметры, добавьте файл /etc/apt/apt.conf.d/, например, в 92local(номера используются для принудительного указания порядка выполнения скриптов в этом каталоге), со следующим содержимым:

DPkg::Post-Invoke { "/path-to/my-script"; };

и не забудьте сделать его исполняемым.

Не могу найти информацию о том, как передать параметр или ввод в скрипт.
Если это может помочь, при запуске aptв командной строке вы должны найти командную строку в переменной окружения SUDO_COMMAND.

решение2

Я нашел способ заставить командную строку команды APT выполниться:

Создать файл /etc/apt/apt.conf.d/90my_dpkg_post_invokeс содержимым

DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }

Создать исполняемый файл /usr/local/lib/my_dpkg_post_invoke.shс содержимым

#!/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}"

Теперь вы можете расширить исполняемый файл, добавив в него проверку на ${APTCMD}наличие строки, для которой вы хотите вызвать действие.

Связанный контент