背景
使用阿里云的镜像安装k8s软件时,执行了如下命令
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
添加了一个key,然后添加了一个下载源,最后update更新一下.
接下来在执行apt-get update
的时候,遇到错误:
root@debian:~# apt-get update
Hit:1 http://mirrors.huaweicloud.com/debian bookworm InRelease
Hit:2 http://mirrors.huaweicloud.com/debian bookworm-updates InRelease
Hit:3 http://security.debian.org/debian-security bookworm-security InRelease
Hit:4 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease
Reading package lists... Done
W: https://mirrors.aliyun.com/kubernetes/apt/dists/kubernetes-xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
解决方案
出现的原因是因为apt-get update命令使用了过时的 apt-key 工具导致的,这实际是一条警告.在新版本的apt中不再使用apt-key来管理软件源的密钥了.
前面curl和请求地址不变.
管道后面的命令修改为使用gpg命令 -o 指定一个路径
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
接下来修改对应的apt源文件:
vim /etc/apt/sources.list.d/kubernetes.list
注释内容为原有内容.
在原来的基础上,deb后面新增了 [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg]
这里的路径就是上面-o保存的文件的路径
#deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main