在过去,如果您想从Debian中的Ubuntu安装软件,方法是
/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被废弃为一年多前):
$ apt-key adv ...
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))忍者编辑参见下面是这个答案中的另一个单独的
apt-key命令中的弃用!
这种新方法(例如,Docker)有两方面的内容:
步骤1是取代apt-key的部分,但似乎不可能从keyserver.ubuntu.com中获取单个GPG键。是否有可能将这种方法应用于Ubuntu?如果不是,如何在Debian中添加Ubuntu作为软件资源而不使用apt-key?
发布于 2021-11-29 07:42:43
apt-key adv基本上将CLI参数/选项直接传递给gpg,但只在设置了临时键环之后。您可以使用以下方法手动执行相同的操作:
$ 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)。)
一开始,我收到了这个错误:
$ 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这实际上是一个文件权限问题:
$ 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)手册:
--keyserver name
This option is deprecated - please use the --keyserver in ‘dirmngr.conf’ instead.显然,原来的方法已经被否决了双倍的!AFAIK gpg没有发出关于使用这个CLI选项的警告(还没有),但是解决这个问题的正确解决方案似乎是这样的吗?
$ echo "keyserver hkp://keyserver.ubuntu.com" >> "${GNUPGHOME}/dirmngr.conf"
$ gpgconf --kill dirmngr
$ gpg --recv-keys 54B8C8AC
...但我试了一下
gpg: keyserver receive failed: Connection timed out所以如果有人有任何想法,我会全神贯注的。
发布于 2022-01-23 23:49:40
你至少有三个选择:
Debian包software-properties-common包含apt-add-repository。只需运行sudo apt-add-repository ppa:/,它就会将存储库添加到APT源并导入密钥。
获取密钥
将键导入一个单独的键环,然后移动到APT期望的位置:
$ 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如下所示:
$ 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.gpghttps://unix.stackexchange.com/questions/679495
复制相似问题