Reports log of package updates
Project description
PKGLOG - Linux utility to output list of changed packages
This is a Linux command line utility to output a list of packages installed, removed, upgraded, or downgraded. It should be able to parse the package log formats used by the common Linux distributions. Example output is:
$ pkglog
---------------------------------------------------------------------------------
2021-01-15 10:52:18 alsa-card-profiles 14.1-1 -> 14.1-2
2021-01-15 10:52:18 libpulse 14.1-1 -> 14.1-2
2021-01-15 10:52:18 pulseaudio 14.1-1 -> 14.1-2
2021-01-15 10:52:18 mutter 3.38.2+7+gfbb9a34f2-1 -> 3.38.3-1
2021-01-15 10:52:18 pulseaudio-bluetooth 14.1-1 -> 14.1-2
2021-01-15 10:52:18 gnome-shell 1:3.38.2+22+g3a343a8aa-1 -> 1:3.38.3-1
--------------------------------------------------------------------------------
2021-01-15 16:16:26 gridsome-cli 0.3.3-1 removed
--------------------------------------------------------------------------------
2021-01-16 07:11:33 httpie 2.3.0-3 -> 2.3.0-4
2021-01-16 07:11:33 nodejs 15.5.1-1 -> 15.6.0-1
2021-01-16 07:11:33 glib2 2.66.4-1 -> 2.66.4-2
2021-01-16 07:11:33 glib2-docs 2.66.4-1 -> 2.66.4-2
2021-01-16 07:11:33 gtk-update-icon-cache 1:4.0.1-1 -> 1:4.0.1-2
2021-01-16 07:11:33 qt5-base 5.15.2-2 -> 5.15.2-3
2021-01-16 07:11:33 kdiagram 2.7.0-1 -> 2.8.0-1
---------------------------------------------------------------------------------
2021-01-17 07:13:15 nano 5.4-1 -> 5.5-1
2021-01-17 07:13:15 mesa 20.3.2-2 -> 20.3.3-1
2021-01-17 07:13:15 rav1e 0.3.5-1 -> 0.4.0-1
2021-01-17 07:13:15 tk 8.6.11-1 -> 8.6.11.1-1
2021-01-17 07:13:15 vulkan-intel 20.3.2-2 -> 20.3.3-1
---------------------------------------------------------------------------------
2021-01-18 06:51:45 perl-datetime-timezone 2.35-2 -> 2.44-1
2021-01-18 06:51:46 python-h11 0.11.0-1 -> 0.12.0-1
2021-01-18 06:51:46 python-pkginfo 1.6.1-3 -> 1.7.0-1
2021-01-18 06:51:46 adobe-source-code-pro-fonts 2.032ro+1.052it+1.012var-1 -> 2.038ro+1.058it+1.018var-1
2021-01-18 06:51:46 alsa-card-profiles 14.1-2 -> 14.2-1
2021-01-18 06:51:46 imagemagick 7.0.10.57-1 -> 7.0.10.58-1
2021-01-18 06:51:46 libbytesize 2.4-3 -> 2.4-4
2021-01-18 06:51:46 libblockdev 2.24-3 -> 2.25-1
2021-01-18 06:51:46 libibus 1.5.23+3+gaa558de8-2 -> 1.5.23+3+gaa558de8-3
2021-01-18 06:51:46 libmm-glib 1.14.8-1 -> 1.14.10-1
2021-01-18 06:51:46 libpulse 14.1-2 -> 14.2-1
2021-01-18 06:51:46 modemmanager 1.14.8-1 -> 1.14.10-1
2021-01-18 06:51:46 pulseaudio 14.1-2 -> 14.2-1
2021-01-18 06:51:46 pulseaudio-bluetooth 14.1-2 -> 14.2-1
2021-01-18 06:51:46 python-urllib3 1.26.1-1 -> 1.26.2-1
---------------------------------------------------------------------------------
2021-01-18 07:21:10 ### LAST SYSTEM BOOT ###
---------------------------------------------------------------------------------
2021-01-18 07:57:48 tree 1.8.0-2 installed
-
By default, only package updates over the last 30 days are shown. You can choose to specify a specific date, or number of days back, or for all time.
-
Updates are grouped together by time (all updates with less than a 2 minute gap between any of them) so you can distinguish the group of packages updated each time you did a system update.
-
The
LAST SYSTEM BOOT
line shows you which packages have been updated since the last boot, e.g. if the linux kernel package was since updated you may decide to reboot asap. In the above example, only thetree
package has been installed since the last boot. -
You can specify a package name and only updates to that package are shown. See the USAGE section below.
See the latest documentation and code at https://github.com/bulletmark/pkglog.
LOG FILE FORMATS
Parsers for the following log formats currently exist. The appropriate
parser for you system is normally automatically determined.
Alternatively, you can choose the log directory[s], file[s], and/or
parser explicitly. A very simple parser plugin architecture is used, so
creating a new parser is easy. Simply drop the parser file in the
parsers/
directory and the program will automatically use it. See the
current parsers for example code.
Log Parser | Default Path | Systems |
---|---|---|
apt | /var/log/apt/history* |
Debian, Ubuntu, etc |
dnf | /var/log/dnf.rpm.log |
RedHat, Fedora, etc |
pacman | /var/log/pacman.log |
Arch, Manjaro, etc |
USAGE
usage: pkglog [-h] [-i] [-I] [-d DAYS] [-a] [-j] [-v] [-p {pacman,apt,dnf}]
[-t TIMEGAP] [-P PATH]
[package]
Reports log of package updates.
positional arguments:
package specific package name to report
optional arguments:
-h, --help show this help message and exit
-i, --installed show installed/removed only
-I, --installed-only show installed only
-d DAYS, --days DAYS show all packages only from given days ago (or YYYY-
MM-DD), default=30, -1=all
-a, --alldays show all packages for all days (same as "-days=-1")
-j, --nojustify don't right justify version numbers
-v, --verbose be verbose, describe upgrades/downgrades
-p {pacman,apt,dnf}, --parser {pacman,apt,dnf}
log parser type, default=pacman
-t TIMEGAP, --timegap TIMEGAP
max minutes gap between grouped updates, default=2
-P PATH, --path PATH alternate log path[s] (separate multiple using ":",
must be time sequenced)
Note you can set default starting arguments in ~/.config/pkglog-flags.conf.
DEFAULT ARGUMENTS
You can add default arguments to a personal configuration file
~/.config/pkglog-flags.conf
. If that file exists then each line of
arguments in the file will be concatenated and automatically prepended to your
pkglog
command line arguments.
This allow you to set default preferred starting arguments to pkglog
.
Type pkglog -h
to see the arguments supported. E.g. echo "--days 7" >~/.config/pkglog.conf
to make pkglog
only display the last 7 days of
updates by default.
INSTALLATION
Python 3.7 or later is required. Note pkglog is on PyPI so you can just type the following to install or upgrade:
$ sudo pip3 install -U pkglog
Arch Linux users can install pkglog from the AUR. Alternately, do the following to install from the source repository.
$ git clone http://github.com/bulletmark/pkglog
$ cd pkglog
$ sudo pip3 install -U .
UPGRADE
$ cd pkglog # Source dir, as above
$ git pull
$ sudo pip3 install -U .
REMOVAL
$ sudo pip3 uninstall pkglog
LICENSE
Copyright (C) 2020 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at http://www.gnu.org/licenses/ for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.