別のプロセスが管理ディレクトリ(/ var / lib / dpkg /)をロックできないのですか?


1025

使用しようとするとこのエラーが発生しますapt-get

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?  

どうすれば修正できますか?


18
これは、再起動する場合にも当てはまりますか?古いaptスレッドがファイルをロックしている可能性があります。どれを見つけて強制終了するか、再起動するだけでファイルがロックされます。
ブルーノペレイラ

4
この手順はほとんど常にこの問題を解決しますが、解決しない場合は、その出力(ターミナルからのテキスト)が役立つ場合があります。それを行うことにした場合、質問にこのテキストを追加できます。
エリアケイガン

54
あなたは使用することができますsudo lsof /var/lib/dpkg/lock(空の場合は、ロックが以前のブートから残っていると仮定することができますロックファイルを所有しているプロセスを見つけるためにsudo rm、次に行うことを検討、D) sudo kill -9 <PID>(から<PID>を得るlsof出力。
waltinator

11
これは、他の何かがソフトウェアをインストールまたは削除しており、アクションの実行中にaptデータベースをロックしていることを示している可能性があります。
Foreever

5
Ubuntu 18.04 VMには、無人更新と呼ばれるプロセスがあります。これはroot <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install、マシンの電源を入れるたびにapt更新を実行するように見えるプロセスによって実行されます。更新のサイズに応じて(前回そのマシンを使用してからの時間に相当することが多い)、これには1〜10分かかります。その後、ロックは手動のaptインストールと更新のために解放されます。試してください:sudo ps aux|grep aptまたは `sudo ps aux | grep unattended。
Kjetil S.

回答:


872

これは最後の手段として使用する必要があります。これを不注意に使用すると、システムが破損する可能性があります。これを行う前に、他の 回答を 最初に試してください。

次のコマンドでロックファイルを削除できます。

sudo rm /var/lib/apt/lists/lock

キャッシュディレクトリ内のロックファイルを削除する必要がある場合もあります。

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

その後、Synapticを再度開いてみてください。


13
わかりました...しかし、なぜこれが起こったのですか?
ハイメHablutzel

40
@jaime:おそらく実行中にapt-get(またはGUIフロントエンド)が停止し、aptがロックされた状態のままになりました。
-bouke

10
これをベストアンサーとして受け入れます。正しいもの。
アンワー

9
@AnwarShahいいえ、システムのファイルを削除する前に他の考慮事項があります。
Braiam

22
rm / var / lib / dpkg / lock; dpkg --configure -a:
ウィッチクラフト14年

664

ロックを削除することをお勧めする回答がほぼすべて表示されます。最初の手段としてそれを行うことはお勧めしません。多分他に選択肢がない場合。ロックは、aptプロセスの実行中に配置され、プロセスが完了すると解除されます。明らかなプロセスが実行されていないロックが存在する場合、何らかの理由でプロセスがスタックしている可能性があります。

試してみると

ps aux | grep [a]pt

または

pgrep -a apt

apt少なくとも、という単語を含むプロセスをキャッチします。あなたが表示された場合apt-get、プロセスまたはaptitudeスタックに見えるプロセスを、あなたが試すことができます

sudo kill processnumber

それがうまくいかない場合は試してください

sudo kill -9 processnumber

これによりプロセスが強制終了され、ロックが解除される場合があります。キリングaptまたはaptitudeそれがパッケージのインストールの途中で、実際にある場合を除き、プロセスは無害です。いずれにせよ、プロセスがスタックした場合、おそらくそれを殺す以外に選択肢はありません。

dpkgプロセスが存在する場合、それを直接強制終了するのは良い考えではありません。dpkgアクティブであれば、おそらくパッケージデータベースを操作しているため、強制終了するとパッケージデータベースが一貫性のない状態になる可能性があります。すなわち破損しています。

apt-getまたはaptitudeプロセスを強制終了することは、一般的にはるかに安全です。


18
@Link dpkg通常dpkg、パッケージデータベースを直接操作しているため、強制終了することはお勧めできません。これにより、破損が発生する可能性があります。
ファヒムミタ

18
dpkgを強制終了するとデータベースが破損する可能性がある場合、dpkgの設計は不適切です。期間。
ジェイサリバン14年

10
私にとっては、これは再dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.実行時にエラーになりましたsudo apt-get dist-upgrade。コマンドを実行して問題を解決しました。ニックスが大好き!
ウェインフィップス

5
注、/ コンボkillall apt-getと同じことを行います。pskill
セリン

3
sudo dkpg --configure -a不正なaptプロセスを強制終了した後、正常に戻るには実行する必要があることに気づいたことに注意してください。
starbeamrainbowlabs

219

/var/lib/dpkg/lockファイルを削除し、パッケージの再構成を強制します。

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

これで動作するはずです。


これらのコマンドは役に立ちましたが、今再びインストールしようとすると、次の応答が返されました:lock / var / cache / apt / archives / lock-openを取得できませんでした。以前のロック解除の問題のようにする必要があると思いますが、コマンドの正確なキーワードを教えてください。私は絶対に初心者です。
カーン

1
sudo-ルートとしてコマンドを実行し、 rm-ファイルを削除します。たぶん試してみてくださいsudo rm /var/cache/apt/archives/lock
クバハハ

5
これは良い提案ではありません:盲目的に幸運を取り除くことはdpkgの状態を破壊するかもしれません。
プーリー

5
どうして今では直らないのですか?
マリアンクリューシュピーズ16年

2
これは私のために働いた。上記のawsはしませんでした。
1rq3fea324wre

108

sudoaptコマンドの実行時に使用するのを忘れると、このメッセージが表示されます。

それ以外の場合、これは他の何かがソフトウェアをインストールまたは削除していることを示し、アクションの実行中にaptデータベースをロックしています。これを行うことができるプログラムは次のとおりです。

  • ソフトウェアセンター
  • 更新マネージャー
  • aptリンクインストーラー(これはSCを通過すると思う)
  • apt-getまたはaptitudeコマンドラインユーティリティ。
  • Synaptic Package Manager

重要:システムをクラッシュさせる可能性があるため、最後の手段としてのみ以下を試してください。まず、Faheemの回答で説明されているように、aptまたはFaheemの回答でaptitude説明されているように、実行中のインスタンスを強制終了します

ファイルを削除することでロックを強制的に解除することもできますが、ロックを安全保持しているプログラムを最初に閉じない限り推奨されません。Joãoが提供するコマンドは、ロックを保持しているプログラムを閉じてからロックを削除する必要がありますが、インストールの中断からは保護されません。

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

また、同じコマンドをaptキャッシュロックに使用できます。

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

5
エラーメッセージが表示されたときにソフトウェアを更新していました。
雨滴

20
これは、ME-のために墜落した
umpirsky

5
sudo fuser -cuk /var/cache/apt/archives/lockコンピューターを直接再起動しました。apt-getロック解除されました。
マキシムR. 14

15
これにより、サーバー全体がクラッシュしました。
에이바

5
aptまたはdpkgを途中で強制終了するのは良い考えではありません。
poolie

99

最もヒットする可能性のある方法は次のとおりです。

  • Ubuntuを起動する
  • 端末を起動する
  • タイプ sudo apt-get install whatever

また、コマンドラインaptupdate-manager自動ポーリングと重複しています。

そのため、数分後にもう一度試してみると、問題は解決するはずです。


21
ちょうどファイルを削除することを示唆している半ダースの返信とは対照的な素晴らしいヒント;-)私はランダムに問題に走りました、そしておそらくこれがそうです!
アレックス

2
十分に安全で、sudo apt-get install動作する前に少し待たなければなりませんでした。
-sargas

さて、これは常に機能しているわけではありません。ロックが適切でない場合は、ロックを解除する前にこのaskubuntu.com/a/315791/378845を試してください
Menuka Ishan

@menuka、それを終わらせてみませんか。
poolie

@poolieプロセスの終了を
妨げる

52

1つのプログラムのみがロックを保持できます。aptitude、synaptic、またはadeptを実行していないことを確認してください。プログラムを閉じて再度実行すると、正常に動作します。シナプスを開いているか、apt-getを実行している別のターミナルウィンドウを開いているか、アップデートマネージャーを実行している可能性があります。それらは近くで実行されており、再試行します。

ターミナルでこのコマンドを試して、実行中のものを見つけます

ps -e | grep -e apt -e adept | grep -v grep

注:
これで何も印刷されない場合は、端末で次のように入力してロックを解除します

sudo rm /var/lib/dpkg/lock    
sudo rm /var/cache/apt/archives/lock

これで、任意のパッケージをインストールできます。


9
ロックファイルを削除することは、私が考えると危険なことです。別のプロセスが正当な理由でロックしている場合-そしてそのロックファイルを削除し、以前に行っていたもので強制的にインストールした場合-システムに深刻な悪影響を与える可能性があります。
マルコセッピ

5
上記のすべてが失敗した場合、唯一の方法はロックを解除することです。dpkgおよびapt-get / aptitudeプロセスが実行されていない限り、問題は発生しません
karthick87

pgrep -f 'apt|adept|dpkg'ずっと短いです。
dhchdhd

どうも!これは動作します。pgrep -f 'apt | adept | dpkg'に続いてsudo skill(number)、すべてのnumberをkillしてから、インストールを行います!
作成者

パスとプロセス全体に一致する@Barry。pgrep -a 'apt|adept|dpkg'短い方がより良いと思います。
パブロA

46

(ロックファイルを削除することで発生する可能性のある)バックグラウンドで実行されている可能性のあるインストールを中断せずに機能させる最良の方法は、aptを使用してサービスを停止することです。

エラー:

# sudo apt-get upgrade
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?`

解決:

sudo systemctl stop apt-daily.timer

システムをアップグレードした後、システムをロックするバグがアップグレードで修正される可能性があるため、再度有効にすることをお勧めします。

sudo systemctl start apt-daily.timer

アップグレード後にこのエラーが修正されることを確認していません。確認が完了したら、新しいコメントを追加します


システムをアップグレードし、再びapt-daily.timerサービスを開始した後、私はこれまでこの問題に直面していません。
Jairelee

これはおそらく、上記の高い投票の回答すべてと比較して最もクリーンな方法です。私の場合は問題なく機能しました、ありがとう!
CygnusX1

これは、同様に17.10に完璧に働いた
エルダーオタクを

17.10 +1に対応
Eng.Fouad

2
18.04で正常に動作します。:)
ナビーンクマールV

33

まず、どのプロセスがロックファイルを作成したかを確認する必要がありますlsof

sudo lsof /var/lib/dpkg/lock

または/var/lib/apt/lists/lock問題がある別の状況では:

sudo lsof /var/lib/apt/lists/lock

出力は次のようになります。

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get   12127 root   4uW  REG  252,1        0    86   /var/lib/apt/lists/lock

その後、我々は我々が使用してそれを見つけることができ、commadが何をしているか確認する必要がありますpspgrepなど。コマンドはapt-get次のとおりです:

pgrep apt-get -a

-aスイッチは、私の場合、それはだ、私のための完全なコマンドを示しています。

 pgrep -a apt-get
 12127 apt-get update

updateサブコマンドを実行していることがわかります。次のようなものも実行できます。

ps -f 12127

生成するもの:

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root     12127 12126  0 09:39 pts/0    S+     0:00 apt-get update

リソースが解放されるために、この場合、私はいくつかの分を待つだろうと2または3分の問題の後にまだ存在する場合、またはコマンドは、私は気にしませんでしたものだったか、(このようにシステムに有害ではなかったapt-get update、私が送っ)SIGTERMにプロセス:

sudo kill -15 12127

それは仕事をするはずです、もしそれがSIGINT今回送らなかったら(CTRL+を押すようなものですC):

sudo kill -2 12127

それも機能しなかった場合、SIGHUPkill -1)を送信する必要があり、最後に何も機能しない場合は、単にプロセスを強制終了します。

sudo kill -9 12127

または

sudo pkill -9 apt-get

次に、使用中のリソースを削除します。

sudo rm /var/lib/apt/lists/lock

1つの小さなことは、問題のファイルでは/var/lib/dpkg/lockなく/var/lib/apt/lists/lock、ということです。
チャイT.レックス

1
誰かが最終的に言及していることを根神々に感謝pgrepしてpkill
dhchdhd

1
これは受け入れられた答えでなければなりません。
マルワン・ナビル

インストールまたはアップグレードによってこれが発生したdpkg --configure -a場合も同様に必要になる場合があります
LUXS

これは私の作品
Sundeep

21

このエラー、Update Managerが、通常はログイン直後にパッケージのリストをバックグラウンドで自動的に更新しようとするために発生し、ディレクトリがロックされる可能性があります。

この場合、更新が完了するまで数秒(または最後の更新がかなり前の場合はそれ以上)待つか、Update Managerを起動してステータスを確認します。


Ubuntu 16.04をインストールした直後にこれがありました。Ubuntu Software Centerには、いくつかの更新プログラムを手動でインストールするのを待っていたバックグラウンドプロセスがありました。
jvriesem

16.04の新規インストール後も同じです。それはあまりにもはるかに長い私の場合は「数秒」(私はこの全体のQ&Aページを読む時間を持っていた!)よりしかし、リフレッシュした後ps、私は見ることができ、数回のdpkgものの全体の負荷を更新したと私は最後まで、すべてのことを辛抱強く待っていました。次に、新しいものをインストールする前に、すべてが最新になるまでSoftware Updaterを実行しました。
チャーリージョイント

16

これは、インストールプロセスがロックを設定するときに、アップデートチェックまたはインストールのために「アップデートマネージャ」を並行して実行している場合に発生します。「Update Manager」を実行せずに同じエラーが発生した場合は、から削除する/var/lib/dgkg/lock必要があります。これは間違いなく手動で実行できません

sudo fuser -cuk /var/lib/dpkg/lock
sudo rm -f /var/lib/dpkg/lock

正常に動作します。から取得:https : //askubuntu.com/a/15469/68707


1
これは私の場合の問題でした!
ロンドンロブ14

1
フューザーコマンドが他のプロセスを追跡するために使用されているため、より良いソリューション(まだ生きている場合)
ラースノルディン

16

何かをすぐに削除しないでください。システムが完全に破損する可能性があります。むしろ、現在インストールまたはアンインストールしているプログラムがそのタスクを完了し、その後アクセスできるようになるまで待ちます。現在インストールもアンインストールも何もないと思われる場合は、コマンドでシステムを再起動するだけsudo rebootです。


1
これは回答ではなくコメントのように見えます。代わりに、応答していた回答へのコメントとしてこれを移動できますか?
-jvriesem

4
@jvriesemこれは非常に重要な答えだと思います。なぜなら彼がしているのは他の多くの答えに欠けているものだからです!
フォルカーシーゲル

@jvriesemこれは通常正しい答えです。Linuxコンテナを長時間使用しないと、この問題に頻繁に遭遇します。ちょっと待って。はい、しばらくお待ちください。しかし、物事を混乱させる前に、仕事をさせてください。
earth2jason

これが最初の試みです。ほとんどの場合、この答えは問題を解決します。まだ4〜5回は持っていて、再起動すると常に解決しました。
1

10

セキュリティ更新プログラムが自動インストールに設定されている場合、これは頻繁に発生します。私は文字通り30秒待ち、それで問題が解決します。他の誰かがこの問題に遭遇した場合に備えて、これを投げ捨ててください。


1
ディストリビューションの起動時間に応じて、30分程度かかる場合があります。しかし、物事を混乱させる前に、あなたのディストロに仕事を終わらせるのがおそらく理想的です。
earth2jason

6

私の場合、ロックが解除されるまで数分待たなければなりませんでした(以前はロックaptを保持していたようです)。これはすべて、システムの起動直後に発生しました。


4

ただsudo rm -f /var/lib/apt/lists/lock、再試行してください。

apt-fastは、適切にロックを解除しない場合があります。これは、あなたが中絶しapt-getたりするときに時々起こりdpkgます。


4

私はこの問題を何度も経験しました。私にとって、それはほとんどの場合、apt-getまたは何らかの理由でハングしたというGUIが原因でした。私はそれを殺さなければなりませんでした。

他の答えは、ロックファイルを削除するような抜本的なことをする前に、現在アップデートが実行されていないことを確認することについて非常に良い点をもたらします。ただし、そうではないと確信したら、通常は次のように動作します。私はこのような質問に対する多くの答えを読んで得ました。

これの大部分またはすべてが他の回答で示されていますが、これは修正をいくつかのコマンドに絞り込みます。

sudo fuser -vki /var/lib/dpkg/lock
sudo fuser -vki /var/cache/apt/archives/lock
sudo fuser -vki /var/cache/debconf/config.dat
sudo dpkg --configure -a

何らかの更新プログラムがクラッシュまたは終了した後、他の方法で終了せずにパッケージシステムのロックを解除するために使用します。これらのコマンドは、提示された順序で実行する必要があります。


3

上記のどこにもこの答えは表示されませんが、Ubuntu 16.04ではこの問題も発生しました。原因は私のコンピューターの時間が未来に設定されたことです。(これは、Windows + Ubuntuデュアルブートシステムを使用しているため、現地時間とUTC時間を台無しにしているためです。)

奇妙なことの1つは、ロックされたファイルの日付と時刻が、プログラムを実行した正確な日付と時刻だったことです。

その後、以前の投稿で説明したように「fuser」を使用し、aptは機能しましたが、実行する必要があるという苦情がありましたdpkg -a -reconfigure。私がそれをしたとき、次のようなエラーが出ました:

newline in field name #padding

「/ var / lib / dpkg / updates / 0003」などのファイル内。

これはすべて私が前に見たことがないので非常に奇妙でした。だから、これらは症状だと思い、データと時間を手動で変更しました。ログインした日付/時刻に問題があることは知っていましたが、無視していました。(以前は、インターネットとNTPを介して自動的に設定されていました)。

その後、上記の問題はすべて修正されました...うまくいけば、これは他の誰かを助けます!最も顕著な症状は、おそらく、ロックファイルの日付/時刻がコマンドを実行しようとしている正確な日付/時刻であることです。


3

私の場合、apt-get古いカーネルを削除しているときにXがクラッシュしました。システムモニターを使用して、システムモニターがまだ実行中でスタックしていないことを確認しました。プロセスが終了すると、すべてがうまくいきました。


3

ランチャーをチェックして、Software Updater実行中かどうかを確認します。もしそうならそれを最大化し、それが何をしているか見てみましょう。まだチェックしている場合は、完了するまで待ちます。完了すると、ソフトウェアが最新であることが通知されるため、アプリを閉じます。利用可能な更新があると表示されている場合は、更新を行うか、[後で通知する]をクリックします。このアプリが終了すると、apt-getまたはの使用に戻ることができますapt

実行されSoftware Updaterていない場合は、ダッシュを使用して起動し、完了を待ってから、更新するか「後で通知する」をクリックするかを決定します。このアプリが終了すると、apt-getまたはの使用に戻ることができますapt


2

私の場合、rootユーザーに切り替えてsudo apt-getを試したことに気付かずに同じメッセージを受け取っていました。これに気付いたら、apt-getを実行しましたが、うまくいきました。馬鹿げていますが、それでも一部の人にとってはエラーを説明するかもしれません。


2
ルートとして実行できるので、問題の原因ではありませんsudo(できなくても、このエラーメッセージは生成されません)。より起こりそうなことは、次のコマンドを書いている間に他のプロセスが終了したことです。
wjandrea

同じエラーメッセージが生成されることもあります。
karel


1

私の場合、後:

  1. Firefoxを開きます。
  2. ターミナルを開く

入力しました


sudo apt update
sudp apt upgrade
その後、私はその問題を取得します

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
私はそれを修正し、実行後に表示されたコマンドを実行しました sudo apt update

apt list --upgradable

このコマンドは、私の場合はFirefoxのみのプログラムのリストを表示します。Firefoxを閉じた後、問題なくコマンドを再実行できました。

sudo apt upgrade

0

スクリプトでこのバグを予防的に防止することに興味がある人にとっては、-qフラグがオンapt upgrade -yqになっていることがこの問題の原因であることがわかりました。アップグレードプロセス中に、時折警告(デスクトップの更新行に沿って何か、続行しますか)が表示されると思います。これらの警告が抑制された場合、保護されているファイルのロックを解除できなくなると思いますそしてそれは動けなくなった。

確かに、私はこのエラーを100%再現するのに苦労しましたが、その-qオプションをなくすことで問題は完全に解決しました


0

他のほとんどの人と同様に、ロックが解除されるのを待ちました。30分後、私はあきらめて別のディストリビューションにハードブートしました。そこから、私はここに着陸したいくつかの研究にインターネットを使用しました。

それは判明unattended-upgrades.service実行されています。壊れたシステムを再起動して実行していることがわかりました:

sudo systemctl disable apt-daily.service
sudo systemctl disable unattended-upgrades.service
sudo systemctl disable apt-daily-upgrade.service
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.timer
sudo shutdown -r # Note it will take a couple minutes to reboot

壊れたシステムを再び動作させることができました:

sudo apt update
sudo apt upgrade
sudo apt install -f

しかしapt、そもそも報告された保管されたパッケージと不可能な状況は修正されませんでした。aptそもそもこれがブート時にロックアップを引き起こしていたように思われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.