Linux(测试版)刷新软件包列表遇到 GPG 错误的解决方法
错误表现
在 FydeOS 的Linux 子系统中执行 sudo apt-get update
时可能会遇到类似下面的错误信息:
W: GPG error: https://deb-mirror.fydeos.com/cros-packages/79 buster Release: The following signatures were invalid: EXPKEYSIG 6494C6D6997C215E Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
...
Updating from such a repository can't be done securely, and is therefore disabled by default.
该错误导致 Linux 子系统无法通过这个源更新软件包。
错误原因
FydeOS 的 Linux 子系统中使用的源是 https://deb-mirror.fydeos.com/cros-packages
,这个源是 Google 官方源 https://storage.googleapis.com/cros-packages
的镜像地址。上述错误产生的原因是 Google 近期在更换密钥的过程中出现了问题,导致 apt
无法验证源中各个包的签名,所以使用 Google 的源也会出现上述错误。
该 bug 的详情见 Issue 1045292: crostini signing keys expired。
解决办法
可以通过更新用于验证的公钥,或者跳过验证来解决。
更新公钥
首先应该尝试的方法是更新公钥,让验证包签名的流程顺利进行。
执行命令
sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
更新公钥,命令执行成功后,再重试 sudo apt-get update
。
跳过验证
如果上述 apt-key
命令执行失败,或者执行成功后,sudo apt-get update
时仍然出现 GPG 错误,可以尝试在 Linux 子系统中以 root 权限(sudo)修改 /etc/apt/sources.list.d/cros.list
文件,在 FydeOS 源地址前加上 [trusted=yes]
,具体改动为(省略了 URL 中后半部分的版本号等内容):
deb https://deb-mirror.fydeos.com/cros-packages/......
修改为
deb [trusted=yes] https://deb-mirror.fydeos.com/cros-packages/......
这样改动后,sudo apt-get update
时还是会看到 GPG 错误,但是这个源不会被禁用,仍然可以从这个源更新软件包。