Debian: mantém mudanças customizadas no initscript

5

Eu tive que modificar o script do Postfix /etc/init.d/postfix para personalizá-lo para minhas necessidades especiais. Agora eu quero garantir que, no caso de o pacote postfix ser atualizado no futuro (eu estou rodando o Debian Wheezy Stable, mas ainda pode haver uma atualização de segurança), meu initscript modificado não será sobrescrito. Pelo que entendi, pacotes perguntam antes de sobrescrever config arquivos, mas não initscripts.

Qual é a maneira recomendada de fazer isso (sem problemas)?

    
por Martin Vegter 03.01.2014 / 16:27

2 respostas

7

Acho que você está procurando por dpkg-divert .

A partir dos documentos: 11.8 Como faço para substituir um arquivo instalado por um pacote? , de modo que uma versão diferente possa ser usada? .

trecho de documentos

Suppose a sysadmin or local user wishes to use a program "login-local" rather than the program "login" provided by the Debian login package.

Do not:

Overwrite /bin/login with login-local.

The package management system will not know about this change, and will simply overwrite your custom /bin/login whenever login (or any package that provides /bin/login) is installed or updated.

Rather, do

Execute:

   $ sudo dpkg-divert --divert /bin/login.debian /bin/login

in order to cause all future installations of the Debian login package to write the file /bin/login to /bin/login.debian instead.

Then execute:

   $ sudo cp login-local /bin/login

to move your own locally-built program into place.

Run dpkg-divert --list to see which diversions are currently active on your system.

Details are given in the manual page dpkg-divert(8).

Eu determinaria qual pacote o script de inicialização original do Postfix era diferente e desviasse apenas esse arquivo com sua versão modificada.

    
por 03.01.2014 / 17:11
5

Todos os arquivos em /etc são classificados como “conffiles” (pela política do Debian, ela é especificada no pacote, não incorporada ao dpkg). O Dpkg avisa se substitui cada conffile alterado na atualização. Scripts de inicialização não são exceção.

Se você não quer ser solicitado, ou se você precisar disso em um arquivo em um pacote que não seja um arquivo de configuração, você pode usar um desvio .

dpkg-divert --add --local --rename --divert /etc/init/postfix.debian /etc/init/postfix
    
por 04.01.2014 / 00:44

Tags