Computerprogramme werden heutzutage üblicherweise in einer Hochprogrammiersprache wie z.B C++ geschrieben. Ein Programm in einer Hochprogrammiersprache (das heißt dann Quellcode) versteht ein Prozessor aber nicht direkt, es muss erst in einen für den Prozessor verständlichen Code übersetzt werden, was allgemein Compilieren (kurz Compilen) genannt wird (meist sind etwas mehr Arbeitsschritte notwendig: Prä-Prozessor-Durchlauf, Compilation, Assemblierung und Linken).
Ein dann in einer Prozessorsprache vorliegendes Progamm (wie z.B. die .exe-Dateien unter Microsoft Windows) kann üblicherweise nur auf Prozessoren gleichen Typs ausgeführt werden. Da die meisten Programme die Funktionen eines bestimmten Betriebssystems benutzen, ist das Vorhandensein dieser Funktionen auf der Maschine, auf der das Programm ausgeführt werden soll, ebenfalls notwendig.
Viele unter Linux lauffähige Programme können auf verschiedenen Prozessoren und auch anderen UNIX-artigen Betriebsystemen ausgeführt werden, allerdings nur, wenn sie entsprechend für diese Systeme compiliert wurden, aber für die Programmierer wäre es ein ziemlicher Aufwand, für jedes denkbare System eine compilierte Version zu erstellen, daher wird vielleicht noch für gängige Linux-Systeme eine compilierte Version angeboten (meist im RPM-Format), aber auch der Quellcode selbst, der üblicherweise als gezipptes tar-Archiv (.tar.gz / .tgz) daher kommt.
Um selbst ein Programm kompilieren zu können, sind neben dem Quellcode meist noch ein paar Quellcode-Bestandteile des Betriebsystems und das Compilierprogramm ("Compiler") nebst Hilfsprogrammen notwendig.
Auf UNIX-artigen Systemen geschieht das Compilieren meist, indem man den Programm-Quellcode in eine Verzeichnis entpackt und von dort (von der Kommandozeile aus) mit
ein kleines Programm laufen lässt, das überprüft, ob alle Voraussetzungen zum Compilieren erfüllt sind, und das entsprechende Einstellungen für die eigentliche Compilation vornimmt. Die Compilation wird dann mit
gestartet. Die Installation des so erstellten Programms erfolgt dann mit
, aber da das Installationsprogramm wahrscheinlich einige Dateien quer im Dateisystem verstreut, was eine spätere Deinstallation (Deinstallationsprogramme glänzen leider oft durch Abwesenheit) schwierig macht, ist es besser, das Programm checkinstall zur verwenden, um statt der Installation die Erstellung eines zur Linux-Distribution passenden Installationpakets (z.B. im RPM-Format) zu erstellen, das sich dann einfach installieren und deinstallieren lässt. Noch einfacher ist es natürlich, wenn man gleich ein passendes Installationspaket findet (z.B. bei
www.rpmseek.com), schon weil eine Compilation ziemlich lange dauern kann. Leider sind sich die verschiedenen Linux-Distrutionen, die das RPM-Format verwenden, nicht so richtig einig, was in ein RPM alles wie genau hinein gehört, man sollte daher möglichst RPMs benutzen, die exakt für die eigene Linux-Distribution erstellt wurden.