It’s one of those fun weekly chores – going through all the software installed on your Windows PC and checking online for updates, downloading them to a USB stick (the bigger ones at least), and then going round each PC in turn to install them. We’ve got 4 PCs to update, and that can’t be uncommon in a modern household.
In the Linux world things are much easier – on Debian you’ll normally get away with running “
apt-get update && apt-get upgrade”. If you’re really lazy you’ll configure unattended-upgrades and be done with it.
Windows is a different beast though. You’re on your own. Sure you’ve got Windows / Microsoft Update, Adobe Updaters, Java Auto-update, Apple Software Update, and lots of other tools to help, but how do you remember which updaters you’ve run on which systems? Also, when you (re-)install a machine how do you get all the right packages installed up-front?
Enter WPKG (wpkg.org). This handy tool allows you to wrap any software installer with some XML-based metadata that specifies which PCs on your network need which packages, how to install / upgrade / remove software from a PC using the distributed installer (MSI, EXE, whatever), and version information to enable auto-updating.
To get started you can just download the WPKG server package and unzip it to a network drive (on your home server, right). This sets up a folder structure into which you can add your software installers and the XML data. You’ll need to write three XML files to get going:
- hosts.xml specifies which hosts should get which software bundles (“profiles”)
- profiles.xml specifies the software packages comprising each profile
- packages.xml – or more typically packages/*.xml – specifies how each software package should be managed, with install / upgrade / remove commands, the installer file location, current version number, conditions for installation, architecture/system dependent aspects, and pre- and post- installation commands
Now you can run the wpkg.js script to update your system. There is a handy client package that will install a service to update your system at each login, and you can configure periodic checks using Scheduled Tasks.
Combine that with subscribing to the announce maillists for your main software packages and life is much easier – in most cases you just download the new installers, update the version numbers in packages/*.xml and make the coffee. All your machines will update themselves next time they get used.