私は逃げたpkcon update force
。 PackageKitがオプションの無効化only_trusted:0
に関するタスクを記録していることがわかりました。私はそれを得only_trusted
ませんでしたが。--allow-untrusted
pkcon
PackageKit[19819]: uid 1000 is trying to obtain org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
したがって、PackageKitは信頼できないパッケージを許可するためのログメッセージを作成しています。私はそうしたくありません。私はそれをするように頼んでいませんでした。このメッセージが記録されるのはなぜですか? PackageKitに問題がありますか?
$ sudo systemctl status packagekit.service
● packagekit.service - PackageKit Daemon
Loaded: loaded (/usr/lib/systemd/system/packagekit.service; static; vendor preset: disabled)
Active: active (running) since Mon 2019-04-08 12:34:58 BST; 1min 29s ago
Main PID: 19819 (packagekitd)
Tasks: 3 (limit: 4915)
Memory: 192.7M
CGroup: /system.slice/packagekit.service
└─19819 /usr/libexec/packagekitd
Apr 08 12:34:58 alan-laptop PackageKit[19819]: daemon start
Apr 08 12:34:58 alan-laptop systemd[1]: Starting PackageKit Daemon...
Apr 08 12:34:58 alan-laptop systemd[1]: Started PackageKit Daemon.
Apr 08 12:34:58 alan-laptop PackageKit[19819]: uid 1000 is trying to obtain org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
Apr 08 12:34:58 alan-laptop PackageKit[19819]: uid 1000 obtained auth for org.freedesktop.packagekit.system-sources-refresh
Apr 08 12:35:09 alan-laptop PackageKit[19819]: refresh-cache transaction /17652_eabaebee from uid 1000 finished with success after 11018ms
$ rpm -q PackageKit
PackageKit-1.1.12-2.fc29.x86_64
答え1
この--allow-untrusted
オプションとonly_trusted
フラグはリフレッシュ時には関係ありません。
パッケージのインストールまたはアップグレード(またはアンインストール、たぶん?)を要求する場合にのみ関連があります。
クライアント側から:
pk-console.c
常にpkcon
コマンドが実行されていることを確認し、--allow_untrusted
それに従ってonly_trusted
属性を設定してくださいpk_task
。しかし:pk_task_refresh_cache_async()
このpk_task
プロパティは無視され、無条件にPK_TRANSACTION_FLAG_ENUM_ONLY_TRUSTED
設定されますPkTaskState::transaction_flags
。- 次に、を呼び出します。ただし、その関数は実際にはどの目的にも使用されません
pk_task_do_async_action()
。PkTaskState::transaction_flags
PkTaskState::role
PK_ROLE_ENUM_REFRESH_CACHE
dnfバックエンドから:
PK_TRANSACTION_FLAG_ENUM_ONLY_TRUSTED
チェックインできる唯一の場所PkBackendDnfJobData::transaction_flags
はですpk_backend_transaction_run()
。pk_backend_transaction_run()
から呼び出されませんでしたpk_backend_refresh_cache_thread()
。パッケージをインストールまたは削除する操作にのみ関連します。たとえば、から呼び出されますpk_backend_install_packages_thread()
。