LINUX.ORG.RU

Как организовать выполнение временных SQL-скриптов при инсталляции DEB-пакета?

 , postinst,


0

1

Делаю самосборный DEB-пакет.

Имеется несколько SQL-скриптов, которые должны выполниться в момент инсталляции DEB-пакета, но после инсталляции нигде в системе не болтаться.

Понятно, что их вызов должен происходит в скрипте DEBIAN/postinst. Но непонятно где и как разместить сами эти скрипты.

Вот здесь написано следующее:

https://unix.stackexchange.com/questions/711654/setting-up-a-postinst-to-run-...

If sqlfile.sql is a temporary file, then install it to /usr/lib/mypkg/sqlfile.sql and use it from there in your postinst:

mysql ... < /usr/lib/mypkg/sqlfile.sql

Хм, но тогда файлы останутся в системе в каталоге /usr/lib/mypkg.

А мне нужно, чтобы они не остались. Я могу конечно, их удалить после применения. Но тогда нарушится консистентность установленных через пакетную систему файлов.

Как поступают в таких случаях?

★★★★★

Но ведь postinst может быть вызван не только при установке пакета. И поэтому скрипты стирать нельзя. Хотя пофиг, стирай. Потом наделаешь костылей и статью напишешь.

DrBrown
()

Делал инклюд тело установочного скрипта (rpmspec), но у меня было десяток запросов, не больше. Как в дебиане не знаю, но должно быть похоже.

sat0r
()

Если ты хочешь делать как принято, то их надо выполнять при конфигурации пакета, оно в postinst да, но вызывается не только после установки а и при dpkg-reconfigure например. И удалять нельзя. И сам postinst скрипт не удаляется после установки если ты не знал.

Если хочешь костылить то делай как угодно.

А зачем удалять то?

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