如何根据 Debian 测试的发布日期对更新进行排序?

如何根据 Debian 测试的发布日期对更新进行排序?

我是 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

生成的包放置在一个目录中(在“/路径/到/目录) 其名称是当前日期和时间。

相关内容