首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >既然APT键已被废弃,那么如何添加Ubuntu作为Debian源代码呢?

既然APT键已被废弃,那么如何添加Ubuntu作为Debian源代码呢?
EN

Unix & Linux用户
提问于 2021-11-29 07:23:41
回答 2查看 9.3K关注 0票数 22

背景

在过去,如果您想从Debian中的Ubuntu安装软件,方法是

  1. 从keyserver.ubuntu.com导入/信任开发人员的GPG密钥,$ sudo apt adv --recv- key --keyserver keyserver.ubuntu.com E58A9D36647CAE7F
  2. 然后将存储库添加到/etc/apt/sources.list.d/... #/etc/apt/papirus.list.d/Papirusppa.list/etc/ http://ppa.launchpad.net/papirus/papirus/ubuntu焦点主目录中。

(从我的头顶上看,例子可以在mkusb的Ubuntu docs wiki帕皮罗斯图标主题自述中找到。)

问题

问题是,this方法现在会产生不推荐的警告 (apt-key被废弃为一年多前):

代码语言:javascript
复制
$ apt-key adv ...
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))

忍者编辑参见下面是这个答案中的另一个单独的apt-key命令中的弃用!

溶液?

这种新方法(例如,Docker)有两方面的内容:

  1. 将开发人员的GPG密钥保存到磁盘上,$ curl -fsSL https://download.docker.com/linux/debian/gpg \ sudo gpg -dearmor -o -o
  2. 然后在定义新的APT源时指定GPG键的路径:#/etc/apt/source.list.d/docker.list deb https://download.docker.com/linux/debian buster⬑

步骤1是取代apt-key的部分,但似乎不可能从keyserver.ubuntu.com中获取单个GPG键。是否有可能将这种方法应用于Ubuntu?如果不是,如何在Debian中添加Ubuntu作为软件资源而不使用apt-key

EN

回答 2

Unix & Linux用户

发布于 2021-11-29 07:42:43

apt-key adv基本上将CLI参数/选项直接传递给gpg,但只在设置了临时键环之后。您可以使用以下方法手动执行相同的操作:

代码语言:javascript
复制
$ export GNUPGHOME="$(mktemp -d)"  # optional (skipping this means keys will be imported to your GPG keyring)
$ gpg --recv-keys --keyserver keyserver.ubuntu.com 54B8C8AC
$ gpg --export 54B8C8AC | sudo tee /usr/share/keyrings/mkusb-archive-keyring.gpg
$ cat <<-SOURCE | sudo tee /etc/apt/sources.list.d/mkusb.list
    deb [signed-by=/usr/share/keyrings/mkusb-archive-keyring.gpg] http://ppa.launchpad.net/mkusb/ppa/ubuntu focal main
    SOURCE

(apt-key只是一个shell脚本,所以您可以自己在自己喜欢的编辑器中检查代码;例如,vim $(which apt-key)。)

如果它不起作用.

一开始,我收到了这个错误:

代码语言:javascript
复制
$ sudo apt update
...
Get:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease [18.0 kB]
Err:12 http://ppa.launchpad.net/papirus/papirus/ubuntu focal InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E58A9D36647CAE7F

这实际上是一个文件权限问题:

代码语言:javascript
复制
$ ls -l /usr/share/keyrings/*
...
-rw-r--r-- 1 root root     3375 Nov 22 21:38 /usr/share/keyrings/filebot-archive-keyring.gpg
-rw-r--r-- 1 root root     1124 Nov 22 21:38 /usr/share/keyrings/mkusb-archive-keyring.gpg
-rw------- 1 root root     1126 Nov 29 08:15 /usr/share/keyrings/papirus-archive-keyring.gpg

确保您正在使用644权限保存开发人员GPG密钥。

另一个问题

来自gpg(1)手册:

代码语言:javascript
复制
       --keyserver name
          This option is deprecated - please use the --keyserver in ‘dirmngr.conf’ instead.

显然,原来的方法已经被否决了双倍的!AFAIK gpg没有发出关于使用这个CLI选项的警告(还没有),但是解决这个问题的正确解决方案似乎是这样的吗?

代码语言:javascript
复制
$ echo "keyserver hkp://keyserver.ubuntu.com" >> "${GNUPGHOME}/dirmngr.conf"
$ gpgconf --kill dirmngr
$ gpg --recv-keys 54B8C8AC
...

但我试了一下

代码语言:javascript
复制
gpg: keyserver receive failed: Connection timed out

所以如果有人有任何想法,我会全神贯注的。

票数 13
EN

Unix & Linux用户

发布于 2022-01-23 23:49:40

你至少有三个选择:

apt-add-repository

Debian包software-properties-common包含apt-add-repository。只需运行sudo apt-add-repository ppa:/,它就会将存储库添加到APT源并导入密钥。

从密钥服务器

获取密钥

将键导入一个单独的键环,然后移动到APT期望的位置:

代码语言:javascript
复制
$ echo "keyserver hkps://keyserver.ubuntu.com" >> "${GNUPGHOME}/dirmngr.conf"
$ gpgconf --kill dirmngr
# I don't quite understand why this failed for you. Maybe a temporary network fluke or a firewall issue?
$ gpg --no-default-keyring --keyring=./papirus.gpg --recv-keys 54B8C8AC
$ sudo mv papirus.gpg /etc/apt/trusted.gpg.d/
$ sudo chown root:root /etc/apt/trusted.gpg.d/papirus.gpg
$ sudo chmod 644 /etc/apt/trusted.gpg.d/papirus.gpg

手动下载密钥

如果由于任何原因无法从密钥服务器获取公钥,但可以手动下载,则导入下载的文件papirus.pub如下所示:

代码语言:javascript
复制
$ echo "keyserver hkps://keyserver.ubuntu.com" >> "${GNUPGHOME}/dirmngr.conf"
$ gpgconf --kill dirmngr
$ gpg --no-default-keyring --keyring=./papirus.gpg --import ./papirus.pub
$ sudo mv papirus.gpg /etc/apt/trusted.gpg.d/
$ sudo chown root:root /etc/apt/trusted.gpg.d/papirus.gpg
$ sudo chmod 644 /etc/apt/trusted.gpg.d/papirus.gpg
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/679495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档