Cockpit "Cannot refresh cache whilst offline" 报错处理¶
问题¶
在使用 Cockpit 时,访问 Software Updates
页面报错:
Loading available updates failed
Cannot refresh cache whilst offline
Please reload the page after resolving the issue.
此外,在 cockpit-pcp 页面执行 Install cockpit-pcp
,也同样报错:
Install software
cockpit-pcp will be installed.
Danger alert:Error: Cannot refresh cache whilst offline
导致无法安装
排查¶
在 Ubuntu 中,如果安装使用了 NetworkManager ,就需要至少管理一个网络接口,否则就会报告系统处于 offline
状态。由于 PackageKit
查询这个信息,就会导致以为系统处于 offline
状态。
我的 zcloud
使用了 Systemd Networkd服务 来替代 NetworkManager 管理网络(通过 切换NetworkManager ),所以在 netplan网络配置 的配置中,所有 renderer
配置都是 networkd
执行检查 NetworkManager
nmcli d
输出显示:
DEVICE TYPE STATE CONNECTION
br0 bridge unmanaged --
docker0 bridge unmanaged --
virbr0 bridge unmanaged --
eno1 ethernet unmanaged --
...
由于所有网络接口都不在 NetworkManager 管理中,就导致了上述问题
参考文档 Ubuntu: packagekit cannot refresh cache whilst offline #8477 中提出配置一个 dummy
网络给 NetworkManager 管理,我试验了一下没有成功:
原先采用 Systemd Networkd服务 配置了复杂的网络,切换更改比较麻烦
我也尝试保留 Systemd Networkd服务 配置,仅单独配置一个
/etc/netplan/03-fake-config.yaml
来激活一个fake0
网络接口,同时启动运行 NetworkManager ,但是刷新 访问Software Updates
页面报错依旧(现在回想起来也许是漏了重启packagekit.service
)
感觉在 Ubuntu Linux 环境中, 切换NetworkManager 切换回NetworkManager应该可以。但是既然我直接切换 NetworkManager 失败该怎么解决呢?
packagekit: Debian 10 Buster without NetworkManager: Cannot refresh cache whilst offline #13002 提供了解决线索: PackageKit won't work without NetworkManager (PackageKit官方FAQ) :
不使用 NetworkManager 的情况下使用 PackageKit ,要么禁止 NetworkManager
服务,要么修订 /etc/PackageKit/PackageKit.conf
配置 UseNetworkManager=false
解决¶
所以,我实践解决的方法是:
修改
/etc/PackageKit/PackageKit.conf
在[Daemon]
段落添加:UseNetworkManager = false
然后重启
PackageKit
服务( 重要,否则访问Software Updates
页面依然报错 ):systemctl restart packagekit.service
然后访问 Software Updates
页面等待页面刷新以后就能够看到刷新出需要更新的系统软件包: