環境
- Kali Linux 2021
dpkgのロックエラーが出た
apt upgrade
を実行後、放置してたらいつの間にか再起動処理があった。
再度apt upgrade
を実行するとWaiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process <PID>
という文言が出力され実行できなかった。
$ sudo apt upgrade
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3822
対処法
様々な対処法があるみたいですが、今回はロックファイルを削除する方法で対処しました。
/var/lib/dpkg/lock
と/var/lib/dpkg/lock-frontend
ファイルを削除します。
$ sudo rm -rf /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend
その後
削除後、再度apt upgrade
コマンドを実行しました。
しかし、まだアップグレード出来ません。
$ sudo apt upgrade
E: dpkg は中断されました。問題を修正するには 'sudo dpkg --configure -a' を手動で実行する必要があります。
とりあえず、出力の指示通りのコマンドを実行します。
$ sudo dpkg --configure -a
すると処理は進みましたが、最終的にエラーが出力され完了できませんでした。
(省略)
処理中にエラーが発生しました:
llvm-14
llvm-14-runtime
もう一度apt upgrade
を実行したところ先ほどのエラーで出力されたパッケージに関係するエラーが出力されました。
$ sudo apt upgrade 1 ⨯
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
llvm-14 : 依存: llvm-14-runtime (= 1:14.0.6-16) しかし、1:14.0.6-13 はインストールされています
依存: llvm-14-linker-tools (= 1:14.0.6-16) しかし、1:14.0.6-13 はインストールされています
推奨: llvm-14-dev しかし、インストールされていません
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。
すると、apt --fix-broken install
を実行してみろと指示が出たので実行してみます。
$ sudo apt --fix-broken install 100 ⨯
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
avahi-utils coreboot-utils coreboot-utils-doc cryptsetup-run debtags dsniff espeak-ng-data
fastjar gir1.2-atspi-2.0 gir1.2-handy-1 gir1.2-notify-0.7 gir1.2-polkit-1.0 gir1.2-secret-1
icu-devtools jarwrapper kali-debtags libadwaita-1-0 libao-common libao4 libatk1.0-data
libavresample4 libblockdev-crypto2 libblockdev-fs2 libblockdev-loop2 libblockdev-part-err2
libblockdev-part2 libblockdev-swap2 libblockdev-utils2 libblockdev2 libboost-filesystem1.74.0
libboost-iostreams1.74.0 libboost-locale1.74.0 libboost-thread1.74.0 libbrlapi0.8 libcbor0
libconfig++9v5 libdotconf0 libdumbnet1 libespeak-ng1 libev4 libexporter-tiny-perl libffado2
libflac8 libflashrom1 libfluidsynth2 libfmt7 libgeos3.12.0 libgssdp-1.2-0 libgupnp-1.2-0
libgupnp-igd-1.0-4 libhandy-1-0 libhiredis1.1.0 libhttp-server-simple-perl libicu-dev
libigdgmm11 libilmbase25 liblist-moreutils-perl liblist-moreutils-xs-perl liblouis-data
liblouis20 libmbim-utils libnfs13 libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libnginx-mod-stream-geoip
libnids1.21 libnma-gtk4-0 libofa0 libopenexr25 libopenfec1 libopts25 liborcus-0.17-0
liborcus-parser-0.17-0 libotf0 libpcaudio0 libperl5.32 libperl5.36 libpipewire-0.3-modules
libpoppler102 libproj19 libqmi-utils libqt5qmlworkerscript5 libqt5quickcontrols2-5
libqt5quicktemplates2-5 librest-0.7-0 libroc0.3 librtlsdr0 libsnapd-glib-2-1 libsonic0
libspeechd2 libtinyxml2-9 libwebsockets16 libwireplumber-0.4-0 libxcb-damage0 libxcb-xv0
libxml2-dev libzxing2 lua-lpeg nginx-core openjdk-11-jre openjdk-11-jre-headless
perl-modules-5.32 perl-modules-5.36 python3-backcall python3-debian python3-ntlm-auth
python3-pickleshare python3-pylnk python3-requests-ntlm python3-requests-toolbelt
qml-module-qtgraphicaleffects qml-module-qtqml qml-module-qtqml-models2
qml-module-qtquick-controls qml-module-qtquick-layouts qml-module-qtquick-window2
qml-module-qtquick2 ruby2.7 sphinx-rtd-theme-common
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
llvm-14-linker-tools llvm-14-runtime
以下のパッケージはアップグレードされます:
llvm-14-linker-tools llvm-14-runtime
アップグレード: 2 個、新規インストール: 0 個、削除: 0 個、保留: 428 個。
2 個のパッケージが完全にインストールまたは削除されていません。
1,771 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 49.2 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 373446 個のファイルとディレクトリがインストールされています。)
.../llvm-14-runtime_1%3a14.0.6-16_amd64.deb を展開する準備をしています ...
llvm-14-runtime (1:14.0.6-16) で (1:14.0.6-13 に) 上書き展開しています ...
.../llvm-14-linker-tools_1%3a14.0.6-16_amd64.deb を展開する準備をしています ...
llvm-14-linker-tools (1:14.0.6-16) で (1:14.0.6-13 に) 上書き展開しています ...
llvm-14-runtime (1:14.0.6-16) を設定しています ...
llvm-14-linker-tools (1:14.0.6-16) を設定しています ...
llvm-14 (1:14.0.6-16) を設定しています ...
libc-bin (2.37-15) のトリガを処理しています ...
systemd (255.4-1) のトリガを処理しています ...
man-db (2.12.0-3) のトリガを処理しています ...
kali-menu (2023.4.7) のトリガを処理しています ...
needrestart is being skipped since dpkg has failed
パッケージの修正処理が完了しました。
これでようやくapt upgrade
を実行することが出来ました。
sudo apt upgrade
参考サイト