我已经完整克隆了 Ubuntu 软件包仓库(大约 230 GB),并运行本地 VM 作为我的仓库服务器。我可以使用什么命令列出该仓库中包含的所有软件包?
答案1
在本地(即在服务器上),您可以运行:
find /location/of/repo/ -type f -name '*.deb'
远程地,您可以获取Packages
文件并对其进行 grep:
wget -qO - http://archive.ubuntu.com/ubuntu/dists/trusty-security/main/binary-amd64/Packages.gz \
| zgrep -Po '(?<=^Package: ).*'
答案2
除了@muru 回答,如果您想从本地 Ubuntu 系统找到本地 repo 服务器中所有可用的软件包,您可以使用 sources.list 中指定的每个软件包资源的元数据文件,该文件存在于 中/var/lib/apt/lists/
。唯一的要求是您的 Ubuntu 系统应配置为从本地服务器接收更新。
例如
cd /var/lib/apt/lists/
grep -oP "(?<=Package: ).*" security.ubuntu.com_ubuntu_dists_utopic-security_main_binary-amd64_Packages
将文件名(即security.ubuntu.com_ubuntu_dists_utopic-security_main_binary-amd64_Packages
)替换为本地服务器文件名。同时确保此列表名称以结尾Packages
。