Vorgaben anpassen

Nach dem Programmstart erfolgt als Erstes eine Abfrage, ob Sie eine Paketdokumentation anlegen möchten. Das sollten Sie bejahen, denn so schreibt Checkinstall (sofern im Quellcode vorgesehen) die entsprechenden Dateien nach /usr/share/doc. Danach stellt Checkinstall Ihnen eine Reihe weiterer Fragen in Form einer nummerierten Liste (Listing 1).

Listing 1

$ sudo checkinstall
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
  Diese Software wurde unter der GNU GPL veröffentlicht
*****************************************
**** Debian package creation selected ***
*****************************************
Das Paket wird entsprechend dieser Vorgaben erstellt:
0 -  Maintainer: [ root@test-VirtualBox ]
1 -  Summary: [ Package created with checkinstall 1.6.2 ]
2 -  Name:    [ hello ]
3 -  Version: [ 2.10 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ hello-2.10 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ hello ]
12 - Conflicts: [  ]
13 - Replaces: [  ]
Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:

Aus dem Quellcode und dem Ordnernamen zieht es dabei schon eine Reihe von wichtigen Informationen und fügt diese automatisch als Vorgabe an. So fischt Checkinstall zum Beispiel den Namen des Programms und die Versionsnummer aus dem Namen des aktuellen Ordners, bei Hello also aus hello-2.10. Fehlt dem Programmordner die Versionsnummer, dann benennen Sie den Ordner vor dem Ausführen von Checkinstall einfach um.

Sie ändern die von Checkinstall gemachten Vorgaben, indem Sie die entsprechende Zahl eintippen, den Änderungswunsch eingeben und danach die Eingabetaste betätigen. Welche Änderungen hier sinnvoll sind, hängt zum Teil von der Art und Komplexität des zu erstellenden Programms ab. Immer sinnvoll erscheint die Angabe einer Paketbeschreibung sowie des eigenen Namens und einer E-Mail-Adresse. Unter 6 - Gruppe trägt Checkinstall als Standard immer checkinstall ein. Bei Bedarf passen Sie das an die Gegebenheiten der Distribution an; im Fall von Debian und Hello wäre das zum Beispiel die Gruppe Devel.

Genauso wichtig ist die Angabe einer mit dem Vorgehen der jeweiligen Distribution korrespondierenden Versionierung. Debian "Stable" führt das Hello-Paket in der Version 2.9-2+deb8u1 in seinen Quellen. Bei Debian "Unstable" (oder "Sid") liegt das Paket hingegen bereits in der Version 2.10-1 vor. Weisen Sie Checkinstall nun an, dem selbst erstellten Paket die Versionsnummer 2.10-1 zu geben, dann trägt das Paket am Ende die Versionsnummer 2.10-1-1, also mit einer zusätzlichen -1 am Ende. Somit trägt die selbst gebaute Version selbst im Vergleich zu Debian "Unstable" eine höhere Versionsnummer und ist vor Updates durch die Paketverwaltung geschützt.

Die Punkte 10 - Requires, 12 - Conflicts und 13 - Replaces, die Abhängigkeiten und Konflikte betreffen, bedürfen nun etwas mehr Aufmerksamkeit. Existiert bereits ein Paket oder ein an eine Distribution angepasster Quellcode dieser Software, so bietet sich jetzt die Gelegenheit, die Abhängigkeiten und Konflikte abzukupfern. Angaben dazu finden Sie in der Datei control im Debian-Verzeichnis des debianisierten Quellcodes oder des schon bestehenden Pakets.

Fallstricke

Die Installation von kompilierten Anwendungen mit Checkinstall birgt eine Reihe von Fallstricken. Bricht etwa die Paketerstellung mit einer wenig aussagekräftigen Fehlermeldung ab, wie in Listing 2 dargestellt, so liegt das in der Regel an der Unfähigkeit von Installwatch, die zu installierenden Dateien im vom Programm verwendeten virtuellen Dateisystem zu finden. Abhilfe schafft hier der Aufruf von Checkinstall mit der Option --fstrans=no, der diese Funktion übergeht und die temporären Dateien im Home-Verzeichnis ablegt. Dort müssen Sie sie allerdings bei Bedarf mit Root-Rechten wieder löschen.

Listing 2

[...]
Installing with make install...
====================== Installations-Ergebnisse ======================
Makefile:20: ../include/biuilddefs: Datei oder Verzeichnis nicht gefunden
make: *** No rule to make target '../include/builddefs'. Schluss
**** Installation fehlgeschlagen. Breche Paket-Erzeugung ab.
Räume auf...OK
Auf Wiedersehen!

Im Fall des sehr einfachen Hello-World-Beispiels war alles korrekt, es gibt keinen Grund zum Eingreifen (Listing 3). Nach Abschluss aller Änderungen führt ein weiterer Druck auf die Eingabetaste zum Bau des Pakets, das anschließend gleich automatisch per dpkg -i auf dem System installiert wird (Listing 4). Zudem liegt die DEB-Datei für Installationen auf anderen Rechnern im Build-Verzeichnis, was einen weiteren Vorteil gegenüber einem make install darstellt.

Listing 3

[...]
Das Paket wird entsprechend dieser Vorgaben erstellt:
0 -  Maintainer: [ Ferdinand Thommes <foo@bar.net> ]
1 -  Summary: [ Hello World mit Checkinstall 1.6.2 paketiert ]
2 -  Name:    [ hello ]
3 -  Version: [ 2.10-1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ hello-2.10 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ hello ]
12 - Conflicts: [  ]
13 - Replaces: [  ]
Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:

Listing 4

[...]
Kopiere Dateien in das temporäre Verzeichnis...OK
Stripping ELF binaries and libraries...OK
Komprimiere man-Seiten...OK
Erzeuge Datei-Liste...OK
Erstelle Debian-Paket...OK
Installiere Debian-Paket...OK
Lösche temporäre Dateien...OK
Schreibe Sicherungs-Paket...OK
Lösche temporäres Verzeichnis...OK
**********************************************************************
 Done. The new package has been installed and saved to
 /tmp/hello-2.10/hello_2.10-1-1_amd64.deb
 You can remove it from your system anytime using:
      dpkg -r hello
**********************************************************************

Letztendlich liegt Hello nun kompiliert und bereit zum Aufruf auf der Festplatte. Die Eingabe eines hello in der Shell begrüßt Sie mit einem freudigen Hallo, Welt! – mehr macht das Demo-Programm jedoch auch nicht. Die Kontrolle mit apt-cache policy zeigt, dass das Paket die gewünschte Versionsnummer trägt und lokal installiert wurde (Listing 5). Benötigen Sie das Programm nicht mehr, deinstallieren Sie es wie jedes andere Programm über die Paketverwaltung.

Listing 5

$ hello
Hallo, Welt!
$ apt-cache policy hello
hello:
  Installiert:           2.10-1-1
  Installationskandidat: 2.10-1-1
  Versionstabelle:
 *** 2.10-1-1 0
        100 /var/lib/dpkg/status
     2.9-2 0
        500 http://de.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
$ sudo apt-get remove hello
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
  hello
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 202 nicht aktualisiert.
Nach dieser Operation werden 913 kB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]

Fazit

Checkinstall hilft, das System bei der Installation fremder Software sauber zu halten. Anstatt mit einem make install die Software "wild" im System zu installieren, listet die Paketverwaltung die mit Checkinstall in eigener Regie erstellten Pakete auf, sodass diese sich bei Bedarf auch wieder sauber deinstallieren lassen. Zudem können Sie das Paket ohne zusätzlichen Aufwand auf weiteren Rechnern nutzen oder an Freunde und Bekannte weitergeben. Doch das Hantieren mit Checkinstall oder das Kompilieren von Software aus dem Quellcode zeigt besonders Einsteigern schnell die Grenzen des eigenen Handelns auf.

Checkinstall eignet sich in der Regel nur für einfache Programme mit keinen oder wenigen Abhängigkeiten, die zudem nicht auf Pre- und Post-Install-Skripte angewiesen sind. Wer meint, eben einmal schnell ganze Desktop-Umgebungen oder große Anwendungen wie LibreOffice eigenständig kompilieren zu können, der liegt falsch – aus der Abhängigkeitenhölle hilft auch Checkinstall nicht heraus. Für den Hausgebrauch beim Bauen kleiner Programme macht es jedoch eine gute Figur und kommt daher auch bei Linux-Profis für Quick-and-Dirty-Pakete zum Einsatz.

Einige Anleitungen im Internet empfehlen, mit Checkinstall erstellte Pakete zur Weitergabe an eine Community durchzureichen. Die Qualität und Vollständigkeit der erzeugten Pakete genügt jedoch selten gehobenen Ansprüchen. Für solche Fälle sollten Sie sich mit alternativen Methoden des Paketbaus beschäftigen, wie etwa mit buildpackage [5]. Diese gewährleisten unter anderem durch die korrekte Definition von Abhängigkeiten, dass das Paket auf verschiedenen Rechnern korrekt arbeitet. 

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

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

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Paketbau in Eigenregie mit Checkinstall
    Ihr Lieblingsprogramm gibt es nur als Quelltext zum Selberbauen? Kein Problem: Mit Checkinstall bekommen Sie die Software sauber ins System und auch wieder heraus.
  • 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.
  • Software
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

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

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...