我是 linux mint debian linux distro 的用户,它基于 debian 测试。 Debian 测试是一个滚动发行版。该发行版的测试性质导致某些软件包更新存在错误。我正在寻找一种按发布日期对包进行排序的方法。我想在安装日发布后安装更新,以确保错误最小化。我已经熟悉一个名为 apt-listbugs 的好程序,它在安装包之前向我显示报告的错误,帮助我找到报告的错误。
简而言之:如何根据 Debian 测试的发布日期对更新进行排序?
答案1
我认为您可以进行仅下载升级:
sudo apt-get --download-only dist-upgrade
然后检查 中文件的时间戳/var/cache/apt/archives
,这些不是您想象的下载时间戳,而是服务器上相同 .deb 文件的时间戳。
因此,删除太多新文件(find
我建议在 的帮助下),然后进行无下载升级,这将使用前面目录中的剩余文件:
sudo apt-get --no-download dist-upgrade
ls-lR.gz
或者,您可以从服务器上驻留的文件中获取可升级包的时间戳,不过下载的文件量也达到 6-7MB。这是一个获取有序列表的脚本
#!/bin/bash
server_list_url="http://ftp.debian.org/debian/ls-lR.gz"
server_list="${server_list_url##*/}"
LANG=en
# get urls of upgradable packages
apt-get --print-uris --yes dist-upgrade |
awk -F \' '/(ht|f)tp/ { print $2 }' |
sed -r 's/^.*\///' >local_list
if [[ -s local_list ]]; then
wget -qN "$server_list_url"
# sort older packages by time (8th fiels is year)
zgrep -F -f local_list "$server_list" |
awk '$8 !~ /:/' |
sort -k8,8n -k6,6M -k7,7n -k9
# sort newer packages by time (8th field is hour:min)
zgrep -F -f local_list "$server_list" |
awk '$8 ~ /:/' |
sort -k6,6M -k7,7n -k8,8 -k9
else
echo "No package to upgrade" >&2
fi
答案2
不确定我理解你的问题,但你可以使用wajig
出于类似的目的。它的upgrade
命令创建当前安装的软件包的 DEB 文件(它使用dpkg-repack
)即将升级。这发生在升级之前。该命令如下所示:
wajig --backup=/path/to/dir upgrade
生成的包放置在一个目录中(在“/路径/到/目录) 其名称是当前日期和时间。