como fazer scripts que serão executados na instalação do pacote apt

2

Eu criei um script bash que armazenará alguns dados em um banco de dados mysql. Então eu criei o arquivo deb com esse script e o disponibilizei para instalação criando um repositório apt local.

Agora, posso instalar esse pacote em qualquer sistema ( apt-get install packgename ), mas o problema é que eu tenho que criar manualmente o banco de dados mysql para esse script após cada instalação em cada sistema.

Existe alguma maneira para que eu possa executar um script para criar banco de dados mysql (como é um requisito de uma vez por um sistema) durante a instalação em si. Eu ouvi algo parecido com os scripts post e pre , mas não tive a menor ideia de pesquisar. Vocês poderiam dar alguns bons tutoriais para isso?

    
por Uvais Ibrahim 24.10.2014 / 12:51

1 resposta

3

Vamos supor que você tenha o seu .deb -file local (se não você pode baixá-lo via apt-get download package ).

Descompacte o seu arquivo deb:

ar x package.deb

Dentro da pasta atual, agora há alguns arquivos. data.tar.gz é o arquivo com o conteúdo do pacote. Mas estamos interessados no arquivo control.tar.gz , onde estão os pós e pré-scripts. Então, descompacte o arquivo de controle em outra pasta:

tar xfs control.tar.gz

Agora, o que você procura é o script chamado postinst , que é executado após a instalação do pacote. Se esse script não existir, basta criá-lo com rwxr-xr-x permissions (755). Dentro desse script, coloque o comando db create e deixe o script terminar com um exit 0 para uma instalação bem-sucedida ou exit 1 para uma falha.

Quando você fez todos os seus pertences, tar os arquivos de volta para o arquivo de controle. Use esse comando na pasta para criar o arquivo control.tar.gz .

tar -czf control.tar.gz *

Agora, recrie o deb-package com esses novos arquivos, com este comando:

ar r package.deb debian-binary control.tar.gz data.tar.gz

É isso aí!

    
por chaos 24.10.2014 / 13:12