Por que às vezes meu postinst é executado durante a instalação / remoção de outro software?

0

Eu tenho um pacote deb para meu aplicativo. Às vezes, quando eu instalo ou removo algum software (por exemplo, synaptic ou openssh-server) com o comando

sudo apt-get install (or remove) synaptic

ele executa o script postinst do meu programa com args "configure 1.1.123.0", onde 1.1.123.0 é a versão do meu aplicativo instalado.

Por que isso pode acontecer? Meu programa não tem nada a ver com synaptic, openssh-server e outros softwares. Como posso depurar a causa disso?

Aqui está a saída do terminal:

user@ubuntu:~/tmp$ sudo apt-get remove synaptic 
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package synaptic is not installed, so not removed
The following packages were automatically installed and are no longer required: # This list does not contain myapp
  libdpkg-perl fakeroot gir1.2-ubuntuoneui-3.0 libalgorithm-merge-perl g++-4.6 cmake-data dh-apparmor libalgorithm-diff-xs-perl g++ libstdc++6-4.6-dev
  linux-headers-3.5.0-23-generic linux-headers-3.5.0-23 libubuntuoneui-3.0-1 thunderbird-globalmenu html2text libqt3-mt libalgorithm-diff-perl libxmlrpc-core-c3
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up myapp:i386 (1.1.777.0) ...
/var/lib/dpkg/info/myapp.postinst configure 1.1.777.0 # This is debug string from my postinst script
update-rc.d: warning: /etc/init.d/myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 System start/stop links for /etc/init.d/myapp already exist.
myapp already installed # <-- message and error from my postinst script
dpkg: error processing myapp:i386 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 myapp:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)

As saídas de sudo dpkg --configure -a

user@ubuntu:~$ sudo dpkg --configure -a
Setting up myapp:i386 (1.1.777.0) ...
=/var/lib/dpkg/info/myapp.postinst=configure 1.1.777.0=
update-rc.d: warning: /etc/init.d/myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 System start/stop links for /etc/init.d/myapp already exist.
starting...
myapp already running.
rc from agent = 1
dpkg: error processing myapp:i386 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 myapp:i386
    
por vkrzv 27.11.2013 / 11:19

1 resposta

1

por favor poste as saídas de

sudo dpkg --configure -a

se você receber um erro como Errors were encountered while processing: myapp:i386

remova meu aplicativo usando

sudo apt-get purge myapp

e também usar o seguinte para re-install de todos os downloads quebrados.

sudo apt-get install -f

o problema de um pacote quebrado ainda existe, a solução é editar o arquivo de status do dpkg manualmente.

sudo gedit /var/lib/dpkg/status  

(você pode usar vim em vez de gedit )

Localize o pacote corrompido e remova todo o bloco de informações sobre ele e salve o arquivo.

    
por Sukupa91 27.11.2013 / 12:03