WSL2/Ubuntu 20.04가 설치된 PC가 있습니다. 최근에 패키지(Dell srvadmin
패키지)를 설치하려고 했습니다. systemd
WSL2에 설치가 없기 때문에 설치가 중간에 실패했습니다 .
이로 인해 패키지가 절반 설치/손상된 상태로 남아 있어 시들 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
그러면 더 이상 문제 없이 패키지를 지울 수 있습니다.