Маленький нюанс по созданию DEB

Напоминалка скорее для себя. Встретился с одной (очень правильной) особенностью при формировании DEB пакетов и скриптов {pre|post}{install|rm}

Собираем свои сервера в DEB пакеты. Но своего репозитария пока не держим, поэтому процесс инсталляции обычно выглядит так:

sudo dpkg -i mypackage-x.x.x-1.deb && sudo apt-get -f install

При этом, если для пакета есть какие-то неразрешенные зависимости, то второй командой они все разрешатся и мой deb доустановится. А если таковых не было, то вторая команда просто ничего не сделает. Так, что все ок.

Но вот для одного из наших серверов потребовался tomcat. Причем, он требует существенной модификации стандартной tomcat’овской конфигурации в server.xml. Не мудрствуя (то есть, поступив по гопнически), положил нужный файлик server.xml в DEB сразу в папку tomcat. Но (по джентельменски) сделал бэкап для существующего server.xml в preinstall.

Собрал DEB, скопировал, dpkg&apt-get… Ан нет! dpkg обнаружил, что и tomcat и мой пакет хотят создать один и тот же файл и не позволил ему этого сделать.

И даже если мой пакет ставится после уже установленного tomcat, dpkg не позволяет мне установить мой пакет. Бдит! 🙂

Придется все делать по правильному, то-есть, джентельменски :)) А Винда, как я помню так не бдит.

Leave a Reply