AA_cord_goodmorph_sxc_1166496.jpg

© Goodmorph, sxc.hu

Gut geschnürt

Paketbau in Eigenregie mit Checkinstall

22.05.2012
Ihr Lieblingsprogramm gibt es nur als Quelltext zum Selberbauen? Kein Problem: Mit Checkinstall bekommen Sie die Software sauber ins System und auch wieder heraus.

Linux-Anwender sehen sich heute selten mit der Situation konfrontiert, Software aus Quellcode übersetzen und installieren zu müssen. Die Paketquellen aller wichtigen Distributionen zeigen sich bestens bestückt, bei Debian "Squeeze" finden sich beispielsweise über 29 000 Pakete in den Repositories [1]. Hinzu kommen zahlreiche Spezialquellen mit launigen Namen wie Launchpad, Packman, RPM Fusion, Medibuntu oder Demudi, die weitere Pakete anbieten.

Manchmal kommt es trotzdem vor, dass Sie auf der Suche nach einem Programm auf Freecode [2] oder Sourceforge [3] nur auf den Quellcode stoßen. Dann heißt es selbst Hand anlegen. Gleiches gilt, wenn Sie auf die neuste Entwicklerversion angewiesen sind und diese direkt aus dem Versionskontrollsystem ausbuchen.

Licht und Schatten

Zwar erweist sich der Zugriff auf den Quellcode zweifelsohne als Vorteil von Linux gegenüber proprietären Plattformen, der Einsatz von Sourcen bringt aber – vom Aufwand des Übersetzens einmal ganz abgesehen – auch Probleme mit sich. Schließlich haben die Entwickler nicht umsonst das Paketmanagement erfunden und pflegen ihre Ansätze mit meist großen Aufwand.

Wer Software mit dem Compiler übersetzt und mit make install ins System integriert, der mogelt sich an den Paketmanagementsystemen vorbei. Diese bemerken solche Software schlicht nicht und berücksichtigen sie folglich nicht beim Prüfen von Abhängigkeiten. Dabei geht zwangsläufig irgendwann der Überblick über die installierte Software verloren. Zudem lässt sich auf diese Weise installierte Software nur mit Mühe wieder entfernen, weil viele Entwickler dem Makefile das dazu erforderliche Ziel uninstall nicht beifügen.

Das Aktualisieren einer direkt aus den Quellen eingerichteten Software fällt ebenfalls kompliziert aus. Weitere Probleme drohen bei selbst übersetzten Bibliotheken: Installieren Sie ein anderes Programm, das die selbe Bibliothek benötigt, ganz regulär mit Hilfe des Paketmanagements, bemerkt dies das Vorhandensein der Bibliothek nicht und behandelt sie als fehlende Abhängigkeit.

Gern führen Verfechter des manuellen Paketbaus das Argument des komfortablen Verteilens an, was für den Einsatz des im folgenden vorgestellten Tools Checkinstall [4] aber nicht zutrifft: Das Tool schafft Probleme mit Abhängigkeiten nicht oder nur bedingt aus der Welt.

Wer also den Bau von Paketen anstrebt, um Software für bestimmte Distributionen zu verteilen, dem bleibt kaum eine Alternative zu manuellen Verfahren wie Dpkg-deb (Debian/Ubuntu) oder Rpmbuild (Fedora/OpenSuse). Das bedeutet aber einen erheblichen Aufwand und setzt grundlegende Kenntnisse im Paketbau sowie im Umgang mit Entwicklungswerkzeugen voraus.

Funktionsumfang

Möchten Sie dagegen auf einem lokalen Rechner Software über das Paketmanagement verwalten, eignet sich die automatische Methode mit Checkinstall optimal – und genau dafür ist sie gedacht. Das pfiffige kleine Skript von Felipe Eduardo Sánchez Díaz Durán kursiert seit vielen Jahren – erste Versionen stammen aus dem Jahr 2000.

Checkinstall erstellt aus einem vorkompilierten Quelltextpaket automatisch ein Distributionspaket. Das funktioniert via Parameter wahlweise für Debian, OpenSuse oder sogar Slackware. In Abhängigkeit des zugehörigen Parameters spuckt es am Ende ein passendes Paket aus. Die über Jahre am häufigsten eingesetzte Checkinstall-Version 1.6.1 datiert auf 2006, die noch aktuelle und in nahezu allen Distributionen enthaltene Version 1.6.2 immerhin auf das Jahr 2008.

Gemäß Beschreibung in den Debian Paketquellen handelt es sich bei dem Programm um einen "Installations-Verfolger", was ziemlich treffend beschreibt, was das Skript tut: Checkinstall überwacht die Anpassungen von Installationsroutinen wie make install und erstellt aus den gesammelten Daten ein Paket. Sie können das erstellte Paket dann nutzen, um die Software bei Bedarf wieder vom System zu entfernen, theoretisch aber auch, um sie auf anderen Rechnern zu installieren.

Letzteres funktioniert nur bedingt, je nachdem ob das Programm Abhängigkeiten aufweist und welcher Art diese sind. Außerdem gibt es weitere Einschränkungen: Das Skript funktioniert nicht bei Programmen, die statisch gegen die Libc linken, oder bei solchen, bei denen das SUID/GUID-Bit gesetzt ist.

Checkinstall erledigt seine Aufgabe arbeitsteilig: Nach dem Sammeln der Informationen erstellt es ein weiteres, temporäres Skript und führt dieses wiederum mit dem Skript installwatch aus, das ebenfalls zum Umfang von Checkinstall gehört. Dieses wiederum greift auf eine Bibliothek zurück, die letztendlich die Dateizugriffe protokolliert.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Pakete bauen ohne Mehraufwand
    Selbst kompilierte Software fällt durch das Paketmanagement-Raster – oft mit unangenehmen Folgen. Hier schafft Checkinstall unkompliziert Abhilfe.
  • checkinstall
    Wer unter Linux viel aktuelle Software ausprobiert, kennt das Problem: Neueste Programmversionen existieren oft nur als tar-Archiv und lassen sich lediglich unter Klimmzügen wieder deinstallieren. Checkinstall schafft Abhilfe.
  • Wie am Schnürchen
    In nur wenigen Schritten verwandeln Sie ein Quelltextarchiv in ein vollwertiges Debian-Paket.
  • RPM-Pakete selbst bauen
    Die meiste Software für Linux liegt im Quellcode vor und muss kompiliert werden. Dies geht schnell von der Hand, doch spätestens wenn man eine Anwendung wieder loswerden will, fangen die Probleme an.
  • Software
Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.