Ubuntu Linux またはその派生製品である Linux Mint (私は毎日の仕事でメイン OS として実際に使用している) で apt-get コマンドまたは比較的新しい APT パッケージ管理ツールを使用していると、コマンド ラインで “unable to lock administration directory (/var/lib/dpkg/) is another process using it” というエラーに遭遇したことがあるかもしれません。
このエラーは、特に、エラーの原因がよくわからない Linux (Ubuntu) の新規ユーザーにとって、非常に迷惑なものです。10:
tecmint@TecMint:~$ sudo apt install neofetch password for tecmint: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?
以下の出力は、同じエラーの別の可能な例です:
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)E: Unable to lock directory /var/lib/apt/lists/ 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?
将来、上記のエラーにぶつかった場合、どのように解決できますか。
Find and Kill all apt-get or apt Processes
Run the command below to generate all processes whose name comprises of the word apt, you will get the list inclusive of all apt or apt-get processes by using ps
and grep commands together with a pipeline.Skip.Skip.Skip.
$ ps -A | grep apt
上記のコマンドの出力に表示される各 apt-get または apt プロセスについて、以下のコマンドを使用して各プロセスを強制終了します。
$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber
たとえば、以下のコマンドでは、9
は SIGKILL シグナルのシグナル番号で、最初の apt プロセスを強制終了します:
$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431
ロックファイルの削除
ロックファイルは単に Linux システム上の別のファイルまたは一部のデータへのアクセスを防止するだけですが、この概念は Windows や他の OS でも同様に存在します。
いったん apt-get または apt コマンドを実行すると、ロック ファイルが /var/lib/apt/lists/, /var/lib/dpkg/, /var/cache/apt/archives/ のいずれかのディレクトリの下に作成されます。 プロセスの実行が終了すると、ロックファイルは削除されます。
重要: apt-get または apt プロセスが実行されていない状態で、上記の 2 つのディレクトリでロックがまだ終了している場合、これはプロセスが何らかの理由で保持されていることを意味する場合があり、エラーをクリアするためにロックファイルを削除する必要があります。
まず、以下のコマンドを実行して /var/lib/dpkg/
ディレクトリのロックファイルを削除します:
$ sudo rm /var/lib/dpkg/lock
その後、以下のようにパッケージを強制的に再設定します:
$ sudo dpkg --configure -a
あるいは、以下のように /var/lib/apt/lists/
と cache ディレクトリのロックファイルを削除してください: ロックファイルを削除した後、apt-get を実行します。
$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock
次に、次のようにパッケージ ソース リストを更新します:
$ sudo apt updateOR$ sudo apt-get update
最後に、Ubuntu (とその派生製品) ユーザーが apt-get または apt および aptitude コマンドを実行中に直面する共通の問題に対処する重要な方法を 2 つ説明しました。
この一般的なエラーに対処するために意味する、共有する他の信頼できる方法がありますか?
さらに、実行中のプロセスを検索して終了する方法を学び、Linux でプロセスを終了するための kill、pkill、および killall コマンドの簡単なガイドを読み通すこともできます。