【Ubuntu】aptで「/var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable」のエラー解決方法
(2021.11.25 記)
POSTFIXを、Webmin経由でaptインストールしようとした際に陥った現象の1つです。
個人的なメモとして発生原因と解消方法を記載しています。
(全行程の所要時間:5分程度)
目次
0.構築環境
■実行環境
・さくらVPN(メモリ:1GB、CPU:2コア、SSD:100GB)
・LinuxOS:Ubuntu18.04
・Apache:2.4
・MySQL:5.7
・PHP:7.2
1.解決方法
「/var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable」というエラーは、要は「config.dat」のプロセスが終了されてないよ!って怒られているので、Windowsで言う所の「プロセス強制終了」をしてあげればいいわけです。
①「fuser」コマンドで、対象プロセスのID(PID)番号を確認する
sudo fuser -v /var/cache/debconf/config.dat
上記を実行すると、プロセスが稼働中であれば以下のようなPID等の情報が返ってくる
※PIDの数字はあくまでも例
USER PID ACCESS COMMAND
/var/cache/debconf/config.dat:
root 993 F.... frontend
②対象PIDを「kill」する
sudo kill <SID>
例えば、上記の流れだと、<SID>には993という数字が入ります。
③再度「fuser」でプロセスを確認し、何も表示されなくなればプロセスが終了、問題解決
が、しかし、「apt」インストールなど絡みでこのエラーに辿り着いた人はおそらく「apt」インストールに関するファイルもロックされている可能性が大です。
これに関しては、別記事にしているので、不明な方は参照してみてください。
簡単に言うと、「エラーで出た対象ロックファイルを削除」してあげればいいだけです。
次項、主な原因を述べているので、気になる方は参照してみてください。
2.原因
自分の場合、GUIが挟む apt install の実行を、GUI表示ができないコマンドツールを利用して実行しフリーズしたのが原因でした。
ツールを強制終了してもこの「config.dat」自体がプロセスに残り続けていたことがエラーの引き金になりました。
インストールやアンインストールの際に、途中で強制終了したり、ターミナルを落としたりすると発生すると思います。
その際は上記でもふれたように「apt」に関する幾つかのファイルもロックされている可能性が高いです。
3.最後に
Ubuntuに限らず、Unix系はWindowsと比べてGUIで解決できるエラーが少ないため、頑張ってディグってコマンドを叩いて直す、みたいなことが多いです。
「何でもできる」自由度の反面、「何でも自分で解決」しなければなりません。
が、逆に何でも自分で解決できれば、何でもできるようになるので、それがUnix系を触る面白さだと思います。
以上。
(不明点あればコメント頂ければ、可能な限りお答えします。)