有没有办法列出软件包从进入 Debian 存档的日期算起?

有没有办法列出软件包从进入 Debian 存档的日期算起?

我问过很多问题易于包管理在过去。不打破传统,这里还有一个。做完之后

$ sudo apt-get update 

或/和

$ sudo apt update 

有没有办法获取软件包进入 Debian 档案时的列表(降序)?

类似的东西新添加的包按年龄排序,但在桌面上。假设所有进入 Debian 存档并位于/var/lib/apt/lists/数据库中的软件包。

顺便说一句,我确实经常这样做,$ sudo aptitude forget-new否则新软件包的列表会变得太大而无法以任何方式使用。

期待知道。

更新:- 我使用 zsh,这是我的 /etc/apt/sources.list

[$] cat /etc/apt/sources.list

     1   #### Debian stretch #########
     2  deb http://httpredir.debian.org/debian/ stretch main contrib non-free
     3  deb-src http://httpredir.debian.org/debian stretch main contrib non-free
     4  
     5   #### Debian unstable #########
     6  deb http://httpredir.debian.org/debian unstable main contrib non-free
     7  deb-src http://httpredir.debian.org/debian unstable main contrib 
     8  
     9   #### Debian experimental #########
    10  deb http://httpredir.debian.org/debian experimental main contrib 
    11  deb-src http://httpredir.debian.org/debian experimental main contrib
    12  
    13   ##### Debian Debug packages #######
    14  deb http://debug.mirrors.debian.org/debian-debug/ stretch-debug main
    15  deb http://debug.mirrors.debian.org/debian-debug/ unstable-debug main
    16  deb http://debug.mirrors.debian.org/debian-debug/ experimental-debug main
    17  
    18  ######## Third party repos #######
    19  deb https://riot.im/packages/debian/ stretch main
    20  
    21  ########## Non-free ########
    22  #deb http://www.deb-multimedia.org stretch main non-free

我正在寻找过去 3 个月内所有“新”amd64 软件包的软件包列表,而不仅仅是我的系统上安装的软件包。

答案1

本地存储的信息不足以构建这样的列表:用于索引存储库的文件都没有列出软件包首次可用的日期。

据我所知,你能得到的最接近的日期是中提到的第一个日期已安装软件包的变更日志,其中给出了相应的日期的近似值来源包进入存档。 (源方面很重要,因为aptitude新包的概念是基于二进制包的。)

这当然可以改进:

#!/bin/bash
for file in /usr/share/doc/*/changelog.Debian.gz; do
    package=${file:15}
    package=${package%%/*}
    echo -n "$package "
    date -d "$(zgrep "\\-\\- .* <.*>  .*" "${file}"|tail -n 1|awk 'BEGIN { FS="  " } { for (i = 2; i <= NF; i++) { if (i > 2) printf " "; printf "%s", $i } }')" +%s
done | sort -k2,2nr -k1

这会输出所有本地安装的软件包的名称,其更改日志中的最早日期表示为自纪元以来的秒数,按年龄递增排序。

在 Debian 9 中,aptitude允许更细粒度地清除新软件包列表,这有助于使其易于管理且有用。

要获取您实际需要的信息,假设您无权访问 上的索引master.debian.org,您可能必须解析 的档案debian-devel-changes。这些包括对 Debian 软件包(新旧)所做的所有更改,但您可以轻松过滤与引入软件包相对应的更改:这些是唯一重复套件的更改(“不稳定,不稳定”;比较bdist-nsinode-typescript例如)。

相关内容