ウェブサイト検索

Ubuntu の「管理ディレクトリ (/var/lib/dpkg/) をロックできません」を修正


apt-get コマンドや、Ubuntu Linux やその派生版 (私は実際にプライマリ オペレーティング システムとして使用しています) で apt-get コマンドや比較的新しい APT パッケージ管理ツールを使用しているとき日常業務を行っている場合)、「管理ディレクトリ (/var/lib/dpkg/) をロックできません。それは別のプロセスが使用しています」というエラーが発生した可能性があります。コマンドライン。

このエラーは、エラーの原因を正確に知らない可能性がある新しい Linux (Ubuntu) ユーザーにとっては特に迷惑な場合があります。

以下は、Ubuntu 16.10 でのロック ファイル エラーを示す例です。

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] 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?

将来上記のエラーに遭遇した場合に備えて、どうすれば解決できますか?このエラーに対処する方法はいくつかありますが、このガイドでは、最も簡単でおそらく最も効果的な 2 つの解決方法を説明します。

1. すべての apt-get または apt プロセスを検索して強制終了します

以下のコマンドを実行して、名前に単語 apt で構成されるすべてのプロセスのリストを生成します。すべての apt または apt-get< を含むリストが取得されます。 は、ps および grep コマンドをパイプラインとともに使用して処理します。

ps -A | grep apt

上記のコマンドの出力に表示されるapt-get または apt プロセスごとに、以下のコマンドを使用して各プロセスを強制終了します。

プロセスID (PID) は、上のスクリーンショットの最初の列にあります。

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

たとえば、以下のコマンドでは、9SIGKILL シグナルのシグナル番号であり、最初の apt プロセスが強制終了されます。

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. ロックファイルを削除します

ロック ファイルは、Linux システム上の別のファイルまたは一部のデータへのアクセスを単に阻止するだけであり、この概念はWindows や他のオペレーティング システムにも同様に存在します。

apt-get または apt コマンドを実行すると、これらのディレクトリ /var/lib/apt/lists/ のいずれかにロック ファイルが作成されます。 、/var/lib/dpkg/、および /var/cache/apt/archives/

これにより、すでに実行中のapt-get または apt プロセスが、ユーザーによって使用されるファイルを処理する必要がある他のシステム プロセスによって中断されるのを避けることができます。 apt-get または apt。プロセスの実行が終了すると、ロック ファイルは削除されます。

重要: 目立った apt-get または apt プロセスが実行されていないにもかかわらず、上記の 2 つのディレクトリでロックがまだ残っている場合は、プロセスが 1 つの理由で保留されていることを意味している可能性があります。したがって、エラーをクリアするにはロック ファイルを削除する必要があります。

まず、以下のコマンドを実行して、/var/lib/dpkg/ ディレクトリ内のロック ファイルを削除します。

sudo rm /var/lib/dpkg/lock

その後、次のようにパッケージを強制的に再構成します。

sudo dpkg --configure -a

あるいは、以下のように /var/lib/apt/lists/ とキャッシュ ディレクトリ内のロック ファイルを削除します。

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

次に、パッケージのソース リストを次のように更新します。

sudo apt update
OR
sudo apt-get update

結論として、apt-get または apt の実行中に Ubuntu (およびその派生製品) ユーザーが直面する一般的な問題に対処する 2 つの重要な方法を説明しました。適性コマンド。

この一般的なエラーに対処するための、信頼できる共有方法は他にありますか?その後、以下のフィードバック フォームからご連絡ください。

さらに、実行中のプロセスを見つけて強制終了する方法を学び、Linux でプロセスを終了するための kill、pkill、および killall コマンドの簡単なガイドを読んでもよいでしょう。