Eu mantenho um pacote Debian nativo que instala um aplicativo e um banco de dados SQLite inicial. Espero que o aplicativo edite o banco de dados.
Como evito que as atualizações substituam o banco de dados?
Eu pensei conffiles
que seria a solução, mas o guia do mantenedor do Debian diz :
Se o seu programa usa arquivos de configuração, mas também os reescreve por conta própria, é melhor não torná-los conffiles, pois o dpkg solicitará aos usuários que verifiquem as alterações o tempo todo.
Qual é a melhor alternativa?
Se você está realmente falando sobre enviar um banco de dados, e não os arquivos de configuração para acessar um banco de dados, a resposta está um pouco na declaração do problema: um banco de dados não é um arquivo de configuração.
A melhor alternativa (na minha opinião) é instalar o banco de dados em scripts de mantenedor, não diretamente como um arquivo instalado no pacote. Dessa forma, seus scripts de mantenedor podem lidar com as várias situações que podem surgir, incluindo
Você enviaria o banco de dados em um local temporário em seu pacote, em algum lugar em
/usr/share/yourpackage
, e só o moveria para seu local real se necessário. Não envie em/tmp
, e não tente “cancelar” o registro do arquivo. Consulte também Para onde vão os arquivos temporários durante a instalação de um pacote .deb?Para pontos de bônus extras, você pode olhar para
dbconfig-common
.