存储库服务器 - apt-mirror - 如何报告每次运行时下载的软件包列表?

存储库服务器 - apt-mirror - 如何报告每次运行时下载的软件包列表?

apt-mirror 输出下载的包的大小... 167.3 MiB will be downloaded into archive.

但是如何报告每次运行时下载的包的列表?

例子:Following packages were downloaded: apache, chrome, ...

答案1

没有任何内置功能,但这apt-mirror是一个相当基本的 perl 脚本。如果您愿意这样做,那么您可以添加一个补丁https://github.com/apt-mirror/apt-mirror/blob/7d521b168ab34fd38fd38bbb26acad1f43e262a7/apt-mirror#L910

如果符合您的需求,您当然可以使用注释建议的 Bash 解决方案。该postmirror.sh脚本将是一个非常方便的运行位置。像这样的一行将打印过去一小时内更新的软件包

find . -type f -path '*pool*' -mmin -60 -print

不幸的是,apt-mirror它尚未积极开发。有几个错误会阻止它正确镜像最新版本的 apt 存储库。您可以考虑使用已修补这些错误的分支。如果您这样做,那么您可以向分支维护者请求此功能。

答案2

我终于找到了一种令人满意的列出包裹的方法。

目录中../apt-mirror/var有一个名为的文件ALL。我不完全理解这个文件的格式,尤其是为什么其中有些行是重复的,但对于我们的目的而言,重要的是它是一种镜像文件的目录。

首先,将此文件保存在某处,我将其放入~/Documents并将其命名为ALL_saved

然后将这些行添加到您的postmirror.sh脚本中

diff /media/[redacted]/apt-mirror/var/ALL /home/[redacted]/Documents/ALL_saved | sort | uniq | tee -a /home/[redacted]/mirror/mirror-$_now.txt
...
cp /media/[redacted]/apt-mirror/var/ALL /home/[redacted]/Documents/ALL_saved

因此,在运行镜像更新脚本后,postmirror 脚本现在将比较目录的旧副本与新副本,打印出差异,然后更新保存的副本。最终输出如下:

> security.debian.org/debian-security/pool/updates/main/t/thunderbird/thunderbird_115.4.1-1~deb12u1_amd64.deb
> security.debian.org/debian-security/pool/updates/main/t/thunderbird/thunderbird_115.4.1-1~deb12u1_i386.deb
< security.debian.org/debian-security/pool/updates/main/t/thunderbird/thunderbird_115.5.0-1~deb12u1_amd64.deb
< security.debian.org/debian-security/pool/updates/main/t/thunderbird/thunderbird_115.5.0-1~deb12u1_i386.deb

它根据需要列出了每个添加和删除的 .deb 文件。

相关内容