Get emails about pending system updates with cron-pacmatic

Original No more surprises! Now with pacdiff integration. A vimdiff primer. Now with more tuning. Reads the ML for you! More vimdiff Get emails about pending system updates with cron-pacmatic Editable
version 7 of 7

Pacmatic is a small wrapper for Arch Linux's package manager, pacman. It takes care of a few menial tasks you should do every time before updating your system. These tasks are so menial so that many Archers always forget them, until they are surprised by a horrible problem. However, menial tasks are easy to automate, and that is where pacmatic comes in.

Using it is pretty simple. Just type pacmatic instead of pacman. It will perform some introspection on the calling arguments, pacman.log and the Arch news feed. If you do something foolish, it will tell you.

It helps you avoid four common mistakes. First, it adds a tiny RSS reader. The Arch Devs will routinely announce major compatibility breaks on the Arch feed, and it is stuff you really should see before updating. Disseminating information rapidly and effectively will be an essential role for the next generation of package managers, and I for one would prefer pacman to stay ahead of the curve. These information updates are trickier than application updates (How do you checksum the integrity of someone's thoughts?), but are just as critical. A record of Arch News is maintained in /var/log/arch-news.log.

Second, it alerts you if people have been talking about the packages you have installed. In about a second it scans Arch General for any emails talking about the packages you have installed, tallying and sorting the matches. However, you still have to jump into the archives to find why people are talking about it. Just like the news reader, this only counts new messages since the previous run of Pacmatic.

Third, Arch is an aggressive rolling release distro and if improperly synchronized can blow your leg off when libraries are updated in a backwards incompatible manner. It won't stop pacman from trashing your system, but it will warn you if the local repositories get ahead of what's actually installed.

Fourth, it pesters you to stay on top of configuration updates. Pacman has always reported new configuration files, but pacmatic is a little more in your face about actually taking care of them. For actually merging the files, vimdiff is used. If you are used to graphical diff programs, Vimdiff can take a bit of adjusting. Full details are found with :help vimdiff, but here is the shortest primer to make vimdiff useful:

Ctrl w (twice) Toggle windows

do Short for "diff obtain", but I think of "other", because it pulls the change under the cursor from other window into the focused window.

dp Short for "diff put", but I think of "push", because it pushes changes from the focused window to non-focused window.

]c Jump forward to the next change.

[c Jump bacwards to the previous change.

:xa Save and quit both windows.

Configuring Pacmatic

There are several environment variables which when exported allow tweaking of everything from the news feed to the diff program. Run pacmatic without any arguments to see the current configuration.

Is Pacmatic not automatic enough for you? Use the cron-pacmatic script to periodically generate email alerts tailored to your system.

If you want to re-use any of the functionality of Pacmatic in your own scripts, the --as-libs flag lets you source it.

Dependencies are pretty light. Just wget, pacman, expac and pacman-contrib.