管理ディレクトリ(/var/lib/dpkg/)をロックできないのは、他のプロセスが使用しているから?

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?  

どうしたら直せますか?

aptコマンドを実行する際にsudoを忘れていると、このメッセージが表示されます。

それ以外の場合は、何か他のものがソフトウェアをインストールしたり削除したりして、その操作を行っている間にaptデータベースをロックしたというサインです。このようなことができるプログラムは

  • ソフトウェアセンター
  • アップデートマネージャ
  • aptリンクインストーラー (現在はSCを経由していると思います)
  • apt-getまたはaptitudeコマンドラインユーティリティ。
  • Synapticパッケージマネージャー

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

ファイルを削除することで強制的にロックを解除することができますが、ロックを保持しているプログラムを最初に安全に終了させないと、破損やインストールの中断を引き起こす可能性があるため、お勧めできません(悪い意味で)。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
解説 (15)

一番当たる可能性が高いのは

  • ブートUbuntu
  • ターミナルを起動します。
  • sudo apt-get install whatever` と入力します。

と入力すると、コマンドラインの aptupdate-manager が自動的にポーリングして重なります。

*なので、数分後にもう一度試してみれば、解決するはずです。

解説 (9)

ロックを保持できるのは1つのプログラムだけです。aptitudeやsynaptic、adeptなどのプログラムが起動していないか確認してください。synapticを開いているか、apt-getを実行している別のターミナルウィンドウを開いているか、update managerを実行しているかを確認し、どれかが実行されていれば、それを閉じてから再度試してください。

ターミナルで次のコマンドを実行して、何が実行されているかを確認してください。

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

注:。 これで何も表示されない場合は、ターミナルで次のように入力してロックを解除します。

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

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

解説 (7)