如何列出 apt 存储库提供的所有软件包?具体来说,最好在将存储库添加到我的系统之前列出。
答案1
我知道最好的选择是手动重现 http get apt 生成的内容,然后 grep 查找包;例如
检查存储库的 deb 行,
$ cat /etc/apt/sources.list.d/<name>.list
deb <url> <dist> <name>
建立一个类似的请求:(这可能很棘手)
$ curl -H 'User-Agent: Debian APT-HTTP/1.3' <url>/dists/<dist>/Release
# or $ curl -H 'User-Agent: Debian APT-HTTP/1.3' <url>/dists/<dist>/Release.gz | gunzip
Codename: <dist>
Architectures: amd64
Components: <name>
MD5Sum:
......66b4456ffdb000e8208d5d8ee5 287832 <name>/binary-amd64/Packages
......b4b8e5fe8d2d53588e745a3d20 47099 <name>/binary-amd64/Packages.gz
......d98f00b204e9800998ecf8427e 0 <name>/binary-i386/Packages
......9941158dbf2ac8332307610a5b 20 <name>/binary-i386/Packages.gz
...
这将告诉您有关此存储库服务器上的发布的信息构建第二个请求:
$ curl -H 'User-Agent: Debian APT-HTTP/1.3' <url>/dists/<dist>/<name>/binary-amd64/Packages | grep Package: | uniq
# or $ curl -H 'User-Agent: Debian APT-HTTP/1.3' <url>/dists/<dist>/<name>/binary-amd64/Packages.gz | gunzip | grep Package: | uniq
Package: mypacakge
Package: myotherpacakge
根据需要更改你的 arch,以前的发布文件应该很好地描述路径和架构。
这是相当繁琐和繁重的工作,我希望有人能推荐一个更好的选项来进行这种检查。