首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为给定的包找到特定的`*Release`‘apt状态信息文件?

如何为给定的包找到特定的`*Release`‘apt状态信息文件?
EN

Ask Ubuntu用户
提问于 2019-09-07 12:44:02
回答 1查看 358关注 0票数 1

我需要以编程方式收集特定包的apt OriginSuite信息,以便配置unattended-upgrades

我可以手动找到相应的apt状态信息文件,然后处理它,然而,我需要自动化的过程。

例如,如果我:

  • 添加PPA ppa:qbittorrent-team/qbittorrent-stable
  • 安装qbittorrent-nox

在其他文件中,apt将创建/var/lib/apt/lists/ppa.launchpad.net_qbittorrent-team_qbittorrent-stable_ubuntu_dists_xenial_InRelease,这是我正在寻找的文件。

我试过用apt-cache showpkg

代码语言:javascript
复制
$ apt-cache showpkg qbittorrent-nox
Package: qbittorrent-nox
Versions:
4.1.7.99~201908140017-6718-e98f44a~ubuntu16.04.1 (/var/lib/apt/lists/ppa.launchpad.net_qbittorrent-team_qbittorrent-stable_ubuntu_dists_xenial_main_binary-armhf_Packages) (/var/lib/dpkg/status)
[...]

它不包括_InRelease文件。

是否有确切的编程方法从包开始查找*Release文件名,或者更好的是找到OriginSuite值?

编辑:额外输出如下:

代码语言:javascript
复制
$ apt-cache policy qbittorrent-nox  
qbittorrent-nox:
  Installed: 4.1.7.99~201908140017-6718-e98f44a~ubuntu16.04.1
  Candidate: 4.1.7.99~201908140017-6718-e98f44a~ubuntu16.04.1
  Version table:
 *** 4.1.7.99~201908140017-6718-e98f44a~ubuntu16.04.1 500
        500 http://ppa.launchpad.net/qbittorrent-team/qbittorrent-stable/ubuntu xenial/main armhf Packages
        100 /var/lib/dpkg/status
     3.3.1-1 500
        500 http://ports.ubuntu.com/ubuntu-ports xenial/universe armhf Packages
代码语言:javascript
复制
$ grep -r armhf /etc/apt --include="*.list"
# nothing
EN

回答 1

Ask Ubuntu用户

发布于 2019-09-10 07:05:13

根据我所做的研究,没有解决这个问题的直接方法。

然而,根据Debian存储库格式文档,状态信息文件的命名有精确的规则,可以使用。

因此,可以通过_Packages通过apt-cache showpkg找到包的相应文件名,然后根据存储库格式规则进行处理:

  • 如果respository有一个组件,名称将有一个后缀__binary-_Packages
  • 否则,后缀将仅为_Packages

然后:

  • _InRelease替换后缀,并测试产生的文件名
  • 如果文件存在,则全部完成
  • 如果不是,请用Release替换后缀(这是用外部签名替代状态文件的命名)。
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1171526

复制
相关文章

相似问题

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