apt/dpkg를 사용하여 제거할 수 없는 패키지를 수동으로 제거

apt/dpkg를 사용하여 제거할 수 없는 패키지를 수동으로 제거

WSL2/Ubuntu 20.04가 설치된 PC가 있습니다. 최근에 패키지(Dell srvadmin패키지)를 설치하려고 했습니다. systemdWSL2에 설치가 없기 때문에 설치가 중간에 실패했습니다 .

이로 인해 패키지가 절반 설치/손상된 상태로 남아 있어 시들 dpkg거나 apt제거/청소 등을 사용할 수 없습니다.

tim@DESKTOP-Q35QTRS:~/interlocutor$ sudo dpkg -r --force-all srvadmin-hapi
(Reading database ... 54160 files and directories currently installed.)
Removing srvadmin-hapi (9.3.2) ...
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
dpkg: error processing package srvadmin-hapi (--remove):
 installed srvadmin-hapi package pre-removal script subprocess returned error exit status 1
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
dpkg: error while cleaning up:
 installed srvadmin-hapi package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Errors were encountered while processing:
 srvadmin-hapi
tim@DESKTOP-Q35QTRS:~/interlocutor$

dpkg그러면 불가능한 단계를 수동으로 수행하거나 손상된 패키지를 제거할 수 있습니까 ?

답변1

편집한 /var/lib/dpkg/info/srvadmin-hapi.prerm다음 set -x두 번째 줄(즉, #!이 줄 바로 뒤)로 삽입합니다. 이 스크립트 편집은 루트로 수행되어야 합니다.

그런 다음 다시 실행하십시오 dpkg -r --force-all srvadmin-hapi. 이는 .prerm 스크립트 내에서 발생한 일과 정확히 어떤 명령이 실패했는지 보여줍니다. 그러면 문제를 해결하고 패키지를 제거하는 데 충분한 정보가 제공됩니다.

또는 무차별적인 "수정"을 위해 .prerm이 그다지 중요해 보이지 않는 경우(또는 실행 등의 유일한 중요한 작업인 경우 systemctl stop srvadmin-hapi) .prerm 스크립트로 systemctl status삽입하면 됩니다 . exit 0그러면 더 이상 문제 없이 패키지를 지울 수 있습니다.

관련 정보