列出存储库中的所有软件包?

列出存储库中的所有软件包?

如何列出 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,以前的发布文件应该很好地描述路径和架构。


这是相当繁琐和繁重的工作,我希望有人能推荐一个更好的选项来进行这种检查。

相关内容