Eu filtrava o arquivo /var/log/apt/history.log para essa finalidade.
Um registro no arquivo se parece com:
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
Nomes de pacotes com "automatic" são dependências (libglib2.0-bin no exemplo) e sem "automatic" são instalados pelo comando (libglib2.0-dev).
Encontrei este código nos meus arquivos e provavelmente funciona
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import sys
for arg in sys.argv[1:]:
fil = open(arg)
for line in fil:
ma = re.match(r'Install: (.*)', line)
if ma:
grp = ma.groups()[0]
lst = re.split(r'\), *', grp)
for item in lst:
if item.endswith(', automatic'):
continue
else:
name = item.split(':')[0]
print dte, name
ma = re.match(r'Start-Date: ([^ ]*)', line)
if ma:
dte = ma.groups()[0]
fil.close()