web-dev-qa-db-ja.com

dpkg:エラー:dpkgステータスデータベースは別のプロセスによってロックされています

誰かがこれが何を意味するのか教えてもらえないかと思いました。

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を手動で実行するにはどうすればよいですか?

66
reidar

ファーストラン:

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

後で元気になります:)

91
helper

複数のパッケージアプリケーション/コマンド/ツールを同時に実行することはできません。場合によっては、シナプス、apt-get、またはパッケージ更新ツールがバックグラウンドで実行されていることを意味します。他のパッケージツールを閉じるか、終了するのを待ちます。そして、dpkgが実行されます。

9
ttoine

試すこともできます:

Sudo apt-get install -f

破損したパッケージを修正するには:

修正;破損した依存関係が存在するシステムを修正しようとします。このオプションをinstall/removeとともに使用すると、パッケージを省略してAPTが解決策を推測できるようにすることができます。パッケージが指定されている場合、これらは問題を完全に修正する必要があります。このオプションは、APTを初めて実行するときに必要になる場合があります。 APT自体は、壊れたパッケージの依存関係がシステムに存在することを許可しません。システムの依存関係構造が破損し、手動の介入が必要になる可能性があります(通常、dselect(1)またはdpkg --removeを使用して問題のあるパッケージを排除することを意味します)。このオプションを-mとともに使用すると、状況によってはエラーが発生する場合があります。構成アイテム:APT :: Get :: Fix-Broken。

8
blade19899

以下が役立ちます。

Sudo rm /var/lib/dpkg/lock

Sudo dpkg --configure -a
3
Deepak Singhvi

これは、アップグレードプロセスが中断された場合(接続が失われた場合など)に発生する可能性があります。画面をルート(Sudo su)として使用して、セッションに戻ることができます。

screen -r
0
Xeoncross

ここにはいくつかの良い答えがありますが、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

0
Daniel Trugman