解決法
1. fuserでロックしているプロセスIDを確認
sudo fuser -v /var/cache/debconf/config.dat
すると,下記のように表示される.
USER PID ACCESS COMMAND
/var/cache/debconf/config.dat:
root 8440 F.... frontend
2. そのPIDのプロセスをkillする
sudo kill <PID>
sudo kill -9 <PID> # 上の行でkillできなかった場合
3. aptコマンド実行
エラーは出なくなるはず。
参考
経緯
UbuntuでCPUの温度を見ようとpsensorを入れました.
すると,他のパッケージのバージョンを上げようとしたら,E: Sub-process /usr/bin/dpkg returned an error code (1)
というエラーが出るようになりました.
以下対処:
- psensorをremoveしようとしても同じエラーが出る.
- エラーメッセージを見たら
aspell-en
というパッケージがエラーの原因のようなので,それをremoveしてみる => やはりエラーでタイトルのメッセージが出る. - stackoverflowで上記解決策を見つけて成功
なお,sudo rm /var/cache/debconf/*.dat
で削除するという回答もありましたが,「削除するのは危険」というコメントがあったのでプロセスをkillする方法を取りました.