我需要以编程方式收集特定包的apt Origin和Suite信息,以便配置unattended-upgrades。
我可以手动找到相应的apt状态信息文件,然后处理它,然而,我需要自动化的过程。
例如,如果我:
ppa:qbittorrent-team/qbittorrent-stableqbittorrent-nox在其他文件中,apt将创建/var/lib/apt/lists/ppa.launchpad.net_qbittorrent-team_qbittorrent-stable_ubuntu_dists_xenial_InRelease,这是我正在寻找的文件。
我试过用apt-cache showpkg:
$ 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文件名,或者更好的是找到Origin和Suite值?
编辑:额外输出如下:
$ 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$ grep -r armhf /etc/apt --include="*.list"
# nothing发布于 2019-09-10 07:05:13
根据我所做的研究,没有解决这个问题的直接方法。
然而,根据Debian存储库格式文档,状态信息文件的命名有精确的规则,可以使用。
因此,可以通过_Packages通过apt-cache showpkg找到包的相应文件名,然后根据存储库格式规则进行处理:
__binary-_Packages。_Packages。然后:
_InRelease替换后缀,并测试产生的文件名Release替换后缀(这是用外部签名替代状态文件的命名)。https://askubuntu.com/questions/1171526
复制相似问题