作者: RunThem
未经允许, 禁止转载, 尤其 CSDN
, 违者必究
引言
由于我使用的 Linux
发行版是 Debian
, 不会向 Arch
那样经常需要更新, 我都是几个月才更新一次的, 最近我更新了一次, 当时并没有发生什么问题, 出现问题的是昨天晚上, 我想装 Docker
, 但是当我按官网文档去执行的时候, 再次执行 apt update
就出现问题了.
经过看报错, 一共是有两个问题的
- does not have a Release file. Updating from such a repository can’t be done securely, and is therefore disabled by default
- Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg)
一个是错误, 一个是告警, 首先说明一下, 这两个问题都是我使用的是 Debian
测试源的情况下出现的, 我在更新源之前是 bullseye
, 更新后成了 bookworm
, 你可以使用 cat /etc/os-release
查看你是什么版本的系统.
1. 解决错误
显示解决一下添加 docker
源出现的错误, 显示该源没有 Release
文件, 下面就是执行 docker
官方给出的脚本命令执行后的结果.
1
| deb [arch=amd64] https://download.docker.com/linux/debian bookworm stable
|
源连接后面的 bookworm
就是你的系统版本, 源更新就是从上面的源里面去找对应系统的 Release
文件, 那我们看一下这个 Url
下有什么文件.
gpg
是源的公钥, 用于验证的, dists
就是真正的包所在, 下图就是点进去的目录, 可以看到是没有我的系统版本(bookworm
)的源的, 这就是更新源报错的问题.
解决的方法就是将源连接中系统版本调整成源中存在的与你的版本最近的版本, 比如我是 bookworm
, 就改成 bullseye
, 就可以了, 这两个版本差别不大, 一个是稳定版, 一个是测试版.
2. 解决告警
告警的原因有两种, 一是 源公钥的路径
有问题, 其实就是上一个版本的 源公钥
的存放地址是 /usr/share/keyrings
.
1
2
3
4
5
6
7
8
9
| iccy@RunThem /u/share [1]> cd keyrings/
iccy@RunThem /u/s/keyrings> ls
debian-archive-bullseye-automatic.gpg debian-archive-removed-keys.gpg
debian-archive-bullseye-security-automatic.gpg debian-archive-stretch-automatic.gpg
debian-archive-bullseye-stable.gpg debian-archive-stretch-security-automatic.gpg
debian-archive-buster-automatic.gpg debian-archive-stretch-stable.gpg
debian-archive-buster-security-automatic.gpg docker-archive-keyring.gpg
debian-archive-buster-stable.gpg vscodium-archive-keyring.gpg
debian-archive-keyring.gpg
|
新版本的 源公钥
放在 /etc/apt/trusted.gpg.d
下了, 所以你的第三方 源公钥
没有修改位置的话, 就会告警, 如: vscodium, sublime等, 解决的方式就是将 源公钥
复制到新路径下.
1
2
3
4
5
6
7
| iccy@RunThem /e/a/trusted.gpg.d> ls
debian-archive-bullseye-automatic.gpg debian-archive-stretch-automatic.gpg
debian-archive-bullseye-security-automatic.gpg debian-archive-stretch-security-automatic.gpg
debian-archive-bullseye-stable.gpg debian-archive-stretch-stable.gpg
debian-archive-buster-automatic.gpg docker-archive-keyring.gpg
debian-archive-buster-security-automatic.gpg google-chrome.gpg
debian-archive-buster-stable.gpg v2raya.asc
|
第二是 源公钥
自身有问题, 源公钥
是直接下载的话是明文的, 在新的 Debian
中这样是不行的, 如:
1
2
3
4
5
| # 这是sublime官网上的公钥添加方式, 有两个问题, 第一就是路径问题, 第二是apt-key add -被废弃了
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
# 正确的方式如下
curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sublimehq-pub.gpg
|
这样既修改了目标路径, 又使用了 gpg
加密 源公钥
.
这样应该就没有问题了, 至少我这边是没有问题的, 笑.