Центр программного обеспечения Ubuntu может отображать подробную историю установленных / обновленных / удаленных пакетов в соответствии с датой.
/var/log/dpkg.log
поддерживается только в течение 12 месяцев; я не знаю ни одной команды apt- * или dpkg, чтобы получить дату, когда пакет был впервые установлен.) Вся история установленных / обновленных / удаленных пакетов находится в /var/log/apt
: новая история в файле history.log
, старая история в архивах, в файлах history.log.x.gz
. См. Изображение ниже, чтобы получить эти данные в виде таблицы в Ubuntu Software Center:
Думая, что специфика довольно бесполезна, Если вы не хотите узнать, какие именно изменения были внесены в систему в определенный день и время, я чувствовал, что шаги, которые я прошел, чтобы обнаружить эту информацию, стоили документировать: 1111] Я запустил strace -e trace=open -f -o usc software-center
, чтобы получить список всех файлов, открытых центром программного обеспечения. Затем я отфильтровал это так.
cat usc| grep -oP '(?<=open\(").*(?=",)' |egrep -v '\.(so\.([0-9]|cache)|so|pyc|mo|py|png|svg) для устранения всех файлов не содержал файлов данных.
Среди них я нашел интересный файл: ~/.cache/software-center/apthistory.p
Когда я открыл его, он выглядел как файл с огурцами питона. при попытке загрузить файл я получил ошибку, что softwarecenter.db.history_impl.apthistory
не был импортирован. Я запустил следующую команду, чтобы найти файлы python, которые были открыты и в их пути был «softwarecenter»
$cat usc| grep -oP '(?<=open\(").*(?=",)' |grep softwarecenter
и получил целую кучу имен файлов, включая /usr/share/software-center/softwarecenter/db/history_impl/apthistory.so
. Я написал следующий скрипт для чтения и обработки file:
#!/usr/bin/python
import sys
import os
import pickle
sys.path.append('/usr/share/software-center')
import softwarecenter.db.history_impl.apthistory
with open(os.path.expanduser('~/.cache/software-center/apthistory.p')) as IFile:
hist=pickle.load(IFile)
print type(hist[0])
print "earliest apt transaction started on:",hist[-1].start_date
print "installed:"
for PackageStr in hist[-1].install:
print PackageStr
print "upgraded:"
for PackageStr in hist[-1].upgrade:
print PackageStr
Я нашел необходимые атрибуты, посмотрев класс, для которого hist [0] был экземпляром: help(softwarecenter.db.history_impl.apthistory.AptTransaction)
. Это привело меня к родительскому классу help( softwarecenter.db.history.Transaction)
, откуда я понял, как его использовать.
Кстати, даже sudo apt-get install
ред вещи появляются здесь.
|egrep -v '/usr/lib/(python2.7|x86|girepo)'| egrep -v '/usr/share/(icons|themes)' |egrep -v '/etc/fonts'|egrep -v '(screenshots|reviews)\.ubuntu\.com' |egrep -v fontconfig |sort -u
для устранения всех файлов не содержал файлов данных.
Среди них я нашел интересный файл: ~/.cache/software-center/apthistory.p
Когда я открыл его, он выглядел как файл с огурцами питона. при попытке загрузить файл я получил ошибку, что softwarecenter.db.history_impl.apthistory
не был импортирован. Я запустил следующую команду, чтобы найти файлы python, которые были открыты и в их пути был «softwarecenter»
$cat usc| grep -oP '(?<=open\(").*(?=",)' |grep softwarecenter
и получил целую кучу имен файлов, включая /usr/share/software-center/softwarecenter/db/history_impl/apthistory.so
. Я написал следующий скрипт для чтения и обработки file:
#!/usr/bin/python
import sys
import os
import pickle
sys.path.append('/usr/share/software-center')
import softwarecenter.db.history_impl.apthistory
with open(os.path.expanduser('~/.cache/software-center/apthistory.p')) as IFile:
hist=pickle.load(IFile)
print type(hist[0])
print "earliest apt transaction started on:",hist[-1].start_date
print "installed:"
for PackageStr in hist[-1].install:
print PackageStr
print "upgraded:"
for PackageStr in hist[-1].upgrade:
print PackageStr
Я нашел необходимые атрибуты, посмотрев класс, для которого hist [0] был экземпляром: help(softwarecenter.db.history_impl.apthistory.AptTransaction)
. Это привело меня к родительскому классу help( softwarecenter.db.history.Transaction)
, откуда я понял, как его использовать.
Кстати, даже sudo apt-get install
ред вещи появляются здесь.