debian: Remover ou reinstalar o pacote em um estado inconsistente muito ruim

6

Estou com um problema de gerenciamento de pacotes:

Em algum momento, eu devo ter interrompido uma atualização ou algo assim, porque o pacote bluez foi quebrado. Eu tentei remover e / ou reinstalar, mas recebo apenas erros. Não consigo executar nenhuma operação com o apt enquanto este pacote estiver quebrado.

Saída da minha tentativa de remover o pacote

$ sudo aptitude remove bluez 
The following packages will be REMOVED:  
  bluez 
The following partially installed packages will be configured:
  dictionaries-common dmsetup grub-pc ifupdown install-info rsyslog 
0 packages upgraded, 0 newly installed, 1 to remove and 235 not upgraded.
Need to get 0 B of archives. After unpacking 1,737 kB will be freed.
dpkg: error processing bluez (--remove): 
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
configured to not write apport reports
                                      Errors were encountered while processing:
 bluez
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up install-info (4.13a.dfsg.1-8) ...
/var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found
dpkg: error processing install-info (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up ifupdown (0.7~alpha5+really0.6.15) ...
/var/lib/dpkg/info/ifupdown.postinst: 122: /var/lib/dpkg/info/ifupdown.postinst: update-rc.d: not found
dpkg: error processing ifupdown (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up locales (2.13-18) ...
/var/lib/dpkg/info/locales.postinst: 64: /var/lib/dpkg/info/locales.postinst: locale-gen: not found
dpkg: error processing locales (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up dictionaries-common (1.11.6) ...
/var/lib/dpkg/info/dictionaries-common.postinst: 45: /var/lib/dpkg/info/dictionaries-common.postinst: update-dictcommon-aspell: not found
dpkg: error processing dictionaries-common (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up grub-pc (1.99-12) ...
/var/lib/dpkg/info/grub-pc.postinst: line 438: grub-mkdevicemap: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 559: grub-install: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 669: update-grub: command not found
dpkg: error processing grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up dmsetup (2:1.02.65-1) ...
/var/lib/dpkg/info/dmsetup.postinst: 8: /var/lib/dpkg/info/dmsetup.postinst: update-initramfs: not found
dpkg: error processing dmsetup (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up rsyslog (5.8.5-1) ...
/var/lib/dpkg/info/rsyslog.postinst: 45: /var/lib/dpkg/info/rsyslog.postinst: update-rc.d: not found
dpkg: error processing rsyslog (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 install-info
 ifupdown
 locales
 dictionaries-common
 grub-pc
 dmsetup
 rsyslog

Estou executando o teste Debian. Este problema está realmente com este pacote em particular, ou é um problema com o dpkg? O que preciso fazer para corrigir meu gerenciador de pacotes?

    
por virtuallinux 07.10.2011 / 04:34

5 respostas

4

Eu não encontrei esta mensagem antes, então acho que é específico do bluez. Você tentou a reinstalação que a mensagem está sugerindo?

apt-get install --reinstall bluez

Você também pode tentar usar o dpkg para instalar / configurar o pacote bluez a partir do cache do apt. Procure o pacote bluez em / var / cache / apt. Instale assim (como root):

dpkg -i <bluez debian package>
    
por 07.10.2011 / 08:43
1

Isso pode ser uma coincidência, mas todos os erros têm a ver com a chamada de programas em /usr/sbin : update-info-dir , update-rc.d , locale-gen , update-dictcommon-aspell , grub-mkdevicemap , grub-probe , grub-install , update-grub , update-initramfs , update-rc.d , bem como invoke-rc.d do pré-termo bluez estão todos em /usr/sbin .

A primeira coisa a verificar é se /usr/sbin em PATH da raiz, mas é improvável que seja o problema porque dpkg normalmente reclama em voz alta, se não for. De fato, a partir do squeeze, o dpkg reclama em voz alta se não consegue encontrar update-rc.d no PATH , então é estranho que o rsyslog postinst não consiga encontrar este executável mesmo que dpkg não esteja reclamando.

O que acontece se você executar esses comandos (como root)?

type update-rc.d
ls -l /usr/sbin/update-rc.d
file /usr/sbin/update-rc.d
update-rc.d --help
file /bin/sh

O resultado desses comandos pode sugerir uma correção. Se você encontrar leads interessantes, mas tiver problemas para descobrir o que eles significam, edite sua pergunta para adicionar essas informações. Também relata qualquer coisa “incomum” sobre o seu sistema (SELinux, chroot, uma instalação de arquitetura dupla,…).

    
por 08.10.2011 / 01:30
1
sudo dpkg-reconfigure <packages> --force

seguido por

sudo dpkg --purge --force-all <packages>
    
por 20.09.2016 / 16:06
0

Parece-me que você tem vários erros aqui, não apenas relacionados a o pacote bluez .

Quando você executa aptitude remove , ele configura vários pacotes, a maioria deles implementando a funcionalidade básica do sistema grub, ifupdown), o que sugere que uma atualização foi interrompida ou existe algum erro de disco / sistema de arquivos que o impediu de ser concluído corretamente.

Ou seja, o restante dos pacotes que não estão sendo atualizados corretamente é provavelmente um sinal de maior dificuldade. De fato, o log que você postou diz:

/var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found
dpkg: error processing install-info (--configure):
 subprocess installed post-installation script returned error exit status 127

Portanto, a configuração de install-info não pode ser concluída porque update-info-dir não pode ser encontrado. Note que "não encontrado" neste contexto também pode significar "não executável". Da mesma forma, o outro pacotes falham porque esses programas não podem ser encontrados:

grub-install, grub-mkdevicemap, grub-probe, locale-gen,
update-dictcommon-aspell, update-grub, update-info-dir,
update-initramfs, update-rc.d

No meu sistema, os arquivos ausentes são instalados a partir desses pacotes:

==================================  =================== 
File location                       Package             
==================================  =================== 
/usr/sbin/update-dictcommon-aspell  dictionaries-common 
/usr/sbin/grub-mkdevicemap          grub-common         
/usr/sbin/grub-probe                grub-common         
/usr/lib/grub-legacy/update-grub    grub-pc             
/usr/sbin/grub-install              grub-pc             
/usr/sbin/update-grub               grub-pc             
/usr/sbin/update-initramfs          initramfs-tools     
/usr/sbin/update-info-dir           install-info        
/usr/sbin/locale-gen                locales             
/usr/sbin/update-rc.d               sysv-rc             

Como primeiro passo de depuração, eu verificaria se os arquivos realmente existem, são legíveis e são executáveis.

Em seguida, tente executar cada um deles com a opção --help : eles são executados corretamente?

Se ambos os testes acima forem concluídos com sucesso, talvez você queira reinstalar esses pacotes, começando com sysv-rc, initramfs-tools, grub-pc e grub-common ( aptitude reinstall grub-pc grub-common ).

Quando você conseguir que a peça funcione, aptitude reinstall bluez deve trazer bluez de volta a um estado sadio, após o qual você pode removê-lo.

    
por 07.10.2011 / 12:09
0

Este erro geralmente aparece se o pacote não foi instalado corretamente. O que faz

dpkg -l bluez

show? Isso normalmente acontece de duas maneiras

  • A instalação foi interrompida.

  • Há algo errado com o script bluez {pre / post} -install (ou similar).

No que diz respeito ao primeiro, você está ciente de uma instalação interrompida? Se este for o problema, uma reinstalação pode corrigir o problema.

Se este último, você ainda deve primeiro tentar reinstalar. No entanto, como último recurso, você pode ter que editar manualmente os scripts {pre / post} - {install / remove}, dependendo de onde está o problema, e se deseja tentar instalá-lo corretamente ou apenas deseja remova-o completamente. Normalmente, o problema é que algo nos scripts está falhando e causando erro ao dpkg, então a solução é editar essa coisa. Todos esses scripts estão localizados em /var/lib/dpkg/info . Procure por bluez.postinst ou similar. NB: Se este é o problema, pode ser um bug, então por favor, certifique-se de registrar um relatório de bug com o Sistema de Rastreamento de Bugs do Debian.

    
por 07.10.2011 / 11:10