Rya*_*Lue 26 debian apt gpg ppa apt-key
过去,如果您想在 Debian 中从 Ubuntu PPA 安装软件,方法是:
\n从 keyserver.ubuntu.com 导入/信任开发人员的 GPG 密钥,
\n$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E58A9D36647CAE7F\nRun Code Online (Sandbox Code Playgroud)\n然后将存储库添加到/etc/apt/sources.list.d/...
# /etc/apt/sources.list.d/papirus-ppa.list\ndeb http://ppa.launchpad.net/papirus/papirus/ubuntu focal main\nRun Code Online (Sandbox Code Playgroud)\n(在我的脑海中,可以在mkusb 的 Ubuntu 文档 wiki或Papirus 图标主题自述文件中找到示例。)
\n问题是这种方法现在会产生弃用警告(一年多前已apt-key弃用):
$ apt-key adv ...\nWarning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))\nRun Code Online (Sandbox Code Playgroud)\n\n\n忍者 编辑
\n请参阅下面的答案,了解此命令中的另一个单独弃用
\napt-key!
新方法(例如Docker为例)有两个方面:
\n将开发者的 GPG 密钥保存到磁盘,
\n$ apt-key adv ...\nWarning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))\nRun Code Online (Sandbox Code Playgroud)\n然后在定义新的 APT 源时指定该 GPG 密钥的路径:
\n$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\nRun Code Online (Sandbox Code Playgroud)\n步骤 1 是替换 的部分apt-key,但似乎无法从 keyserver.ubuntu.com 获取单独的 GPG 密钥。是否可以针对 Ubuntu PPA 采用这种方法?如果没有,如何在不使用 的情况下将 Ubuntu PPA 添加为 Debian 中的软件源apt-key?
Rya*_*Lue 15
apt-key adv基本上将 CLI 参数/选项直接传递给gpg,但仅在设置临时密钥环之后。您可以手动执行相同的操作:
$ export GNUPGHOME="$(mktemp -d)" # optional (skipping this means keys will be imported to your GPG keyring)\n$ gpg --recv-keys --keyserver keyserver.ubuntu.com 54B8C8AC\n$ gpg --export 54B8C8AC | sudo tee /usr/share/keyrings/mkusb-archive-keyring.gpg\n$ cat <<-SOURCE | sudo tee /etc/apt/sources.list.d/mkusb.list\n deb [signed-by=/usr/share/keyrings/mkusb-archive-keyring.gpg] http://ppa.launchpad.net/mkusb/ppa/ubuntu focal main\n SOURCE\nRun Code Online (Sandbox Code Playgroud)\n(apt-key只是一个 shell 脚本,因此您可以在您最喜欢的编辑器中自行检查代码;例如 vim $(which apt-key)。)
起初,我收到此错误:
\n$ sudo apt update\n...\nGet:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease [18.0 kB]\nErr:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease\n The following signatures couldn\'t be verified because the public key is not available: NO_PUBKEY E58A9D36647CAE7F\nRun Code Online (Sandbox Code Playgroud)\n结果发现是文件权限问题:
\n$ sudo apt update\n...\nGet:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease [18.0 kB]\nErr:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease\n The following signatures couldn\'t be verified because the public key is not available: NO_PUBKEY E58A9D36647CAE7F\nRun Code Online (Sandbox Code Playgroud)\n确保您保存的是具有644权限的开发人员 GPG 密钥。
从gpg(1)联机帮助页:
--keyserver name\n This option is deprecated - please use the --keyserver in \xe2\x80\x98dirmngr.conf\xe2\x80\x99 instead.\nRun Code Online (Sandbox Code Playgroud)\n显然原来的方法已被双重弃用!AFAIKgpg还没有发出有关使用此 CLI 选项的警告,但此问题的正确解决方案似乎是这样的?
$ ls -l /usr/share/keyrings/*\n...\n-rw-r--r-- 1 root root 3375 Nov 22 21:38 /usr/share/keyrings/filebot-archive-keyring.gpg\n-rw-r--r-- 1 root root 1124 Nov 22 21:38 /usr/share/keyrings/mkusb-archive-keyring.gpg\n-rw------- 1 root root 1126 Nov 29 08:15 /usr/share/keyrings/papirus-archive-keyring.gpg\nRun Code Online (Sandbox Code Playgroud)\n除了我尝试了这个并得到了
\ngpg: keyserver receive failed: Connection timed out\nRun Code Online (Sandbox Code Playgroud)\n因此,如果有人有任何想法,我会洗耳恭听。
\n| 归档时间: |
|
| 查看次数: |
13808 次 |
| 最近记录: |