Каков правильный способ игнорировать системный скрипт, установленный пакетом при удалении этого пакета?

Я обрабатываю почти 30 пакетов и имею все файлы и скрипты, которые устанавливаются.

Некоторые из этих сценариев могут выполняться во время установки пакета, но после удаления (против очистки) они

Как это управляется в стандартных пакетах Ubuntu / Debian?

Например, у меня есть файл logrotate, который устанавливается с помощью:

[ f1]

Бинар /usr/bin/snapsignal исчезнет, ​​если все пакеты будут удалены, но этот скрипт logrotate останется на месте ... поэтому, когда он запускается, он не работает на этом одном вызове.

I подумал, что я могу сделать удаление в сценарии postrm, как в:

if [ "$1" = "remove" ]
then
    rm -f /etc/logrotate.d/snapmanagerdaemon
fi

Это работает для этапа удаления, но если пользователь переустанавливает пакет, он не возвращается (он не получает распакован.) Таким образом, я не получил ожидаемого вращения журнала. По крайней мере, пока я не выберу этот файл и не переустановил его вручную.

Я вижу несколько решений, но я хотел бы знать, как это делается в надлежащем пакете Debian. [!d7 ]

Одно из решений, которое будет работать, - это добавить тест, чтобы узнать, установлен ли snapsignal.

    postrotate
        if test -x /usr/bin/snapsignal
        then
            /usr/bin/snapsignal snapmanagerdaemon/LOG
        fi
    endscript

Только это означает, что logrotate продолжает выполнять эту запись навсегда, даже если это пакет ушел. У меня есть сходство с другими сценариями, которыми я управляю. После удаления пакета не должно быть необходимости, чтобы этот скрипт все еще выполнялся.

Обратите внимание, что логротат - это один пример, демонстрирующий проблему. Мы действительно заметили это с файлом конфигурации dpkg, сценарий, который мы размещаем под:

/etc/dpkg/dpkg.conf.d/...

, который остается на месте после удаления.

Другой тип скрипта, который остается позади и будет также вызывают проблемы: файлы CRON. Те, которые вы устанавливаете в /etc/cron.daily, /etc/cron.monthly и т. Д. Если какой-либо из этих сценариев пытается получить доступ к одному из ваших двоичных файлов после удаления, он не сработает.

1
задан 11 November 2016 в 05:26

0 ответов

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

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