Personalizado .deb não instala todos os arquivos

6

Estou desenvolvendo um gerenciador de arquivos proprietário de várias plataformas chamado fman . Eu quero distribuí-lo para os usuários do Ubuntu como um arquivo .deb , que pode ser baixado do meu site. Eu uso fpm para criar este arquivo, que funciona sem problemas.

Quando o usuário instalar o fman, eu quero adicionar um arquivo ao /etc/apt/sources.list.d/ , que aponta para o meu servidor de atualização. Isso permitiria ao usuário atualizar automaticamente o fman através do gerenciador de pacotes do Ubuntu (ou via apt-get ).

Eu fiz o óbvio: coloquei o arquivo dentro do .deb archive em etc/apt/sources.list.d/fman.list . O problema é: Este arquivo não é criado sob /etc/apt/... quando o usuário instala o fman do arquivo .deb .

Quando eu faço dpkg -x fman.deb some_dir/ , o arquivo fman.list é criado corretamente em some_dir/etc/apt/sources.list.d/fman.list . Da mesma forma, quando eu faço dpkg-query -L fman após a instalação, eu recebo a saída

/.
/etc
/etc/apt
/etc/apt/sources.list.d
/etc/apt/sources.list.d/fman.list
...

Eu não recebo nenhum erro ou aviso quando instalo o arquivo .deb na linha de comando via sudo dpkg -i fman.deb . Eu tentei aumentar o nível de log via sudo dpkg -D 100 -i fman.deb . As únicas duas linhas de saída pertencentes a fman.list são:

D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt/sources.list.d/fman.list.dpkg-new'
D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt/sources.list.d/fman.list.dpkg-new'

Em algum ponto anterior, encontrei um arquivo /etc/apt/sources.list.d/fman.list.dpkg-dist . Mas esse arquivo foi removido quando eu desinstalei o fman. Instalações subseqüentes do fman não produziram o arquivo novamente.

Alguém sabe por que /etc/apt/sources.list.d/fman.list não é criado quando eu instalo o fman a partir de um arquivo .deb ?

    
por Michael Herrmann 14.11.2016 / 16:49

1 resposta

3

Eu descobri qual era o problema.

Eu testei meu arquivo .deb por meio dos ciclos dos dois comandos a seguir:

  • sudo dpkg -i fman.deb
  • sudo dpkg -r fman (equivalentemente, sudo apt-get remove fman )

Descobri que ... -r exclui os arquivos de configuração. Para excluir também os arquivos de configuração, é necessário usar sudo dpkg -P fman .

Durante meus testes, devo ter excluído manualmente /etc/apt/sources.list.d/fman.list em algum momento. Mas dpkg (/ apt ) ainda lembrou que tinha instalado esse arquivo, então ele não foi reinstalado na próxima vez que eu fiz dpkg -i (equivalentemente, apt-get install ).

A solução foi, portanto, chamar sudo dpkg -P fman . Da próxima vez que eu fiz o dpkg -i fman.deb , o arquivo fman.list foi criado como esperado.

    
por Michael Herrmann 16.11.2016 / 11:13