ubuntu软件源公钥配置例子 gpg

在旧版本(23.10 及以前)中,所有源都写在一个大文件 /etc/apt/sources.list 里。
在新版本中:
主文件废弃/简化:/etc/apt/sources.list 现在通常只包含一行注释,或者指向新目录。
新位置:官方源被移动到了 /etc/apt/sources.list.d/ubuntu.sources。
新格式:文件格式从传统的 deb http://… 变成了更易读的 DEB822 格式(类似 YAML 的键值对)。

由于格式变了,不能直接用以前的 sed 命令简单替换域名,因为新格式是多行的块状结构。

Ubuntu 24.04 (Noble Numbat) 及更新版本正在大力推行新的配置格式,后缀名从 .list 变成了 .sources。
但这并不意味着 .list 被彻底废弃了,目前是一个“新旧共存”的过渡期。


1下载公钥 可以跳过【第 1 步:创建密钥环目录并下载公钥】
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg > gpg
2将ASCII码格式公钥(gpg)转换成二进制
[二进制 (Binary)-》armor-》ASCII]
【且最好转换为二进制格式(虽然 ASCII 也可以,但二进制更标准)】
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/dockergpg.gpg
3创建一个.sources 文件在/etc/apt/sources.list.d目录下
docker.sources

Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu
Suites: noble
Components: stable
Architectures: amd64 arm64 armhf
Signed-By: /etc/apt/keyrings/dockergpg.gpg

下面整个复制执行

# 1. 获取系统版本代号 (例如: noble, jammy)
CODENAME=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2)

# 2. 定义你确认存在的密钥文件路径
KEYRING="/etc/apt/keyrings/dockergpg.gpg"

# 3. 再次确认文件是否存在,避免后续报错
if [ ! -f "$KEYRING" ]; then
    echo "❌ 警告: 系统未找到文件 $KEYRING"
    echo "请确认文件名是否真的包含两个 'g' (dockergpg.gpg),或者先创建该文件。"
    # 如果文件确实不存在,取消下面这行的注释来自动下载并重命名为 dockergpg.gpg
    # curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o $KEYRING
else
    echo "✅ 密钥文件确认存在: $KEYRING"
fi

# 4. 写入 .sources 文件 (注意后缀是 .sources)
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu
Suites: ${CODENAME}
Components: stable
Architectures: amd64 arm64 armhf
Signed-By: ${KEYRING}
EOF

echo "----------------------------------------"
echo "✅ 配置已生成到 /etc/apt/sources.list.d/docker.sources"
echo "内容预览:"
cat /etc/apt/sources.list.d/docker.sources
echo "----------------------------------------"
echo "下一步请运行: sudo apt update"

老:::
创建一个.list 文件在/etc/apt/sources.list.d目录下
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/dockergpg.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

4更新并验证
sudo apt-get -y update
apt-cache policy docker-ce
参考:
https://www.cnblogs.com/Chary/articles/18096680
https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/#:~:text=%E9%A6%96%E5%85%88%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值