LINUX.ORG.RU
Ответ на: комментарий от Zubok

Dpkg::Post-Invoke в apt.conf, например.

Однако есть проблема. Мне бы казалось естественным, если бы в этот скрипт dpkg передавал название deb-пакета, над которым производится операция. Однако, судя по man и по исходникам, которые я, впрочем, очень бегло глянул, название пакета не передается, что бесконечно тупо и плохо. Максимум, что устанавливается - переменная DPKG_HOOK_ACTION, в которой можно узнать, какую операцию делает dpkg. dpkg же будет вызывать этот скрипт каждый раз, когда он вызывается. Но все равно проверь: может, в Post-Invoke название обрабатываемого пакета передается?

Вот для метода Dpkg::Pre-Install-Pkgs явно написано, что список передается (man apt.conf). Если проверить, что этот метод всегда вызывается, то можно сначала из него сохранить весь список пакетов где-нибудь во временном файле, а потом в скрипте Post-Invoke его просмотреть на предмет, есть ли там интересующий тебя пакет.

Еще глянь APT::Update::Post-Invoke

Через жопу, согласен.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Вот есть какая-то переменная DPKG_MAINTSCRIPT_PACKAGE, которая, вероятно, может содержать название пакета, над которым работает dpkg. Надо проверить (я не проверял). Если это так, то, отслеживая DPKG_HOOK_ACTION и DPKG_MAINTSCRIPT_PACKAGE в своем скрипте, можно будет в нужный момент запустить нужное действие. Другого варианта привязки скрипта к имени устанавливаемого или обновляемого пакета я в данный момент не знаю.

UPD: Да, и еще можно включить опию Debug, чтобы видеть, что скрипты запускаются, а в скрипте писать какие-то отладочные сообщения:

 Debug::RunScripts
           Display the external commands that are called by apt hooks. This
           includes e.g. the config options DPkg::{Pre,Post}-Invoke or
           APT::Update::{Pre,Post}-Invoke.
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

то можно сначала из него сохранить весь список пакетов где-нибудь во временном файле

Такой список уже есть в /var/log/apt/history.log. Можно распарсить по текущей дате, получить список и далее уже принимать решение. Хотя да, тоже костыль, но всё-таки поменьше.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.