Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I produce an installer for a set of source codes for a specific application in Linux? Also, what are the actions happening when one installs software in Linux?

share|improve this question
Depends on what you are trying to package for what context. Console app? Graphic app? Debian? ArchLinux? Gentoo? Fedora? Redhat? All of the above? – badp Nov 30 '10 at 9:02
There are several threads on the topic at Stack Overflow, for example Creating an installer for Linux application and Best approach to writing a generic installer for a Linux application?. – Gilles Nov 30 '10 at 19:01
up vote 7 down vote accepted

As there's more than one Linux distro, there's also more than one package management solution. I think that creating an app installer depends more on the target audience than on the target system.

  1. If you plan to produce an installer for confirmed Linux users, then a source tarball will suffice.
  2. If you target desktop users or non-confirmed Linux users, then produce DEB and RPM packages since those two package management tools cover the major Linux distros.

Also what is the actions happening when we install a software in Linux?

For source tarballs, nothing actually. The user is left alone to compile the source archive and figure out what are the dependencies (libraries and so on) without what the application wouldn't run.

For DEB and RPM (and other package management tools) the process of figuring out what dependencies are needed and the installation operation, is managed entirely by the package management tool(a connection to the Internet is needed to download the dependencies). The package management tool is responsible for registering the just installed app and all its dependencies in a local registry system so it wouldn't be necessary to install them once more for future needs.


DEB: a Debian package file. apt is Debian's package management tool.

RPM: RedHat Package Manager file. The same name goes for the package management tool.

share|improve this answer
+1. Also, deb and rpm packaging builds on standard source tarballs by adding a debian dir and a pkgname.spec file respectively, so the source tarball would be the first step. – Tobu Nov 30 '10 at 22:13
Nominally at least, RPM now stands for "RPM Package Manager", despite its origin. – mattdm Dec 1 '10 at 3:47

Prepare a makefile and make a tarball with just the source code and let every user compile it as they seem fit, and/or build an RPM package (or a .deb or something else, RPM packages are supposed to be standard).

share|improve this answer

Some commercial software or games sometimes uses Nixstaller:

Nixstaller is an Open Source project with the goal to create user friendly and flexible installers that work on various UNIX like systems.

Using Nixstaller we can create installers that works on most modern distributions, can install app locally or in system and looks like Windows installers ;).

But the best solution is to create native packages for each distribution so it could be managed via system package manager. For more details information about this you need to write more details about what you want to accomplish.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.