📚

dpkgがlockする原因と対処法

2022/01/02に公開

$ sudo apt-get install hogegoe や
$ sudo apt-get purge hogehoge を
ctrl+z か ctrl+cで、実行を中断にすると、
dpkg(aptのファイル解凍系ライブラリ)にlockがかかり、
下のようにコマンドプロントいっぱいに、
/var/lib/dpkg/lock-frontend
と流れ続けます。

途中で電源が落ちてaptの処理が正しく終了されなかったり、
または正しく終了したつもりが、lockファイルが残った状態だと
PC起動画面に、/var/lib/dpkg/lock-frontend の処理が流れ続けます。

正直、初心者の人が初めてこれを見ると『PCが壊れた』とか、
『ハッキングに遭った』思う方もいるかもしれません。

事後対処法:
ctrl+z か ctrl+cで、dpkg/lock-frontend を止め、
$ cd /var/lib/dpkg/ のディレクトリにいき、
lock-frontend と lock のキャッシュを削除する。

$ cd /var/lib/dpkg/
sudo rm -rf lock lock-frontend

消して大丈夫?と思った、そこのあなた。
この先、aptを中断するたびに、何度でもこの画面と
lockファイルのキャッシュの消去(rm = remove)をさせられるので、
サーバーの管理業務などをする方は慣れておいた良いでしょう。

あと、これの/var/lib/apt/listsの場合も同じで
cd /var/lib/apt/lists
sudo rm -rf lock lock-frontendで正常に削除できます。

あと、var/cache/apt/archives/ でも同じ現象、
同じ処理で解決できます。

あと、超レアケースなのかもしれませんが、アップデート中に
/var/lib/dpkg/updates にロックがかかってしまい、
/var/lib/dpkg/lock-frontend の削除をしても
尚ロックがかかり続ける場合があり、その場合、

①スクリプトを2つ(2窓で)開き、片側でアップデートorアップグレードを進行。
②アップデートなどの進行が止まったら、その都度、
/var/lib/dpkg/updatesのキャッシュや/var/lib/dpkgにlock-frontend と lockの削除
※削除コマンドはsudo rm -rf lock sudo rm -rf lock-frontend
/var/lib/dpkg/updatesのキャッシュは、ここ。
同じく 0001 0002 000n.....と生成され消えて行くので、詰まっているファイルを削除

補完処理として、
sudo dpkg --configure -a
sudo apt --fix-broken install
を実行。

sudo apt --fix-missing install -f hogehoge
sudo apt --fix-broken reinstall hogehoge
sudo apt --fix-missing reinstall -f hogehoge

などで、インストールし直すも良いかもしれません。

/var/lib/dpkg/updates lockエラーは、
そうそう見ることないのですが、バージョンが古すぎてとか
依存の関係でたまに出ることがあるみたいです。

ubuntuは研究所とか、ファイルサーバーとしても、
使ってるコアなユーザーが多いので、何か情報共有できる方
いたらよろしくお願い致します。

マジで日本人のubuntunメインの
仲間いなくて困ってます💦

よろしくお願い致します。

Discussion