When releasing a new product, it’s a good idea to test it on all platforms and configurations your product supports. Obviously, right? Well, not everyone does this. While it’s important to try your product on every configuration, it’s also tedious to sit down, install, and test all the possible choices. This is when having an automated method of installing all the software would really pay off.
Linux has pretty good options available through package management software and great support from shell scripts. Windows is a little harder to work with though, which is funny since there are so many different varieties of Windows. It would be possible to pull together a monstrosity of batch scripts, messages, and shared folders, but what about an integrated tool? How about one that runs as a service so it doesn’t bother the user?
Luckily, such a tool exists! It’s called Wpkg. It bills it self as “an automated software deployment, upgrade and removal program for Windows.” Even better, it’s licensed under the GPL so no need to pay for it! It’s a very straightforward, well-thought out program.
Installation is very simple:
- Put some .xml files on your server in a shared directory.
- Run an installer on the client and click next a few times.
- No reboot required!
The documentation isn’t the clearest, but it gets the job done. The only real issue I have with it is the word choice the program uses. You have a hosts.xml file that configures what packages you download depending on the ‘host’. Pretty simple? Well, a host is actually the client, not the machine hosting the files. I pulled my hair out about this for half a day before I figured it out. Maybe I’ll contribute to the project’s documentation and try to make this clearer…
Anyways, after a few hours of writing XML files, I can now install a large suite of software on all my machines in around 20 or 30 minutes total. Normally, it’d take about 30-40 minutes per machine. Since I configure over 10 machines, that’s a savings of over 6 hours! Hopefully, this doesn’t happen.
The whole thing is very “fire-and-forget”. In fact, I usually start the whole process before my lunch break and it’s done when I come back. So if you spend a lot of time installing software when you could be developing or testing the software instead, I’d highly recommend giving this program a try.