システムを更新したい場合、aptは常に他の責任にロックされています。

システムを更新したい場合、aptは常に他の責任にロックされています。

update私のシステムの1つにアクセスしようとすると、apt他のプロセスによって「ロックされている」ことがよくあります。同じ日にも何度も起こります。戻るkillには、このコマンドと最上位プロセスを実行する必要がありますaptが、この問題はあってはなりません。以前はそんなことはなかった。

これを行うと、apt update次のような結果が得られます。

root ~ # apt update
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

私のシステムはDebianstretch 9.8で、すべてのアップデートがインストールされています。 KDEプラズマデスクトップを使用してください。

root ~ # ps aux | grep apt
_apt     25783  9.0  0.1  64300 24956 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25784  8.9  0.1  64300 25032 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25785  8.9  0.2 206296 35636 ?        S    10:12   0:59 /usr/lib/apt/methods/https
_apt     25786  9.0  0.2 206300 35532 ?        S    10:12   0:59 /usr/lib/apt/methods/https
_apt     25787  9.0  0.1  64300 25012 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25788  8.9  0.1  64300 25008 ?        S    10:12   0:58 /usr/lib/apt/methods/http
_apt     25789  9.1  0.1  64300 25192 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25790  9.1  0.1  64300 24984 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25817  4.8  0.1  56876 21644 ?        S    10:14   0:28 /usr/lib/apt/methods/gpgv
_apt     25818  4.8  0.2 206296 35568 ?        S    10:14   0:28 /usr/lib/apt/methods/https
_apt     25820  4.7  0.2 206304 35636 ?        S    10:14   0:27 /usr/lib/apt/methods/https
_apt     26426  0.0  0.1  56876 19752 ?        S    10:22   0:00 /usr/lib/apt/methods/gpgv
_apt     26427  0.0  0.0   4276  1656 ?        S    10:22   0:00 /bin/sh /usr/bin/apt-key --quiet --readonly verify --status-fd 3 /tmp/apt.sig.LTumm1 /tmp/apt.data.hNgDBV
_apt     26511  104  0.0  38092  8508 ?        R    10:23   0:03 apt-config shell GPGV Apt::Key::gpgvcommand
root     26513  0.0  0.0  12788  1000 pts/1    S+   10:23   0:00 grep apt

質問:

これがaptが何をするのか、それをどのように解決するのかを理解していませんか?

編集する:

pstree-a

root ~ # apt list packagekit
Listing... Done
packagekit/stable,stable,now 1.1.5-2+deb9u1 amd64 [installed,automatic]

root ~ # apt list aptdaemon
Listing... Done

ベストアンサー1

これまでの回答の詳細:

出力psにno /usr/bin/apt-get(または/usr/bin/apt)コマンドが表示されるため、適切な子プロセスは他のプロセスから開始する必要があります。プロセスがlibaptライブラリを使用している必要があります。たとえば、この親プロセスが何であるかを確認する必要がありますpstree。しかし、私が知っている唯一のものはpackagekitdPackageKitデーモンかもしれません。

PackageKitデーモンについて公平に言えば、gnome-software、pk-update-icon、またはKDE Plasma(KDE "Apper"プログラム?)からの要求にのみ応答できると思います。

DebianのPackageKit操作がコマンドと競合する可能性があることは既知の制限ですapt。また、良いGUIは定期的にセキュリティ更新プログラムをチェックしてインストール通知を提供することが期待されています。完璧な組み合わせではないので残念です!

しかしそれはいいえこれは「常に」発生すると予想されます。通常、バックグラウンド PackageKit 操作は必ずしも実行されません。特に、現在実行中の Debian のような安定したバージョンの Debian ではさらにそうです。 Fedora Linuxと比較して、Debianは大量のアップデートをリリースしておらず、apt updateアップデートがない場合は非常に高速で効率的です。

aptこの問題が頻繁に発生すると、時間がかかるか、aptPackageKitまたはGUIシステムが再試行し続ける問題が発生する可能性があります。


PackageKit は RedHat から派生しました。 RedHatベースのディストリビューション(Fedora Linuxなど)では、PackageKitがアップデートの自動確認などの「バックグラウンド」タスクを実行できることがわかります。ユーザーがPackageKitにジョブを要求し始めると、バックグラウンドジョブは自動的にキャンセルされます。 Debian+Apperがこのように動作するかどうかわかりません。

あなたはできます努力するpkcon refresh forcepkcon upgrade+の代わりにApperまたは+を使用してapt updatePackageKitから「フォアグラウンド」アップデートを要求しますapt upgrade。 PackageKitによるアップグレードは、apt upgradePackageKitがパッケージ設定を要求せず、変更された設定ファイルを保持するのか、パッケージの変更で上書きするのか、または一緒にマージするのかを尋ねないという点で若干異なります。

おすすめ記事