I started writing unistall for situations when you had to install binary packages on a variety of distros.
It attempts to do a few things:
- Realize the OS type and package manager, allowing you to use the system package manager to pull in any dependencies that your program might require. For instance, it will know to use
apt-get install libncurses5-dev
if using debian/ubuntu, yum install libncurses-devel
if using RHEL/Fedora/CentOS
- Understand what mechanism is used to update init, if needed
- Create a safe un-installer
- Work on any shell (bash, dash, zsh, pdksh, busybox ash, etc)
I leave the repo up because its full of useful bits, however I quickly gave up on the idea of an install sheild
type program for Linux distributions. You'll find that its much, much better to produce installable packages for .deb , .rpm and (possibly) slackware .tgz formats.
This can be integrated into your build system using a tool like checkinstall. Note, the packages that checkinstall generates are not always perfect, according to strict lint guidelines set out by Debian and others, however the packages work just fine.
The best installation experience you can provide a user is allowing them to install (and update) your software using their native package manager.