Мне нужно создать пакет deb, который создаст каталог для журналов. Я хочу создать каталог /var/logs/my_package
и изменить его владельца my_user
.
В документации есть информация, что я могу создать файл debian/dir
. Но есть информация, что это не лучший способ сделать это. И нет никакой информации о том, как нужно менять там владельца каталога (я думаю о том, чтобы поместить команду chown my_user.my_user /var/logs/my_package
в debian/postinst
файл).
Каков рекомендуемый способ создания каталога с пакетом deb?
permissions
package-management
directory
deb
chown
Бессарабов
источник
источник
Ответы:
Вы были правы, вам нужен
debian/my_package.postint
файл для выполнения такой операции:Примечание . Сценарий проверяет, существует ли пользователь перед вызовом
chown
.источник
This generally means there is a problem with the Makefile.
я понимаю это сообщение, что есть другой способ сделать это. И я хочу выяснить, каков рекомендуемый способ решения этой задачи.debian/rules
котором находятсяMakefile
пакеты для Debian. Поскольку я не знал ваших,debian/rules
я предпочел предложить решение, основанное на одном файле. Ноchown
команда должна быть процессом после установки. Следует избегать использования debian / dirs, но мой первоначальный ответ в порядке. Пожалуйста, проголосуйте и примите это, спасибо.Вам не нужно создавать
postinst
сценарий, но решение все еще немного сложнее. Я используюdh
подстановочный знак вdebian/rules
:который делает все необходимое. Но мне нужно переопределить владение некоторых каталогов (давайте назовем это данными). Поэтому я должен сделать какое-то исключение, я использую специальную директиву (это пример):
Каталог данных не обязательно должен находиться в файле * .dirs. Но все же есть одна хитрость. Debhelper содержит скрипт dh_fixperms, который исправляет права доступа к корню, поэтому нам тоже нужно переопределить:
Это все. Помните, что каталог данных не считается conffile, поэтому он будет удален при удалении пакета. Если вам нужно сделать это conffile, это другая история.
источник