Админим с Буквой
5.52K subscribers
303 photos
8 videos
59 files
1.16K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Переопределяем конфигурационный файл в чужом пакете

Если возникает ситуация, что при установке собственного пакета нужно сразу положить конфиг для некоторого демона, но этот демон принадлежит другому пакету, то сделать это можно так:

#!/bin/sh

set -e

if test "$1" = install; then
cp /etc/collectd/collectd.conf /etc/collectd/collectd.conf.original
dpkg-divert --quiet --package my-awesome-package --divert /etc/collectd/collectd.conf.original --rename /etc/collectd/collectd.conf
rm -f /etc/collectd/collectd.conf
fi

exit 0

и запихнуть это в debian/my-awesome-package.preinst

З.Ы. да, в скрипте не рассмотрены варианты иные кроме install, а также не приведен пример postrm.

#packaging
куда можно потратить 3 часа

Способов потерять время - сотни. Можно поваляться на траве в погожий денек, написать какой-нибудь прикольной зеленоглазой девчонке, а можно... собирать пакеты и тестировать их в докере. И убить эти 3 часа в попытке исполнить .examples/.docs скрипты установки. Ну это те, которые приносят файлики в /usr/share/docs/<package>. Вы кладете туда файл, а он не приезжает после установки пакета. Самое главное что если пакет вскрыть с помощью ar, то нужные файлы там есть. При установке пакета - в нужных местах не появляются. Самое бесячее, что в нужной папке появляется файл copyright, а твои другие - нет.

Ларчик-то просто открывался. Всего-навсего в докере из коробки лежит конфиг dpkg, который говорит, мол copyright клади, а другие файлы не клади...

#packaging #docker