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 文件。