
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が何をするのか、それをどのように解決するのかを理解していませんか?
編集する:
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
。しかし、私が知っている唯一のものはpackagekitd
PackageKitデーモンかもしれません。
PackageKitデーモンについて公平に言えば、gnome-software、pk-update-icon、またはKDE Plasma(KDE "Apper"プログラム?)からの要求にのみ応答できると思います。
DebianのPackageKit操作がコマンドと競合する可能性があることは既知の制限ですapt
。また、良いGUIは定期的にセキュリティ更新プログラムをチェックしてインストール通知を提供することが期待されています。完璧な組み合わせではないので残念です!
しかしそれはいいえこれは「常に」発生すると予想されます。通常、バックグラウンド PackageKit 操作は必ずしも実行されません。特に、現在実行中の Debian のような安定したバージョンの Debian ではさらにそうです。 Fedora Linuxと比較して、Debianは大量のアップデートをリリースしておらず、apt update
アップデートがない場合は非常に高速で効率的です。
apt
この問題が頻繁に発生すると、時間がかかるか、apt
PackageKitまたはGUIシステムが再試行し続ける問題が発生する可能性があります。
PackageKit は RedHat から派生しました。 RedHatベースのディストリビューション(Fedora Linuxなど)では、PackageKitがアップデートの自動確認などの「バックグラウンド」タスクを実行できることがわかります。ユーザーがPackageKitにジョブを要求し始めると、バックグラウンドジョブは自動的にキャンセルされます。 Debian+Apperがこのように動作するかどうかわかりません。
あなたはできます努力するpkcon refresh force
pkcon upgrade
+の代わりにApperまたは+を使用してapt update
PackageKitから「フォアグラウンド」アップデートを要求しますapt upgrade
。 PackageKitによるアップグレードは、apt upgrade
PackageKitがパッケージ設定を要求せず、変更された設定ファイルを保持するのか、パッケージの変更で上書きするのか、または一緒にマージするのかを尋ねないという点で若干異なります。
答え2
次のコマンドを試してください。ルートでない場合は、sudo
次のコマンドを試してください。
pkill apt && apt update
このコマンドについてはよくわかりません。これにより、システムで実行されている適切なプロセスが終了します。