데비안: 일관성이 매우 나쁜 상태의 패키지를 제거하거나 다시 설치하세요

데비안: 일관성이 매우 나쁜 상태의 패키지를 제거하거나 다시 설치하세요

패키지 관리에 문제가 있습니다.

어느 시점에서 bluez 패키지가 손상되었기 때문에 업데이트 등을 중단한 것 같습니다. 제거 및/또는 재설치를 시도했지만 오류만 발생했습니다. 이 패키지가 손상된 한 apt로는 아무것도 할 수 없습니다.

패키지의 출력을 제거해 보았습니다.

$ 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

데비안 테스트를 실행 중입니다. 이 문제는 실제로 이 특정 패키지의 문제입니까, 아니면 dpkg의 문제입니까? 패키지 관리자를 수정하려면 어떻게 해야 합니까?

답변1

이전에 이 메시지를 본 적이 없으므로 bluez에만 해당되는 것으로 추측됩니다. 메시지에 따라 다시 설치해 보셨나요?

apt-get install --reinstall bluez

dpkg를 사용하여 apt 캐시에서 bluez 패키지를 설치/구성해 볼 수도 있습니다. /var/cache/apt에서 bluez 패키지를 찾으세요. 다음과 같이 설치합니다(루트로).

dpkg -i <bluez debian package>

답변2

sudo dpkg-reconfigure <packages> --force

이어서

sudo dpkg --purge --force-all <packages>

답변3

/usr/sbin우연의 일치 일 수도 있지만 모든 오류는 update-info-dir, update-rc.d, locale-gen, update-dictcommon-aspell, grub-mkdevicemap, grub-probe, grub-install, update-grub, 및 prerm의 프로그램 호출과 관련이 있습니다 .update-initramfsupdate-rc.dinvoke-rc.dbluez/usr/sbin

가장 먼저 확인해야 할 것은 /usr/sbinroot 에 있는지 여부입니다. 그러나 그렇지 않은 경우 일반적으로 큰 소리로 불평하므로 PATH문제가 될 가능성은 없습니다 . dpkg실제로 squeeze부터 시작하면 dpkg가 update-rc.ddpkg에서 찾을 수 없으면 큰 소리로 불평을 하는데 , postinst가 불평하지 않아도 실행 파일을 찾지 못하는 PATH것이 이상합니다 .rsyslogdpkg

이 명령을 루트로 실행하면 어떻게 되나요?

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

이러한 명령의 결과에 따라 수정 사항이 제안될 수 있습니다. 흥미로운 단서를 찾았지만 그 의미를 알 수 없는 경우 질문을 편집하여 이 정보를 추가하세요. 또한 시스템에 대한 "비정상적인" 사항(SELinux, chroot, 이중 아키텍처 설치...)을 보고하십시오.

답변4

bluez여기에는 패키지와 관련된 오류뿐만 아니라 몇 가지 오류가 있는 것 같습니다 .

이를 실행하면 aptitude remove여러 패키지 구성이 진행되며, 대부분은 기본 시스템 기능(예: grub, ifupdown)을 구현합니다. 이는 업데이트가 중단되었거나 업데이트 완료를 방해하는 일부 디스크/파일 시스템 오류가 있음을 나타냅니다. 깨끗하게.

즉, 깔끔하게 업데이트되지 않은 나머지 패키지는 더 큰 문제의 징후일 수 있습니다. 실제로 귀하가 게시한 로그에는 다음과 같은 내용이 나와 있습니다.

/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

따라서 찾을 수 없기 때문에 구성을 install-info완료할 수 없습니다. update-info-dir이 맥락에서 "찾을 수 없음"은 "실행할 수 없음"을 의미할 수도 있습니다. 마찬가지로 다른 패키지도 다음 프로그램을 찾을 수 없기 때문에 실패합니다.

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

내 시스템에서는 누락된 파일이 다음 패키지에서 설치되었습니다.

==================================  =================== 
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             

첫 번째 디버깅 단계로 파일이 실제로 존재하는지, 읽을 수 있고 실행 가능한지 확인하겠습니다.

다음으로 다음 옵션을 각각 실행해 보십시오 --help. 제대로 실행됩니까?

aptitude reinstall grub-pc grub-common위의 두 테스트가 모두 성공적으로 완료되면 sysv-rc, initramfs-tools, grub-pc 및 grub-common( )부터 시작하여 이러한 패키지를 다시 설치해야 할 수 있습니다 .

부품이 작동하면 정상으로 aptitude reinstall bluez돌아가서 bluez 제거할 수 있습니다.

관련 정보