Como criar um diretório e mudar seu dono com o pacote deb

8

Eu preciso criar um pacote deb que irá criar um diretório para logs. Desejo criar o diretório /var/logs/my_package e alterá-lo para my_user .

Em os documentos, há informações que eu posso criar arquivo %código%. Mas há informações de que essa não é a melhor maneira de fazer isso. E não há informações sobre como alguém deve alterar o proprietário do diretório (estou pensando em colocar o comando debian/dir em chown my_user.my_user /var/logs/my_package file).

Qual é a maneira recomendada de criar diretório com o pacote deb?

    
por bessarabov 27.03.2014 / 06:38

2 respostas

6

Você estava certo, precisa de um arquivo debian/my_package.postint para realizar essa operação:

#!/bin/sh

#DEBHELPER#

set -e

USER="my_user"

mkdir -p /var/log/my_package/    
if id -u $USER > /dev/null 2>&1; then    
    chown ${USER}:${USER} /var/log/my_package/
fi

Observação : o script verifica se o usuário existe antes de chamar chown .

    
por Sylvain Pineau 27.03.2014 / 12:15
2

Você não precisa criar um script postinst , mas a solução ainda é um pouco complicada. Eu uso o curinga dh em debian/rules :

#!/usr/bin/make -f
%:
        dh $@

binary:
        dh $@

que faz todas as coisas necessárias. Mas eu preciso substituir a propriedade de alguns dir (vamos chamá-lo de dados). Então eu devo fazer alguma exceção, eu uso diretiva especial (este é um exemplo):

    override_dh_install:
        dh_install   #calls default *.install and *.dirs installation
        install -d -o www-data -g www-data $(CURDIR)/debian/<package_name>/var/www/<something>/data 

O diretório de dados não precisa estar no arquivo * .dirs. Mas ainda há um truque. O Debhelper contém o script dh_fixperms, que corrige a propriedade de volta à raiz, portanto, precisamos substituir também:

override_dh_fixperms:
    dh_fixperms --exclude data

Isso é tudo. Tenha em mente que o diretório de dados não conta como um arquivo de configuração, portanto, ele será removido no pacote remove. Se você precisa fazer um conffile, é outra história.

    
por Marek Šimon 08.11.2015 / 02:42