1 个不稳定版本
0.1.0 | 2023 年 10 月 25 日 |
---|
在 配置 中排名 #490
125KB
3K SLoC
debctl
debctl 是一个用于管理 apt 仓库的 CLI 工具。它旨在替代 add-apt-repository 和 apt-key,支持新的 deb822 格式,并实现了管理签名密钥的现代最佳实践。
现有的工具有什么问题?
add-apt-repository
将仓库条目添加到/etc/apt/sources.list
,而该格式已被新的 deb822 格式淘汰。apt-key
已弃用,因为它信任所有 apt 仓库的签名密钥,而不仅仅是它们应该签名的那些。
此工具旨在鼓励最佳实践,同时提供执行奇怪操作的方法。
安装
安装 Rust 并运行
cargo install debctl
此工具将使用 GnuPG 与 PGP 密钥交互,因此您必须在您的 PATH
上安装并可用 gpg
。
示例
让我们将 Docker apt 仓库 添加到您的系统
debctl new \
--name docker \
--uri https://download.docker.com/linux/ubuntu \
--key https://download.docker.com/linux/ubuntu/gpg \
--component stable
这将下载仓库的签名密钥并将其安装到 /etc/apt/keyrings/
下。它可以从 URL、本地文件路径或密钥服务器获取签名密钥并将其安装到密钥环中或内联到 .sources
文件中。
此命令在 /etc/apt/sources.list.d/docker.sources
下创建仓库条目。以下是这个文件的外观
Enabled: yes
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: jammy
Components: stable
Signed-By: /etc/apt/keyrings/docker.gpg
大多数第三方 apt 仓库的文档都指示用户使用 add-apt-repository
。此工具接受由 add-apt-repository
使用的旧式语法,并将其转换为 deb822 语法
debctl add \
--name docker \
--key https://download.docker.com/linux/ubuntu/gpg \
'deb [arch=amd64 lang=en,de] https://download.docker.com/linux/ubuntu jammy stable'
以下是该命令生成的文件
Enabled: yes
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: jammy
Components: stable
Signed-By: /etc/apt/keyrings/docker.gpg
Architectures: amd64
Languages: en de
您还可以将现有的旧式 .list
文件转换为 deb822 风格的 .sources
文件
debctl convert --name docker
这会将 /etc/apt/sources.list.d/docker.list
替换为 /etc/apt/sources.list.d/docker.sources
。
在 .list
文件中注释掉的条目包含在 .sources
文件中,但设置了 Enabled: no
选项。在 .list
文件中的常规注释被保留并包含在 .sources
文件中。
依赖项
~13–28MB
~465K SLoC