dpkg -r dando avisos ao remover o pacote

1

Eu tenho um pacote binário personalizado. Eu estou criando o pacote de um Makefile. Aqui está o código para o mesmo:

FIREFOX_DIR = /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}

build:
    mkdir -p $(app_source_dir)
    mkdir -p $(app_source_dir)/opt/Sapience/config
    mkdir -p $(app_source_dir)/opt/Sapience/firefox
    mkdir -p $(app_source_dir)/$(FIREFOX_DIR)/firefox-extension@sapience
    mkdir -p $(app_source_dir)/usr/bin
    mkdir -p $(app_source_dir)/DEBIAN
    cp $(RT)/../bin/sapiencecollector $(app_source_dir)/usr/bin/.
    cp $(RT)/../DEBIAN/control $(app_source_dir)/DEBIAN/.
    cp $(RT)/../DEBIAN/postinst $(app_source_dir)/DEBIAN/.
    cp $(RT)/../DEBIAN/prerm $(app_source_dir)/DEBIAN/.
    cp $(RT)/../config/conf.ini $(app_source_dir)/opt/Sapience/config/.
    cp -r $(RT)/../external/firefox-extension/* $(app_source_dir)/$(FIREFOX_DIR)/firefox-extension@sapience/.
    dpkg --build $(app_source_dir) $(app_name)-$(version).deb

Eu preciso criar um diretório chamado Sapience dentro de / opt como parte da minha instalação. Para fazer isso, estou criando a mesma hierarquia de diretórios dentro do diretório do pacote.  / opt já está presente no Linux & amp; Eu não quero criá-lo novamente na máquina que eu instalar o pacote. O pacote é instalado corretamente. Quando tento remover o pacote usando o comando dpkg -r <pkgname> , recebo o seguinte erro: dpkg: aviso: ao remover, o diretório / opt não está vazio, portanto não foi removido.

Eu não quero remover o diretório / opt, mas o dpkg está tentando removê-lo. Alguém poderia me informar quais alterações eu preciso fazer para evitar que o dpkg remova os diretórios.

    
por user1439609 30.08.2012 / 15:19

1 resposta

0

De acordo com a esta postagem , o dpkg tenta remover um pacote de um diretório que não é usado por nenhum outro pacote Debian, assim parece vazio para o dpkg, mas se você colocou outro software em / opt é não está vazio na camada do sistema de arquivos.

Assim, o dpkg continuará subindo a hierarquia de diretórios do sistema de arquivos até exclui todos os ancestrais da instalação, a menos que haja outro pacote que também é instalado sob um ancestral.

Para ver quais pacotes dependem de / opt:

$ dpkg -S /opt

Uma solução, tirada da postagem , é criar um "núcleo pacote personalizado, que conterá o / opt e será exigido por todos os outros pacotes personalizados. Você também pode usar esse pacote como meta-pacote para instalar todos os pacotes regulares que desejar. Não é como se o aviso fosse importante, mas quanto mais limpo melhor.

    
por andri_ch 14.08.2013 / 08:31