손상된 패킷 시스템 복구(apt-get)

손상된 패킷 시스템 복구(apt-get)

데비안 컴퓨터에서 시스템 업그레이드(apt-get 업그레이드)를 수행한 후 apt-get을 사용하려고 할 때마다 오류가 발생합니다. 예:

# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: Service killprocs has to be enabled to start service single
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)

해결책을 찾으려고 노력했지만 이와 비슷한 것을 찾을 수 없었습니다. 첫째, "완전히 설치되거나 제거되지 않은" 패키지가 있었습니다. 그러나 그것을 찾는 명령을 찾을 수 없습니다. 시험을 마친:

dpkg -l | grep rc

하지만 약 20개의 패킷이 나열되어 있으므로 이 패킷을 찾는 더 좋은 방법이 있을 것입니다.

패킷 시스템을 수정하기 위해 다음과 같은 일반적인 절차를 시도했습니다.

apt-get clean && sudo apt-get autoremove 
apt-get -f install
dpkg --configure -a

clean 명령은 괜찮지만 위와 같이 install 명령이 실패합니다.

필사적으로 insserv를 다시 설치해 보았지만(패킷 손상인지 확실하지 않음) 여전히 같은 방식으로 실패했습니다.

# apt-get install --reinstall insserv
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
Need to get 63.8 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ wheezy/main insserv armel 1.14.0-5 [63.8 kB]
Fetched 63.8 kB in 0s (85.5 kB/s)
Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: Service killprocs has to be enabled to start service single
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)

답변1

/etc/rc1.d/S01killprocs -> ../init.d/killprocs없어졌어, 분명 안에 있었어initscripts

그러나 insserv그것은 필요합니다.확인이 필요하다

어쩌면 수동으로 설치하고 .deb다른 디렉터리에 압축을 풀고 올바른 위치에 복사할 수도 있습니다.

dpkg -x /var/cache/apt/archives/initscripts_2.88dsf-41_i386.deb /tmp/somedir

2.88dsf-41_i386내 버전입니다. 귀하의 버전을 사용하세요 :-)

편집하다

수동으로 작동하게 한 경우 평소대로 다시 설치하세요.

답변2

/var/cache/apt/archives에서 캐시된 .deb 파일을 모두 삭제한 후 다음 명령을 실행하여 우분투 16.04에서 이 문제를 해결할 수 있었습니다.

apt-get clean && sudo apt-get autoremove

이것이 누군가의 문제를 해결하기를 바랍니다.

답변3

다음 명령은 비슷한 업그레이드 문제를 해결했습니다.

dpkg -i /var/cache/apt/archives/initscripts_2.88dsf-59.3ubuntu2_i386.deb

Ubuntu 14.04(!)에서 다음 LTS로 업그레이드하기 위해 do-release-upgrade를 사용하고 있는데 다음 오류가 발생했습니다.

update-rc.d: error: insserv rejected the script header
dpkg: error processing package util-linux (--configure):
  subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
  util-linux

그리고 dpkg-reconfigure util-linux가 나에게 준

/usr/sbin/dpkg-reconfigure: initscripts is broken or not fully installed

apt-get install --reinstall initscripts도 생성되었습니다.

E: Internal Error, No file name for initscripts:i386

그러나 dpkg(위)는 작동하며 업그레이드를 계속할 수 있습니다. 이것이 누군가에게 도움이 되기를 바랍니다.

관련 정보