我想要一个已安装软件的列表,这些软件不是作为其他软件的依赖项安装的。例如,我想查看但gvim
排除哪些是gvim-data
gvim-common
gvim
当然,我不想将发布软件纳入列表中。
我也想看安装时间。
看来 aptitude 可以部分地做到这一点。
答案1
为此,我过滤了 /var/log/apt/history.log 文件。
文件中的记录如下所示:
Start-Date: 2016-12-14 18:28:01
Commandline: synaptic
Requested-By: user (1000)
Install: libglib2.0-bin:amd64 (2.48.1-1~ubuntu16.04.1, automatic) libglib2.0-dev:amd64 (2.48.1-1~ubuntu16.04.1)
End-Date: 2016-12-14 18:28:06
名称中带有“automatic”的包是依赖项(示例中为libglib2.0-bin),不带有“automatic”的包是通过命令安装的(libglib2.0-dev)。
我在我的档案中找到了这段代码,它可能有效
#!/usr/bin/env python # -*- 编码:utf-8 -*- 进口再 导入系统 对于 sys.argv[1:] 中的 arg: fil = 打开(参数) 对于文件中的行: ma = re.match(r'安装:(.*)',行) 如果妈: grp = ma.groups()[0] lst = re.split(r'\), *', grp) 对于 lst 中的项目: 如果 item.endswith(',automatic'): 继续 别的: 名称 = 项目.split(':')[0] 打印日期、姓名 ma = re.match(r'开始日期: ([^ ]*)', 行) 如果妈: dte = ma.groups()[0] fil.close()