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

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

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

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

0
задан 18 June 2012 в 21:48

2 ответа

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

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

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

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

0
ответ дан 18 June 2012 в 21:48

Я нашел способ получить командную строку выполняемой команды 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} содержит строку, для которой вы хотите запустить действие.

0
ответ дан 18 June 2012 в 21:48

Другие вопросы по тегам:

Похожие вопросы: