GNU Source Installer (sourceinstall) is a complete source package management tool, that handles source package configuration, installation, tracking and removal, information querying and export.
It is intended to work on modern Unix-like systems (with GNU/Linux
as a primary target).
This is a tool intended for the user, not for developers: it has nothing to do with package creation. It helps people install and manage software packages in source form.
The user installs new source packages by browsing the web, downloading a source package (in .tar.gz or other formats), and then feeding it to the source installer.
There are two different ways to interact with sourceinstall: a Tk graphical interface, and a command-line driven, non-interactive interface.
If you already build most of the software on your system from source code, you might try sourceinstall nonetheless. Here is what this software offers to the experienced user:
even if you have no problems building from source code, you can use sourceinstall as a way to centralize and better organize your source installations.
that should satisfy the needs of many. The GUI interface also shows all output of the underlying command line tools called, and displays information about installed packages and available actions and preferences, so nothing will be hidden from you. The command line interface and the GUI are functionally equivalent.
Scripts can interface with GNU Source Installer at the executable level, by using the command line interface.
with info about install size, source size, and all files relevant to each package.
Yes, you can build everything from source directly using ./configure, make, make install, but sourceinstall helps you remember which configure parameters you used back then to configure that package, helps you after installation by tracking the executable to run, the available documentation, etc from a handy file list, offers editable package descriptions, and other features.
If a file associated with an installed package goes missing, then (Tk interface) clicking on the package will prompt the problem, and mark the missing file with big warnings. If you can not solve the issue yourself by restoring the file, you can ask for a fresh reinstallation by clicking “Reinstall”. The command line --check and --install actions can be used for the same goal.
The program will issue warnings if the package offers only a very spartane build system, or does not correctly honor common Makefile targets and features.
You will be able to get notified of warnings and errors from ./configure
, make
, and all other programs.
The program performs crosschecks between make uninstall results and internal information available on individual packages (gathered during the install process in a clean and portable way). These checks can detect files left over by the make uninstall procedure, and if no other package claims them, they are suggested for removal (Tk interface), or removed directly (cmdline interface).
The program should work on most modern Unices. Even though great care has been taken as to use only very portable code in both the program and its build system, something can slip by, even more since I (the author) do not have other machines than a trusted GNU/Linux box. Just report them: chances are, you will get the portability problem solved sooner than expected.
The following is a critique against this tool, that shows what you lose, or do not gain in contrast to relying for example on the good old command line:
sourceinstall basically installs two times. The program makes a test installation first (if DESTDIR
or INSTALL_ROOT
are supported), to make a final check and gather useful information. This has an impact on total installation time. It is a necessary overhead to avoid non-portable low level solutions. In addition, other phases you can sometimes skip when running the commands yourself will add up to the total installation time.
sourceinstall has to make some generalizations and will not be able to install difficult packages. An experienced user or developer can quickly go through a broken or sketched Makefile
and fix things for his system, but sourceinstall can not. Also, packages which use different installation conventions (for example imake), do not work with sourceinstall. This program actively supports the autotools and the derived build system. If enough people use this tool, this could further drive developers towards the autotools and to create better packages in general.
This is not a GNU/Linux distribution. It is a source package management tool. If your package blocks during configuration, you still look at that error message in the console or pseudo-console and act consequently (generally this involves browsing for that missing file/package). This program does not interact with a repository of “installable” packages and dependencies.
If the benefits shown in the preceeding list do not apply to you, you might prefer to just install from source as you always did. After widespread adoption, however, even less experienced users than you could be able to approach the source packages (and hopefully become more experienced with time).