// Datei: ./kann-denn-paketmanagement-spass-machen/zum-buch/wie-entstand-dieses-buch.adoc

// Baustelle: TODO (Post-OSP)
// Axel: Fertig Moving-Target

[[wie-entstand-dieses-buch]]
==== 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{empty}footnote:[Jörg, bitte nicht böse sein!], denn eine Reihe von
Vorarbeiten waren 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.

==== 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 kaum welche. 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. Hier im Buch
zeigen wir Ihnen die verschiedenen (Schleich-)Wege, die wir kennen.

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.

// Stichworte für den Index
(((Werkzeuge zur Paketverwaltung,Hierarchie)))
(((Werkzeuge zur Paketverwaltung,Vergleich mit DNF)))
(((Werkzeuge zur Paketverwaltung,Vergleich mit RPM)))
(((Werkzeuge zur Paketverwaltung,Vergleich mit YUM)))
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 analogen Aufrufen von RPM, 
YUM, DNF und Zypper -- siehe <<kommandos-zur-paketverwaltung-im-vergleich>>. 
Bitte beachten Sie, dass sich nicht alle Verhaltensweisen identisch in
beiden Welten abbilden lassen.

Das vorliegende Buch will darum vor allem Klarheit schaffen und Ihnen die
Zusammenhänge zwischen den einzelnen Programmen deutlich machen. Es hilft 
Ihnen, in jeder Situation das passende Werkzeug zur Paketverwaltung 
auszuwählen und es danach gekonnt einzusetzen. Die einzelnen Kapitel sind 
aufgabenbezogen zusammengestellt. In jedem Abschnitt finden Sie Lösungen,
wie Sie die jeweilige Aufgabe mit den verschiedenen Werkzeugen umsetzen.

Der Praxisteil fokussiert auf komplexere Fragestellungen. Dazu fassen wir 
den aktuellen Stand der Entwicklung zusammen und beleuchten darüber 
hinaus die angrenzenden Programme bzw. die damit verbundenen Situationen
im Alltag der Systembetreuung.

==== Baustellenstatus ====

Zum aktuellen Zeitpunkt (Frühjahr 2021) bewegt sich das Buch stramm
darauf zu, den Umfang von 500 Seiten zu überschreiten. Als inhaltlich
vollendet sehen wir den Teil 1 ``Konzepte'' an. Kleinere Baustellen
finden sich noch in Teil 2 ``Werkzeuge''. Hingegen klaffen im Teil 3
``Praxis'' noch größere Lücken. Wir arbeiten kontinuierlich daran, diese
Lücken zu schließen. Das gelingt  nicht so einfach, weil dafür bspw.
komplexere Setups notwendig sind oder auch weil die Dokumentation der
Werkzeuge für den betrachteten Fall schlicht und einfach nicht
vorhanden, (bislang) unverständlich oder gar veraltet ist.

==== 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.

[TIP]
.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).
====

==== Online-Fassung ====

Unter https://buch.dpmb.org/ gibt es den jeweils aktuellsten Stand des
Buches auch in diversen Formaten zum Online-Lesen oder
Herunterladen. Diese Fassungen werden automatisch bei jedem `git push`
frisch generiert.

Sollte die Ihnen vorliegende Fassung (sei es als Paket in einer
Debian-Veröffentlichung oder als gedrucktes Buch) nicht aktuell genug
sein, so schauen Sie doch mal in die Online-Fassung. Vielleicht ist
die entsprechende Stelle dort bereits aktualisiert worden.

==== Quellcode und Lizenz ====

Der o.g. Quellcode des Buches findet sich auf GitHub <<dpmb-github>> und 
ist unter der Creative Commons Namensnennung -- Weitergabe unter den 
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.

==== Organisatorisch ====

Beide Autoren leben und arbeiten in recht unterschiedlichen Regionen --
Axel Beckert in Zürich und Frank Hofmann in Kirchzarten bei Freiburg.
Aufgrund der mitunter recht großen Distanz sind regelmäßige
Arbeitstreffen nur begrenzt möglich und wurden daher 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,
Ajacchio (Korsika),
Ålesund (Norwegen),
Andorra,
Augsburg,
Beauvais (Picardie),
Bergneustadt,
Berlin,
Besançon,
Biel/Bienne,
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,
Hannover,
Heidelberg,
Hout Bay und Kapstadt (beide Western Cape, Südafrika),
Kirchzarten bei Freiburg im Breisgau,
Koblenz,
Lauchringen (Baden, Wutachtal),
Laveno Mombello (Italien, Lago Maggiore),
Lausanne,
Magdeburg,
Meersburg (Bodensee),
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, Schweiz) und
Zürich
(siehe <<fig.buchkarte>>). Orange Kreise mit rotem Rand markieren Axels 
Stationen, rote Kreise mit orangenem Rand die Arbeitsorte von Frank. 
Manchmal überlappt sich das auch -- dann ist es nur einer von beiden. 
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.

.Orte, an denen das vorliegende Buch entstand
image::kann-denn-paketmanagement-spass-machen/zum-buch/buchkarte.png[id="fig.buchkarte",width="50%"]

// Datei (Ende): ./kann-denn-paketmanagement-spass-machen/zum-buch/wie-entstand-dieses-buch.adoc
