誰かがこれが何を意味するのか教えてもらえないかと思いました。
E: dpkg was interrupted, you must manually run 'Sudo dpkg --configure -a' to correct the problem.
reidsr@ubuntu:~$ Sudo dpkg --configure -a
dpkg: error: dpkg status database is locked by another process
reidsr@ubuntu:~$
Sudo dpkg --configure -a
を手動で実行するにはどうすればよいですか?
ファーストラン:
lsof /var/lib/dpkg/lock
次に、プロセスが実行されていないことを確認します。
ps cax | grep PID
実行中の場合:
kill PID
#wait
kill -9 PID
プロセスが完了していることを確認します。
ps cax | grep PID
次に、ロックファイルを削除します。
Sudo rm /var/lib/dpkg/lock
Dpkgがそれ自体を修正します。
Sudo dpkg --configure -a
後で元気になります:)
複数のパッケージアプリケーション/コマンド/ツールを同時に実行することはできません。場合によっては、シナプス、apt-get、またはパッケージ更新ツールがバックグラウンドで実行されていることを意味します。他のパッケージツールを閉じるか、終了するのを待ちます。そして、dpkgが実行されます。
試すこともできます:
Sudo apt-get install -f
破損したパッケージを修正するには:
修正;破損した依存関係が存在するシステムを修正しようとします。このオプションをinstall/removeとともに使用すると、パッケージを省略してAPTが解決策を推測できるようにすることができます。パッケージが指定されている場合、これらは問題を完全に修正する必要があります。このオプションは、APTを初めて実行するときに必要になる場合があります。 APT自体は、壊れたパッケージの依存関係がシステムに存在することを許可しません。システムの依存関係構造が破損し、手動の介入が必要になる可能性があります(通常、
dselect(1)
またはdpkg --remove
を使用して問題のあるパッケージを排除することを意味します)。このオプションを-mとともに使用すると、状況によってはエラーが発生する場合があります。構成アイテム:APT :: Get :: Fix-Broken。
以下が役立ちます。
Sudo rm /var/lib/dpkg/lock
Sudo dpkg --configure -a
これは、アップグレードプロセスが中断された場合(接続が失われた場合など)に発生する可能性があります。画面をルート(Sudo su
)として使用して、セッションに戻ることができます。
screen -r
ここにはいくつかの良い答えがありますが、dpkgロックユーザーを見つけるための非lsofメソッドを追加したかっただけです。
ステップ1:dpkgをロックしているユーザーを見つける:
オプション#1:lsofを使用する(マシンに常にインストールされるとは限らない)
lsof /var/lib/dpkg/lock
オプション#2:bashを使用する
for pid in $(ls /proc | egrep [0-9]+); do Sudo ls -l /proc/$pid/fd 2>/dev/null | grep /var/lib/dpkg/lock && echo $pid; done
ステップ2:現在のdpkgユーザーで何をしたいかを決定する
そのようなプロセスがない場合、決定するものはありません。次のステップに進んでください。
それ以外の場合は、プロセスを強制終了するか、正常に終了させるかを決定する必要があります。強制終了する場合は、kill <pid>
を使用します。それでもプロセスが死なない場合は、kill -9 <pid>
を使用して強制終了することを検討できますが、特定の不整合が生じる可能性があります。
ステップ3:ロックファイルを削除する
Sudo rm /var/lib/dpkg/lock
ステップ4:dpkgの内部状態を修正する
Sudo dpkg --configure -a