2. Zum Buch

2.1. Über die Autoren

Dipl.-Inf. Axel Beckert [Beckert-Webseite] hat Informatik mit Nebenfach Biologie an der Universität des Saarlandes studiert. Er arbeitet als Linux-Systemadministrator an der ETH Zürich, ist im Vorstand der Linux User Group Switzerland (LUGS) und Mitglied des Debian-Projekts. Er benutzt aptitude seit über 10 Jahren und ist seit der Neuformierung des aptitude-Teams zum Jahreswechsel 2011/2012 als Mentor, Versuchskaninchen für neue Versionen und Paketsponsor bei aptitude mit an Bord. Seit 2015 ist er auch offiziell einer der Maintainer des Pakets aptitude und kümmert sich primär um die Paketierung.

Dipl.-Inf. Frank Hofmann hat Informatik mit Nebenfach Englisch an der Technischen Universität Chemnitz studiert. Er arbeitet weitestgehend von unterwegs aus als Entwickler, Trainer und Autor. Bevorzugte Arbeitsorte sind Berlin, Genf und Kapstadt. Seit Sommer 2013 ist er Mitglied im Debtags-Projekt [Debian-Debtags], das sich die Verschlagwortung der einzelnen Debian-Pakete zum Ziel gesetzt hat.

2.2. Wie und warum dieses Buch entstand

Das Thema „Paketmanagement“ beschäftigt uns als Autoren schon sehr lange. Obwohl jeder die Werkzeuge und Mechanismen tagtäglich verwendet, entdeckten wir zunächst unabhängig voneinander immer wieder neue Aspekte, die sich schrittweise zu einem komplexen Gesamtbild ergänzten.

Beim gemeinsamen Fachsimpeln entstanden aus dieser Begeisterung heraus zunächst Beiträge für die Zeitschrift LinuxUser [Hofmann-Osterried-Alien-LinuxUser] [Hofmann-Winde-Aptsh-LinuxUser] [Hofmann-Debtags-LinuxUser]. Parallel dazu arbeiteten wir weitere Aspekte digital auf und veröffentlichten entsprechende Blogbeiträge [Beckert-Blog], hielten Vorträge bei Linux-Veranstaltungen und versuchten uns in einem Screencast zum Thema.

Im Herbst 2012 hatte Axel die Idee, einen LinuxUser-Artikel zu aptitude im Alltagsgebrauch zu schreiben. Dazu kam es bisher noch nicht[1], denn eine Reihe von Vorarbeiten war dazu notwendig. Wir einigten uns daher auf einen Beitrag zu den Unterschieden zwischen apt-get und aptitude, der jedoch immer länger und länger wurde und schließlich im Frühjahr 2013 in einen Zweiteiler mündete [Beckert-Hofmann-Aptitude-1-LinuxUser] [Beckert-Hofmann-Aptitude-2-LinuxUser].

Bevor wir uns daran machten, Passagen aus diesen umfangreichen Beiträgen wieder herauszustreichen, fiel irgendwann der Satz: „Wenn wir so weitermachen, können wir eigentlich gleich ein Buch schreiben“. Seitdem ließ uns diese Idee nicht mehr los. Teile der Texte und Abbildungen wurden aus den erwähnten Veröffentlichungen übernommen und nach Bedarf für das vorliegende Werk überarbeitet. Das Ergebnis halten Sie nun in Ihren Händen.

2.3. Motivation

Uns fasziniert die Paketverwaltung unter Debian, deren Mächtigkeit und unglaubliche Robustheit. Sie funktioniert so klaglos, dass man schon wieder skeptisch werden müsste und nach konzeptionellen Fehlern sucht – aber es gibt tatsächlich keine. Wie in jedem größeren IT-Projekt gibt es neben den intensiv genutzten, gut dokumentierten Bereichen aber auch „dunkle Ecken“ und unangenehme Bugs, kuriose Lösungen und kurzfristige Workarounds; es sind allerdings nur wenige, die auch nur in recht ausgefallenen Situationen zutage treten.

Genießen Sie also das beruhigende Gefühl, dass bei der Verwendung der Werkzeuge eigentlich nichts schiefgehen kann – und wenn doch, gibt es immer einen kurzen Weg, das Malheur wieder zu beseitigen.

Sich hingegen in dem vielschichtigen Geflecht aus dpkg, APT und aptitude zurechtzufinden und ein Verständnis für die einzelnen Programme und Mechanismen zu entwickeln, bedarf Ihrerseits ein wenig Geduld: Ohne nachzulesen und intensiv auszuprobieren, geht es nicht – und auf eben diesem Weg möchte Sie unser Buch begleiten.

Nach einem ersten, flüchtigen Blick auf die genannten Werkzeuge zur Paketverwaltung scheint es so, als sei es unerheblich, welches wann zum Einsatz kommt. Dem ist nicht so, denn jedes hat seine ureigene Aufgabe in der Hierarchie der Paketverwaltung. Subtile Unterschiede zwischen APT und aptitude sorgen mitunter für eine blutige Nase, und insbesondere Ein- und Umsteiger aus der RPM-Welt haben es zu Beginn nicht so leicht. Daher gibt es im Anhang eine Übersicht zu den Aufrufen von RPM, YUM und DNF — siehe Kapitel 48, Kommandos zur Paketverwaltung im Vergleich.

Das Buch will darum vor allem Klarheit schaffen und Ihnen die Zusammenhänge zwischen den Programmen deutlich machen. Es hilft Ihnen, in jeder Situation das passende Werkzeug zur Paketverwaltung auszuwählen und es gekonnt einzusetzen. Dazu fassen wir den aktuellen Stand der Entwicklung zusammen und beleuchten darüber hinaus die angrenzenden Programme bzw. die damit verbundenen Fragestellungen im Alltag der Systembetreuung.

2.4. Technische Basis

Rein technisch setzt das Buch auf AsciiDoc [AsciiDoc] auf — einem Textformat, aus welchem dann über mehrere Zwischenstufen diverse Ausgabeformate wie PDF, EPUB oder HTML entstehen. Basierend auf einer einzigen Quelle stehen damit passende Ergebnisse für die verschiedenen Ausgabegeräte zur Verfügung. Die AsciiDoc-Dateien liegen in einem Versionskontrollsystem namens Git und sind auf der Plattform GitHub verfügbar [dpmb-github]. Neben der Möglichkeit, während des Arbeitens auch auf eine frühere Revision zurückgreifen zu können, ermöglicht das ein paralleles, verteiltes Arbeiten von verschiedenen Standorten aus. Zudem kann jeder Interessierte am Buch in Form von Vorschlägen und Korrekturen beitragen.

Versionsverwaltung mit Git

Den Einstieg zu Git erleichtert Ihnen das gleichnamige Buch von Julius Plenz und Valentin Haenel (Julius Plenz und Valentin Haenel: Git. Verteilte Versionsverwaltung für Code und Dokumente, Open Source Press, München, 2. Auflage November 2014, ISBN 978-3-95539-119-5).

2.5. Quellcode und Lizenz

Der o.g. Quellcode des Buches findet sich auf GitHub [dpmb-github] und ist unter der Creative Commons Namensnennung — Weitergabe unter gleichen Bedingungen 4.0 International Lizenz [CreativeCommons] frei verfügbar.

Änderungswünsche oder -vorschläge zum Buch senden Sie bitte dort als Issue [github-issue] — oder sogar noch besser — als Pull-Request mitsamt Patch [github-pull-request] ein.

2.6. Organisatorisch

Beide Autoren leben und arbeiten in recht unterschiedlichen Regionen — Axel Beckert in Zürich und Frank Hofmann in Berlin, Genf und Kapstadt. Aufgrund der Distanz sind regelmäßige Arbeitstreffen nur begrenzt möglich und wurden mit Hilfe von Buchsprints sowie elektronischer Kommunikation überbrückt. Das Buch entsteht seit dem Frühjahr 2013 und häufig auch im Rahmen von Linux-Events. Besonders hervorzuheben sind hierbei die Chemnitzer Linux-Tage [CLT], die Rencontres Mondiales du Logiciel Libre [RMLL] und die Debian Entwicklerkonferenz [DebConf]. An diesen Veranstaltungen nehmen wir gern aktiv teil und nutzen die Gelegenheit, das Buch gemeinsam zu vervollständigen.

Viele Texte verfassen wir zudem von unterwegs aus. Die bisherigen Stationen umfassen Aix-les-Bains, Ålesund (Norwegen), Andorra, Augsburg, Beauvais (Picardie), Bergneustadt, Berlin, Besançon, Biel, Bottighofen (Bodensee, Schweiz), Bratland (bei Bergen, Norwegen), Bruchsal, Cudrefin, Chemnitz, Delémont, Essen, Frankfurt/Main, Freiburg im Breisgau, Friedrichshafen, Genf, Germersheim, Goizueta (Baskenland, Spanien), Großer Sankt-Bernhard-Paß, Hamburg, Heidelberg, Hout Bay (Western Cape, Südafrika), Kapstadt, Koblenz, Lauchringen (Baden, Wutachtal), Lausanne, Meersburg, Montpellier, Montreux, München, Orø (Dänemark), Port del Cantó (Katalanische Pyrenäen, Spanien), Radebeul bei Dresden, Rømø (Dänemark), Rostock-Warnemünde, Saint-Cergue (Jura, Schweiz), Saint-Étienne, Saint-Jouin-Bruneval (Normandie), Saint-Victor-sur-Loire (Auvergne-Rhône-Alpes), Sankt Augustin (bei Bonn), Savines-le-Lac (Hautes Alpes, Frankreich), Insel Sokn (bei Stavanger, Norwegen), Tübingen, Tvinnefossen (Norwegen), Zernez (Engadin) und Zürich (siehe Abbildung 1, „Orte, an denen das vorliegende Buch entstand“). Wir nahmen uns dabei an der Philosophie von Debian GNU/Linux ein Beispiel: ohne Hektik, mit dem Blick fürs Detail und zumeist pedantisch bis ins letzte i-Tüpfelchen, aber trotzdem mit viel Freude, Neugierde und unserem Entdeckerdrang folgend.

Abbildung 1. Orte, an denen das vorliegende Buch entstand

kann-denn-paketmanagement-spass-machen/zum-buch/buchkarte.png

2.7. Grundlagenwissen für Administratoren

Der sichere Umgang mit der Paketverwaltung zählt zu Ihrem Grundwissen als Administrator, um ein UNIX-/Linux-System einrichten und in Bezug auf die eingesetzte Software betreuen zu können. Betreiben Sie Ihre Systeme als Benutzer in Eigenverantwortung, sind diese Kenntnisse für Sie im Alltag ebenso unverzichtbar.

Unabdingbar ist die Auseinandersetzung mit dem Paketmanagement für Zertifizierungen. Das Linux Professional Institute (LPI) widmet dem Thema in der Zertifikatsstufe LPIC-1 einen eigenen Schwerpunkt mit hoher Gewichtung [lpic-101].

Material für Ihre LPIC-Prüfungen

Ihre Vorbereitung auf die anspruchsvollen Tests des LPI ergänzen die beiden Bücher „LPIC-1. Vorbereitung auf die Prüfungen des Linux Professional Institute“ von Peer Heinlein [Heinlein-LPIC-1] und „LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung“ von Harald Maaßen [Maassen-LPIC-1].

Dokumentation zu aptitude

Das vorliegende Buch resultiert auch aus einem Ärgernis, das zur weltweit verteilten Zusammenarbeit über das Netz gehört: Das Internet vergisst nichts, und irgendwo ist immer noch eine veraltete Dokumentation verlinkt, deren Hinfälligkeit mangels Verfallsdatums auch nicht zu erkennen ist.

Bei der Recherche nach aptitude-Optionen verzweigen Suchtreffer häufig auf unklare, überholte und vielfach verteilte Erläuterungen. Als erster Anhaltspunkt bei einer überschaubaren Fragestellung mag das helfen, kann aber auch in eine Sackgasse oder gar zu Fehlern führen, wenn sich die Software just in diesem Punkt weiterentwickelt hat.

Der Wunsch nach einem aktuellen, konsistenten und einsprachigen Nachschlagewerk zur Paketverwaltung mit dpkg, APT und aptitude erhielt also ausreichend Nahrung, zumal auch die an recht prominenter Stelle verlinkte Online-Dokumentation zu aptitude veraltet war (Stand: 2008). Auf Axels Initiative wurde sie aber mittlerweile auf den neuesten Stand gebracht und steht seit August 2013 wieder in sämtlichen bisherigen Übersetzungen zur Verfügung [aptitude-dokumentation].

Das kommt insbesondere Anwendern entgegen, die Dokumentation lieber online lesen (oder „ergooglen“) statt sich die (stets aktuellen) Dokumentationspakete aus den Repositories auf ihrem System zu installieren. Ausführlicher gehen wir auf das Thema in Kapitel 9, Dokumentation ein.

Bei unserer Arbeit am Buch entdeckten wir zahlreiche Lücken in den Programmbeschreibungen, den Manpages und den beigefügten, weiterführenden Dokumentationen [bugs-found-during-book-writing]. Dabei wurde uns auch bewusst, welche Bedeutung dem persönlichen Erfahrungsschatz und insbesondere dem passiven Wissen zukommt. Wir haben uns bemüht, davon möglichst viel in dieses Buch einfließen zu lassen.

2.8. Dokumentation deb vs. rpm

Trotz vieler Fortschritte sind manche Programme zur Paketverwaltung und Hinweise zum Zusammenspiel von dpkg, APT und aptitude nur bruchstückhaft oder gar nicht beschrieben – oder sie sind über viele Köpfe und Online-Ressourcen hinweg verstreut. Auch an Übersetzungen mangelt es: So liegt trotz des hohen Nutzungsgrades beispielsweise die aptitude-Dokumentation bisher nicht in deutscher Sprache vor.

Im Vergleich steht das Paketformat RPM etwas besser da. In seinem Buch „Maximum RPM“ [Bailey-Maximum-RPM] hat Edward C. Bailey im Jahr 2000 die Regieanweisungen für den Umgang mit diesem Format veröffentlicht. Aktueller sind der „RPM Guide“ des Fedora-Projekts [Foster-Johnson-RPM-Guide] und weiterführende Dokumentationen auf der rpm-Projektseite [RPM-Webseite].

Ein vergleichbares Buch zur Debian-basierten Paketverwaltung fehlte bislang. Viele hervorragende Kompendien (siehe dazu Abschnitt 9.7, „Weitere Bücher“) behandeln zwar die einzelnen Kommandozeilenwerkzeuge dpkg, APT, aptitude oder Synaptic, aber meist fehlt der (entscheidende) Entwurf eines Gesamtbildes, das sich erst aus der geschickten Kombination dieser Werkzeuge ergibt.

2.9. Was ist das Buch – und was nicht …

Wir stellen dpkg, APT und aptitude mit den zugrundeliegenden Mechanismen in den Mittelpunkt. Wir erläutern die Unterschiede und ordnen die Werkzeuge anhand konkreter Aufgabenstellungen in den realen Einsatzkontext ein. Diesem problemorientierten Ansatz folgend, werden Sie die Programme künftig effizienter einsetzen und Paketmanagement als ebenso hilfreichen wie angenehmen Teil der Administration der Ihnen anvertrauten Systeme erleben.

Gedacht ist das Buch als Nachschlagewerk und Lernmedium für den Alltag. Es hilft Ihnen, (typische) Fehler oder Umwege zu vermeiden, und räumt mit zahlreichen Missverständnissen auf, die beim Thema Paketmanagement immer noch kursieren.

Unser Buch ist kein allgemeines Linux-Einsteiger-Buch in der Geschmacksrichtung „Debian GNU/Linux“, sondern widmet sich mit der Paketverwaltung bei Debian-Systemen einem speziellen Teilaspekt der Systembetreuung. Folglich spielen andere Paketformate als deb allenfalls eine Nebenrolle (siehe Abschnitt 2.2, „Varianten und Formate für Softwarepakete“). Andere Debian-Derivate (siehe Abschnitt 1.5, „Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement“) und Linux-Distributionen haben vieles von Debian GNU/Linux übernommen, und die Rezepte lassen sich daher oft in gleicher Weise anwenden. Wir können jedoch nicht garantieren, dass wirklich alle Ausführungen uneingeschränkt für andere Distributionen gelten. Sofern uns gravierende Abweichungen vom Debian-Standard bekannt sind, benennen wir diese und erklären, wie Sie in einem solchen Fall am besten verfahren.

Weiterhin ist dieses Werk kein Entwicklerhandbuch, aus dem Sie erfahren, wie Sie deb-Pakete bauen und diese in Debian einbringen. Dieses Thema würde den Rahmen des vorliegenden Werkes um ein Mehrfaches sprengen und bleibt daher außen vor.

2.10. Zielgruppe und Lernziele

Dieses Buch richtet sich in erster Linie an Systemadministratoren und „Gehäusedeckelabschrauber“[2]. Richtig sind hier Verwalter und Betreuer Debian-basierter Infrastrukturen sowie Fortgeschrittene, die eine solche Funktion anstreben. Ihnen dienen Teil 1 (Konzepte) und 2 (Werkzeuge) mit den darin beschriebenen Optionen als Nachschlagewerk. Teil 3 (Praxis) hingegen nutzen sie als Arbeits- und Planungsmittel zur bestmöglichen Nutzung der beschriebenen Werkzeuge im Alltag.

Für Anwender, die den Linux-Einstieg mit Ubuntu oder Linux Mint bereits erfolgreich absolviert haben und nun der Systemverwaltung jenseits graphischer Oberflächen entgegenfiebern, bilden die Teile 1 und 2 das unverzichtbare Handwerkszeug. Teil 3 entspricht der Kür fortgeschrittener Kenntnisse. Die Lernkurve wird für sie deutlicher steiler ausfallen, aber stets beherrschbar sein.

2.11. Vorkenntnisse

Der Umgang mit der Kommandozeile sollte Ihnen vertraut sein. Wir legen uns nicht auf eine bestimmte Shell oder eine Terminalemulation fest. Alle Beispiele wurden unter bash getestet, funktionieren aber auch unter anderen Shells, wie z.B. der zsh (Axel nutzt auf einigen seiner Systeme die zsh als Login-Shell für den Benutzer root, wie es auch auf der Linux-Live-CD Grml gehandhabt wird). Die von uns ausgewählten und hier abgedruckten Ausgaben im Terminal sind unabhängig von der verwendeten Shell.

Graphische Werkzeuge spielen hier nur eine untergeordnete Rolle. Sie kommen nur dann zum Einsatz, wenn etwas nicht anders möglich ist oder es um genau deren Besonderheiten geht. Wir gehen davon aus, dass Sie auf einem Serversystem arbeiten und dieses ggf. sogar aus der Ferne betreuen. In dieser Konstellation bilden graphische Werkzeuge die absolute Ausnahme.

Für Teil 1 (Konzepte) ist Linux-Grundwissen unabdingbar: neben der Arbeit auf der Kommandozeile also auch grundlegende Kenntnisse über den Filesystem Hierarchy Standard (FHS), der die Struktur der Hauptverzeichnisse und deren Inhalte definiert (siehe dazu [FHS-Linux-Foundation] und [Debian-Wiki-FHS]).

Teil 2 (Werkzeuge) bespricht neben Strukturen zur Paketverwaltung alle Paketoperationen im Alltag und setzt dafür zumindest das Wissen aus Teil 1 voraus. Um manche Beispiele oder vorgestellte Konzepte leichter nachvollziehen zu können, ist mehrjährige Erfahrung mit Linux oder als UNIX-Systemadministrator von Nutzen.

Teil 3 (Praxis) beleuchtet ausschließlich konkrete, komplexere Anwendungsfälle aus dem Alltag. Voraussetzung dafür ist eine Vertrautheit mit den Werkzeugen zur Paketverwaltung, da es in diesem Abschnitt „ans Eingemachte“ geht.

Hilfreich sind darüber hinaus Englischkenntnisse: Viele Bildschirmausgaben sind englisch, nicht zuletzt weil die Lokalisierung der einzelnen Pakete bislang unvollständig ist.

Sie müssen auf Ihrem System über administrative Benutzerrechte verfügen, um manche Beispiele nachvollziehen zu können. Wir weisen nicht jedes Mal explizit darauf hin[3]. In den Beispielen für die Kommandozeile erkennen Sie anhand des Prompt-Zeichens, ob administrative Rechte notwendig sind oder nicht (# falls ja, und $, falls nicht). Auf Ausnahmen weisen wir Sie an der betreffenden Stelle explizit hin.

Auch wenn dpkg, APT und aptitude stabil und zuverlässig funktionieren – gerade in der Rolle und mit den Berechtigungen eines Administrators können falsche Befehle viel kaputt machen. Wir empfehlen Ihnen darum, die vorgestellten Beispiele zunächst auf einem separaten Testsystem auszuprobieren – sei dies ein eigener Rechner, eine virtuelle Maschine oder auch nur eine chroot-Umgebung [Debian-Wiki-chroot].

Dabei spielt es kaum eine Rolle, welches APT-basierte System Sie verwenden. Begonnen haben wir das Buch zu dem Zeitpunkt, als Debian 7 Wheezy die stabile Debian-Veröffentlichung war. Daher stammen die meisten Beispiele im Buch auch daher. Spätere Inhalte setzen auf dem Nachfolger Debian 8 Jessie und Debian 9 Stretch auf. Alle Ausnahmen sind entsprechend gekennzeichnet, bspw. wenn wir auf ein Derivat wie Ubuntu zurückgegriffen haben.

2.12. Und das können Sie nach der Lektüre …

Haben Sie das Buch gelesen und die Beispiele am Rechner nachvollzogen, verfügen Sie über profunde Kenntnisse in der Paketverwaltung unter Debian GNU/Linux. Dazu gehört:

  • Debian-Pakete sauber verwalten
  • kleinere und mittlere Debian-basierte Infrastrukturen pflegen
  • die richtigen Werkzeuge für die Pflege benutzen und mit der Paketverwaltung sowie den Werkzeugen effektiv umgehen
  • nicht nur die Software verwenden, sondern auch wissen, warum etwas funktioniert
  • Pakete und Software nach Wunschkriterien finden
  • alternative Auflösungen für Paketabhängigkeiten finden, verstehen und anwenden

All dies qualifiziert Sie für das entsprechende Lernziel der LPI-Prüfungen. Darüber hinaus schaffen Sie sich damit die Grundlagen, um später eigene und fremde Pakete zu bauen und die Paketierung für Debian durchzuführen. Das ist zugleich eine Voraussetzung, um später als Debian-Paket-Maintainer agieren zu können [Debian-Wiki-Debian-Entwickler].

2.13. Buchinfo

Wir pflegen eine buchbegleitende Webseite unter der URL:

https://www.debian-paketmanagement.de/

Darauf finden Sie neben einer Liste der Errata und deren Korrekturen auch inhaltliche Ergänzungen und Aktualisierungen. Natürlich freuen wir uns auch über Ihre Fragen und Anmerkungen!



[1] Jörg, bitte nicht böse sein!

[2] Dieter Thalmayr in: Oberflächliches – Enlightenment als Alternative zu Gnome und KDE, Vortrag im Rahmen des 11. Linux-Infotages Augsburg, 24. März 2012

[3] Sie erlangen diese je nach Konfiguration Ihres Systems über die Kommandos su oder sudo – oder indem Sie sich als Benutzer root auf Ihrem System anmelden.