
Quando tento instalar um novo pacote usando apt
ou apt-get
recebo esta mensagem de erro:
$ sudo apt install sl
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
Então, estou seguindo as instruções:
$ dpkg --configure -a
dpkg: error: requested operation requires superuser privilege
$ sudo dpkg --configure -a
Setting up icaclient (13.10.0.20) ...
Está demorando uma eternidade, então depois de algum tempo eu pressiono ctrl+c, e o resultado é o seguinte:
^Cdpkg: error processing package icaclient (--configure):
installed icaclient package post-installation script subprocess was interrupted
Errors were encountered while processing:
icaclient
Então agora, quando tento instalar um pacote novamente, parece que funciona:
$ sudo apt install sl
Reading package lists... Done
Building dependency tree
Reading state information... Done
sl is already the newest version (3.03-17build2).
The following packages were automatically installed and are no longer required:
libllvm7 linux-headers-4.15.0-50 linux-image-4.15.0-50-generic linux-modules-4.15.0-50-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 398 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
E depois de pressionar Y:
Setting up icaclient (13.10.0.20) ...
Progress: [ 0%]
[...................................................]
Agora ele está preso novamente e não consigo sair com Ctrl + C. Quando fecho a tela do terminal, ela se repete desde o início do post.
Como posso resolver isso?
Nota: eu uso o aplicativo icaclient diariamente, mas provavelmente poderei instalá-lo novamente.
Responder1
Ele estava pendurado no script de pós-instalação, conforme indicado em uma das mensagens de erro acima. Depois de algumas pesquisas, descobri que os scripts de pós-instalação podem ser armazenados em/var/lib/dpkg/info/
Então eu poderia consertar isso facilmente usando:
sudo rm /var/lib/dpkg/info/icaclient.postinst
Depois disso tive que executar sudo dpkg --configure -a
e remover alguns arquivos de bloqueio.
Agora o apt está funcionando como deveria!