WSL2/Ubuntu 20.04がインストールされたPCがあります。最近パッケージ(Dellsrvadmin
パッケージ)をインストールしようとしました。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
2set -x
行目(つまり、#!
この行の直後)に挿入します。このスクリプトの編集はrootとして実行する必要があります。
その後、もう一度実行してくださいdpkg -r --force-all srvadmin-hapi
。これは、.prermスクリプト内で何が起こったのか、正確にどのコマンドが失敗したのかを示しています。これにより、問題を解決してパッケージを削除するのに十分な情報が提供されます。
あるいは、無差別な「修正」のために.prermがそれほど重要に見えない場合(または実行などの唯一の重要なタスクである場合systemctl stop srvadmin-hapi
)、.prermスクリプトにsystemctl status
挿入するだけです。exit 0
これにより、問題なくパッケージを消去できます。