「はロックを取得できませんでした/var/ lib / dpkg / lock
」エラーは、仮想マシンで実行されているDebian/Ubuntuではかなり一般的です。インターネット上の既存の回避策(つまり、apt-getプロセスを強制終了するか、ロックファイルを削除する)は、システムに損傷を与える可能性があり、将来同じエラーが発生する可能性があるため、理想的ではありません。
「ロック/var/ lib / dpkg/lockを取得できませんでした」エラーを1回限り修正
このエラーの本当の原因を説明し、それを完全に修正する方法を示します。エラーメッセージは次のとおりです。
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?
エラーメッセージはすでに問題の原因のヒントを示しています:別のプロセスが / var / lib / dpkg /
を使用しています 。これは、Ubuntuがデフォルトでセキュリティアップデートの無人アップグレードを有効にしているためです。
Ubuntu OSの起動が完了すると、 apt-get update
が自動的に実行されます。 指図。利用可能なセキュリティアップデートがある場合は、バックグラウンドでインストールされます。したがって、 sudo apt upgrade
を実行すると 同時にコマンドを実行すると、上記のエラーが表示されます。ベアメタルでUbuntuを使用するほど、VirtualboxまたはVMwareワークステーションでUbuntuを使用しないため、Ubuntu仮想マシンが更新されることはめったになく、仮想マシンでこのエラーが頻繁に発生します。
ベアメタルでUbuntuデスクトップを使用する場合でも、仮想マシンでUbuntuデスクトップを使用する場合でも、無人アップグレードを無効にして、この問題を完全に解決できます。
注:このエラーがUbuntuサーバーで発生することはめったにありません。サーバーで無人アップグレードを有効にして、セキュリティアップデートを自動的にインストールすることをお勧めします。
方法は次のとおりです。 ソフトウェアとアップデート
を開きます アプリケーションメニューから。
次に、[更新コード>]をクリックします タブ。デフォルトでは、セキュリティ更新プログラムは自動的にダウンロードおよびインストールされます。
すぐに表示
に変更できます 、したがって、 sudo apt-get upgrade
は実行されません バックグラウンドでコマンドを実行します。
次に、この変更を有効にするためのユーザーパスワードを入力します。
その後、コンピュータを再起動します。
コマンドラインからの無人アップグレードを無効にする
コマンドラインからも同じ結果を得ることができます。ターミナルで、 /etc/apt/apt.conf.d/20auto-upgrades
を開きます nanoのようなコマンドラインテキストエディタを使用したファイル。
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
元の内容は次のとおりです。
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "1";
自動セキュリティ更新を無効にするには、次のように変更します
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "0"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0";
Nanoテキストエディタでファイルを保存するには、 Ctrl + O
を押します。 、次にEnterキーを押して、ファイル名を確認します。 Ctrl + X
を押します 出る。次に、コンピュータを再起動します。
更新
ある読者から、上記の手順を実行した後でも、 sudo apt update
を実行すると、エラーメッセージが表示される可能性があるとのことです。 Ubuntuの起動が終了した直後のコマンド。これは、背景の「 apt update
」はまだ終了していません。
パッケージを手動で更新することが多い場合は、「更新を自動的に確認する」を毎週
に設定することをお勧めします。 daily
の代わりに 。エラーメッセージを完全に修正するには、値を Never
に設定します。 。
Ubuntuはいつ無人アップグレードを実行しますか?
Ubuntuは、システムの起動後に無人アップグレードを実行します。また、Systemdは無人アップグレードを実行できます。 apt-daily.service
パッケージリストを毎日更新し、 apt-daily-upgrade.service
に使用されます セキュリティアップデートを毎日ダウンロードしてインストールするために使用されます。次のコマンドでステータスを確認できます:
systemctl status apt-daily.service systemctl status apt-daily-upgrade.service
apt-daily.service
apt-daily.timer
によって制御されます 。タイマーはcronジョブのようなもので、指定された時間に同じ名前のsystemdサービスを実行します。 apt-daily.timer
の構成ファイルは/lib/systemd/system/apt-daily.timer
です。 。その内容は次の方法で確認できます:
cat /lib/systemd/system/apt-daily.timer
出力:
[Unit] Description=Daily apt download activities [Timer] OnCalendar=*-*-* 6,18:00 RandomizedDelaySec=12h Persistent=true [Install] WantedBy=timers.target
緑の線は、 apt-daily.service
を示しています 毎日6:00と18:00に実行されます。 RandomizedDelaySec =12h
別のタイマーの開始時刻が同じ場合、アクションは0〜12時間延期されることを意味します。
apt-daily-upgrade.service
apt-daily-upgrade.timer
によって制御されます 、その構成ファイルは /lib/systemd/system/apt-daily-upgrade.timer
。
cat /lib/systemd/system/apt-daily-upgrade.timer
出力:
[Unit] Description=Daily apt upgrade and clean activities After=apt-daily.timer [Timer] OnCalendar=*-*-* 6:00 RandomizedDelaySec=60m Persistent=true [Install] WantedBy=timers.target
ご覧のとおり、 apt-daily-upgrade.service
毎日午前6時に実行されます。 RandomizedDelaySec =60m
別のタイマーの開始時刻が同じ場合、アクションは0〜60分延期されることを意味します。
2つの.service
ファイルと2つの.timer
ファイルはapt
によってインストールされます パッケージ。/usr/lib/apt/apt.systemd.daily
も付属しています。 apt-daily.service
によって実行されるシェルスクリプト およびapt-daily-upgrade.service
。
/usr/lib/apt/apt.systemd.daily
シェルスクリプトは、 /etc/apt/apt.conf.d/20auto-upgrades
から構成を読み取ります ファイル。したがって、上記のエラーを修正するために2つのタイマーを無効にする必要はありません。
それでおしまい!この記事が「couldnotget lock / var / lib / dpkg / lock
」の修正に役立つことを願っています 」Ubuntuでのエラー。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。気をつけて🙂