You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04适配apt-key弃用后,如何让software-properties-gtk识别第三方仓库及密钥

Ubuntu 22.04适配apt-key弃用后,如何让software-properties-gtk识别第三方仓库及密钥

我完全懂你现在的困扰——为了避开apt-key的弃用警告,还提升了安全性,把第三方仓库的密钥都迁移到了/usr/share/keyrings,仓库配置也规规矩矩放在/etc/apt/sources.list.d里,结果系统自带的「软件和更新」(也就是software-properties-gtk)却认不出这些仓库了,连“其他软件”标签里都看不到,确实挺闹心的。

咱们先搞清楚根源:software-properties-gtk目前的设计逻辑,还是默认只认/etc/apt/trusted.gpg和/etc/apt/trusted.gpg.d这两个位置的密钥,对于咱们放到/usr/share/keyrings的密钥,它没法自动关联识别仓库和对应的签名密钥。不过别慌,有几个可行的解决办法:

方法一:修改仓库配置文件格式,让GUI能识别密钥路径

这是最安全也最推荐的方案,只要给每个仓库的.list文件加上明确的signed-by参数,software-properties-gtk就能正确读取到仓库信息。

举个具体的例子:

  • 假设你原来的仓库行是这样的:
    deb https://example.com/repo jammy main
    
  • 修改成带签名密钥路径的格式:
    deb [arch=amd64 signed-by=/usr/share/keyrings/example-key.gpg] https://example.com/repo jammy main
    

注意这里的arch=amd64可以根据你的系统架构调整,不需要的话也可以删掉,但signed-by参数必须准确指向你存储密钥的文件路径。

修改完所有.list文件后,重新打开software-properties-gtk,应该就能在“其他软件”标签里看到这些第三方仓库了。

方法二:给密钥创建软链接到trusted.gpg.d(折中方案)

如果你不想一个个修改仓库文件,可以用软链接的方式,让trusted.gpg.d目录“指向”你存放在/usr/share/keyrings的密钥文件。这样既不用复制密钥(避免重复维护),又能让software-properties-gtk识别到。

执行命令的格式如下(替换成你的密钥文件名):

sudo ln -s /usr/share/keyrings/your-key-file.gpg /etc/apt/trusted.gpg.d/your-key-file.gpg

不过要提醒你:虽然这个方法简单,但本质上还是让APT把这些密钥当成全局信任的密钥,和原来的apt-key逻辑类似,安全性上不如第一种方法,所以如果追求最高安全标准,还是优先选方法一。

方法三:用新的add-apt-repository命令添加仓库

如果以后要新增第三方仓库,直接用支持signed-by参数的add-apt-repository命令来添加,这样生成的仓库配置文件本身就符合新规范,software-properties-gtk也能直接识别。

命令格式示例:

sudo add-apt-repository "deb [signed-by=/usr/share/keyrings/new-key.gpg] https://new-repo.com/repo jammy main"

最后说句题外话

目前software-properties-gtk确实还没完全适配APT新的密钥存储规范,不过Ubuntu后续版本应该会更新这个工具,让它直接支持/usr/share/keyrings或者/etc/apt/keyrings这类安全路径的密钥。在那之前,上面的方法应该能解决你的问题。

备注:内容来源于stack exchange,提问作者Blitzkoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:17:58