列出存储库中的所有包?

Tho*_*ner 4 apt repository

如何列出 apt 存储库提供的所有包?特别是在将存储库添加到我的系统之前是首选。

Tho*_*ner 6

我知道的最好的选择是手动重现 http get apt 生成的内容,然后 grep 查找包;就像是

检查存储库的 deb 行,

$ cat /etc/apt/sources.list.d/<name>.list
deb <url> <dist> <name>
Run Code Online (Sandbox Code Playgroud)

构建一个如下请求:(这可能很棘手)

$ 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
...
Run Code Online (Sandbox Code Playgroud)

这将告诉您有关此存储库服务器上的版本的信息构建第二个请求:

$ 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
Run Code Online (Sandbox Code Playgroud)

根据需要更改您的架构,以前的版本文件应该很好地描述路径和架构。


这是相当乏味且繁重的工作,我希望有人能为此类检查推荐更好的选择。