Technologien wie Flatpak und Snap suggerieren, bisherige Paketverwaltungskonzepte hätten ausgedient. Ein Blick auf den aktuellen Stand der Softwareverwaltung unter Linux zeigt, dass dieser Eindruck täuscht.
In den letzten Monaten gab es wieder einmal kräftiges Gebrüll im Zoo der Paketformate für Linux: Canonical verkündete lautstark seinen Neuzugang – die distributionsübergreifende Entwicklung [1] und Verfügbarkeit seines Snap-Formats [2]. Dass sich das Ganze auf sehr dünnem Eis bewegt, unter einer proprietären Lizenz steht und sich derzeit lediglich auf Ubuntu ohne die Unterstützung seiner Derivate bezieht, fiel in der Pressemitteilung unter den Tisch. Vor den Augen aufmerksamer Tester [3] ließ sich das jedoch nicht wirklich verbergen [4].
Als ähnliche sommerlochfüllende Presse-Ente erwies sich in den vergangenen Jahren auch die Ankündigung für Click-Pakete [5], rückblickend eine Art Vorgänger der Snaps, deren Bedeutung für Linux-Systeme sich bis heute in engen Grenzen hält. Das muss mit Snap nicht ebenso laufen – vielleicht etabliert sich das Format ja für einen bestimmten Anwendungsbereich. Allerdings haben bislang alle von Canonical mit großem Tamtam angekündigten Formate stets viele Ressourcen gebunden und verschwanden trotzdem nach kurzer Zeit wieder in der Versenkung.
Bevor Sie auf den nächsten möglichen Hype aufspringen, sollten Sie sich daher vergegenwärtigen, wie gut die bestehenden Paketsysteme durchdacht sind und was diese derzeit eigentlich alles für Sie leisten. Danach fällt es Ihnen leichter zu beurteilen, ob Sie die seit über 20 Jahren bestehenden Formate RPM und DEB nur in die Kategorie “Oldtimer” einsortieren, sie womöglich schon ganz in Rente schicken oder ihnen weiterhin treu bleiben.
In Bezug auf die Möglichkeiten zur Paketverwaltung legen beide Formate die Messlatte sehr hoch. Die gewünschten Informationen zum Paketstatus mit den Werkzeugen jedoch herauszukitzeln [6], gleicht häufig dem Stöbern in einem verwunschenen Garten [7]. In diesem Beitrag zeigen wir Ihnen anhand des DEB-Formats und ausgesuchter Anwendungsbeispiele, was abseits der ausgetretenen Pfade alles möglich ist. Alle nachfolgenden Beispiele passen für Debian und größtenteils auch für die entsprechenden Derivate wie etwa Ubuntu, Linux Mint und Armbian.
Paketmanagement-Grundlagen
Eine Zusammenstellung zum Debian-Paketformat mit ausführlicher Beschreibung der einzelnen Werkzeuge und Schalter erhalten Sie im Buch “Debian-Paketmanagement – Konzepte, Werkzeuge und Praxis” [14]. Sie finden es in den Formaten HTML, PDF, EPUB und MOBI auf dem Datenträger zu diesem Heft. Es unterliegt der Creative-Commons-Lizenz (CC-BY-SA 4.0) und steht ab Debian 9 “Stretch” auch als reguläres Debian-Paket [15] zur Verfügung.
Bestehende Container-Paketformate
Grundsätzlich erscheint die Idee begrüßenswert, die bereits bestehenden Paketformate weiterzuentwickeln und die Bereitstellung von Anwendungen distributionsübergreifend zu vereinheitlichen und zu erleichtern. Neben den jüngst in einem Artikel [16] vorgestellten Formaten Snap [1] und Flatpak [17] existieren seit Längerem ähnliche Ideen in variierenden Entwicklungsstadien, die eine einzelne Anwendung in einem in sich abgeschlossenen Container kapseln. Analog zu Googles Webbrowser Chrome umfasst der Container bei Snap und Flatpak auch eine Sandbox. Das zielt darauf ab, die Anwendung und die Betriebssystemumgebung voneinander abzuschirmen und die Schnittstellen zur Kommunikation der Anwendung nach draußen gezielt freizugeben. Zur weiteren Auswahl steht in dieser Kategorie neben einer Chroot-Umgebung die Virtualisierung in diversen Geschmacksrichtungen. In die letztere Kategorie fallen das Docker-Framework [18], das Open Container Format OCF [19], App Container Images (kurz “ACI” oder “appc”) [20], Rocket [21] sowie Java Virtual Machines (JVM). Dass sich der Bewegungsspielraum von Anwendungen auch anders und insbesondere ohne viel Overhead eingrenzen lässt, beweisen Firejails [22].
Snap vs. Flatpak
Snap und Flatpak setzen unterschiedliche Schwerpunkte [23]: Während sich Snap als Paketformat für Server sieht, zielt Flatpak auf den Desktop. Weiterhin steht Snap derzeit ausschließlich über ein zentrales Repository bereit, während Flatpak auf die Verbreitung über individuelle, verteilte Archive setzt. Zudem hängen Snap und Flatpak an den distributionsspezifischen Display-Servern Mir beziehungsweise Wayland. Da die Firmen Canonical respektive Red Hat die Formate vorantreiben, zeigen sich beide stark kommerziell angehaucht und liegen im Grenzbereich von freier Software.
Softwareverteilung
Unter Linux kommt bisher das Prinzip zur Anwendung, Software komponentenweise zu zerlegen und in Form separater Pakete bereitzustellen. Welche Pakete zusammengehören und einander bedingen, legt der Entwickler beziehungsweise Maintainer durch die Angabe der Paketabhängigkeiten in der Beschreibung zum Paket fest. Das ermöglicht nicht nur eine dezentrale Entwicklung, sondern sorgt auch für einen optimalen Umgang mit Speicherplatz: Keine Komponente liegt mehrfach auf dem System vor, und nur selten in unterschiedlichen Versionen. Identischer Programmcode wird mehrfach benutzt.
Treten Fehler in einer Komponente auf, beispielsweise einer Library (“Bibliothek”), betrifft das alle Programme, die diese benutzen. Umgekehrt wirken sich Bereinigungen und Verbesserungen sofort positiv auf alle Komponenten aus. Als Entwickler setzt das voraus, dass Sie wissen, was Sie an Komponenten brauchen und welche davon bereits existieren. Dieser Blick über den Tellerrand des eigenen Projekts ist nie verkehrt.
Hinter den “neuen” Entwicklungen für containerbasierte Paketformate steckt der Wunsch, Software durch ein geändertes, an die Idee der Virtualisierung anknüpfendes Konzept bereitzustellen. Dieser unscheinbar wirkende Prinzipienwechsel hat weitreichende Folgen (siehe Kasten “Veränderte Softwareverteilung”). Die Parallele im Alltag stellt die Konsumgüterwegwerfgesellschaft dar: Die verfügbaren technischen Mittel machen diese Denkweise populär (“klappt doch”), nachhaltig geht anders.
Dabei vergessen die Befürworter häufig, dass sich der Bedarf an Softwarekomponenten sowie sich diese selbst ändern und man sie von Zeit zu Zeit an die sich wechselnden Bedingungen anpassen muss. Nicht immer ist es wirklich einfacher, alles neu auszurollen. Wer Konfigurationsdateien sowie Benutzer- und Protokolldaten vor einer Aktualisierung zusammengesammelt, gesichert und danach wieder eingespielt hat, kann ein Lied vom damit verbundenen Aufwand singen. Bestandswahrer hingegen tauschen nur das Nötigste aus. Beide Modelle haben je nach Situation ihre Berechtigung – wann welche Variante sinnvoll ist, entscheiden Sie von Fall zu Fall. Eine präzise Vorhersage gelingt nur selten.
Veränderte Softwareverteilung
Containerformate verändern die Prozesse für das Ausrollen und Betreuen von Software. Ein Container (“App”) ermöglicht das Bereitstellen einer vorbereiteten Softwarelösung inklusive aller Abhängigkeiten in einer abgeschlossenen Umgebung (“Applikationsvirtualisierung”). Das minimiert den Zeitaufwand für Installation und Konfiguration, senkt jedoch das Sicherheitsniveau: Der Benutzer erkennt weder, was der Container enthält, noch, was fehlt, und schon gar nicht, was “nebenbei” noch so mitkommt und für Ärger sorgt. In den letzten Jahren wurde das Vertrauen in Software zu oft strapaziert, als dass Sie sich als Benutzer Binärcode ungeprüft unterjubeln lassen sollten. Die Mechanismen mit Prüfsummen über Softwarepakete und Dateien bestehen ja nicht grundlos.
Zudem geht schnell der Überblick verloren. Insbesondere müssen Sie jeden einzelnen Container im Blick behalten und dessen Installationsstand kennen. Container bilden zudem größere Binary Large Objects (“Blobs”), die nicht so feinkörnig wie Pakete ausfallen. Zudem erfordern sie aufgrund der potenziellen Duplizierung der mitgelieferten, spezifischen Abhängigkeiten mehr Plattenplatz und Bandbreite beim Bezug.
Andererseits versprechen Container, die Software in einer Sandbox abzuschließen und auf ausgewählte Schnittstellen zur Kommunikation (Ports, Programme, Kanäle, Ressourcen) zu begrenzen. Daneben sollen sie das Problem der offenen, unaufgelösten Paketabhängigkeiten lösen und stets die aktuellsten Komponenten zum Einsatz bringen. Die Erfahrung zeigt, dass Letzteres im Vergleich zu erprobter, etwas “abgehangener” Software mitnichten ein Garant für höhere Stabilität und Fehlerfreiheit ist.
Die Verantwortung über alle gelieferten Komponenten liegt bei demjenigen, der den Container bereitstellt. Es erfordert Wissen über die eigentliche Software und alle zusätzlichen Bestandteile (Abhängigkeiten) sowie deren bekannte Sicherheitslücken und Programmierfehler. Der Lieferant weiß zwar, was er bereitstellt, kennt sich aber meist nur mit der eigenen Software aus. Zudem kommt Software mehrfach vor – pro Container, in unterschiedlichen Versionen mit verschiedenen Bugs, die es alle im Auge zu behalten gilt.
Die Softwarezusammenstellung in einem Container zielt häufig auf einen ganz bestimmten Anwendungsfall ab. Dass die Paketierer das Gesamtkunstwerk häufig als “Wegwerfcontainer” konzipieren, erschwert das Aktualisieren, wenn Sie den Container länger einsetzen. Das separate Einspielen von Security-Patches für die genutzten Komponenten ist nicht vorgesehen – stattdessen aktualisieren Sie den Container lediglich als Ganzes [24].
Finde die Plattensau
Je mehr Software Sie auf einem System installieren, umso mehr Plattenplatz läuft voll. Mit den beiden Werkzeugen Dpkg (via -s) und Dlocate (via -du) und dem Paketnamen ermitteln Sie, wieviel Platz das angegebene Paket benötigt.
Listing 1 kombiniert Dpkg mit Fgrep sowie Dlocate mit Tail und Cut, um aus der letzten Zeile der Ausgabe lediglich die erste Spalte mit der Gesamtsumme zu extrahieren. Beispielhaft zeigen wir dies für das Paket chromium mit dem Ausgabewert in KByte. Die weitere Umrechnung in MByte erfordert etwas Shell-Skripting und die Hilfe des Kommandozeilentaschenrechners Bc; die Ausgabe der Maßeinheit erfolgt via Echo (vorletzte Zeile).
Listing 1
$ dpkg -s chromium | fgrep Installed-Size: Installed-Size: 155388 $ dlocate -du chromium | tail -1 | cut -f1 155464 $ echo $(echo $(dlocate -du chromium | tail -1 | cut -f1) / 1024 | bc) "MByte" 151 MByte
Beim Ermitteln derjenigen Pakete, die am meisten Speicherplatz belegen, hilft Ihnen Dpigs (“diskspace pigs”) aus dem Paket debian-goodies. Listing 2 gibt die fünf größten installierten Pakete in absteigender Reihenfolge aus, jeweils samt Größe und Paketname. Mithilfe des Schalters -H rechnen Sie die Maßeinheit in verständliche Größen um. Die Angabe -n5 begrenzt die Ausgabe auf fünf Pakete.
Listing 2
$ dpigs -H -n5 436.7M texlive-latex-extra-doc 155.8M linux-image-3.16.0-4-amd64 151.7M chromium 120.9M libreoffice-core 106.8M texlive-pstricks-doc
Für noch nicht installierte Pakete hilft Aptitude über den Schalter -Z beim Berechnen des Platzbedarfs, wobei es sogar die Abhängigkeiten berücksichtigt. Das Unterkommando install mit dem Schalter --simulate sorgt für eine Simulation des gesamten Vorgangs. Listing 3 zeigt die Ausgabe anhand des entsprechenden Pakets für den Webserver Nginx. Benötigt der Vorgang mehrere Pakete, zeigt Aptitude nach dem Berechnen einen Prompt, an dem Sie [N] drücken, um den Vorgang abzubrechen.
Listing 3
$ aptitude -Z install --simulate nginx
Die folgenden NEUEN Pakete werden zusätzlich installiert:
nginx <+101 kB> nginx-common{a} <+250 kB> nginx-full{a} <+1.059 kB>
0 Pakete aktualisiert, 3 zusätzlich installiert, 0 werden entfernt und 11 nicht aktualisiert.
589 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 1.410 kB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] n
Abbruch.
Veränderte Pakete
Dlocate und Debsums ermöglichen, geänderte Dateien eines installierten Pakets ausfindig zu machen. Auf der Basis des Hash-Verfahrens MD5 vergleichen beide Werkzeuge die Dateien aus einem Debian-Package mit den tatsächlich vorliegenden Dateien auf dem Speichermedium.
Slocate kennt dazu den Schalter -md5check (Listing 4), Debsums kommt ohne zusätzliche Angaben aus (Listing 5). Als weiteren Parameter benötigen beide Werkzeuge den Namen des Pakets, das Sie überprüfen möchten – im Beispiel das interaktive Lastanzeigeprogramm Htop. Die Angabe OK in der Ausgabe zeigt an, dass der MD5-Wert dem aus dem Paket entspricht und die Datei sich nicht verändert hat.
Listing 4
$ dlocate -md5check htop usr/bin/htop: OK usr/share/applications/htop.desktop: OK usr/share/doc/htop/AUTHORS: OK usr/share/doc/htop/README: OK usr/share/doc/htop/changelog.Debian.gz: OK usr/share/doc/htop/changelog.gz: OK usr/share/doc/htop/copyright: OK usr/share/man/man1/htop.1.gz: OK usr/share/menu/htop: OK usr/share/pixmaps/htop.png: OK
Listing 5
$ debsums htop /usr/bin/htop OK /usr/share/applications/htop.desktop OK /usr/share/doc/htop/AUTHORS OK /usr/share/doc/htop/README OK /usr/share/doc/htop/changelog.Debian.gz OK /usr/share/doc/htop/changelog.gz OK /usr/share/doc/htop/copyright OK /usr/share/man/man1/htop.1.gz OK /usr/share/menu/htop OK /usr/share/pixmaps/htop.png OK
Möchten Sie stattdessen nur die Dateien ermitteln, die sich im Vergleich zum Originalpaket geändert haben, rufen Sie Debsums mit dem Schalter -c (Langform --changed) auf. Damit Debsums alle Verzeichnisse inspizieren kann, benötigt es administrative Rechte. In Listing 6 beanstandet oder genauer vermisst Debsums Dateien aus den Paketen cupswrapperhl2250dn und hl2250dnlpr.
Listing 6
# debsums -c debsums: missing file /usr/local/Brother/Printer/HL2250DN/cupswrapper/brcupsconfig4 (from cupswrapperhl2250dn package) debsums: missing file /usr/share/doc/hl2250dnlpr/copyright (from hl2250dnlpr package) debsums: missing file /usr/share/doc/hl2250dnlpr/changelog.Debian.gz (from hl2250dnlpr package)
Änderungen und Bugs
Was sich in einem Paket von einer Veröffentlichung zur nächsten verändert hat, führt die Changelog-Datei auf. Sowohl Apt-get als auch Aptitude kennen das Unterkommando changelog und zeigen Ihnen darüber diese Veränderungen an. Listing 7 demonstriert das auszugsweise anhand von Aptitude und dem Paket smartpm.
Listing 7
$ aptitude changelog smartpm
smart (1.4-2) unstable; urgency=low
* Switch to dh_python2 (Thanks to Barry Warsaw)
-- Free Ekanayaka <freee@debian.org> Fri, 12 Aug 2011 17:27:20 +0100
smart (1.4-1) unstable; urgency=low
* New upstream release
* Drop several patches (02_fix_fetcher_test, 03_setup,
06_CVE-2009-3560.patch and 06_CVE-2009-3720.patch) as they were
all merged upstream
-- Free Ekanayaka <freee@debian.org> Tue, 31 May 2011 16:04:52 +0200
[...]
Als ähnlich hilfreich erweist sich Apt-listchanges aus dem gleichnamigen Paket. Es klinkt sich in den Prozess der Paketverwaltung ein und zeigt Ihnen vor der Installation oder Aktualisierung eines Pakets an, welche Änderungen es gibt. Sie können das Tool auch jederzeit separat aufrufen, um sich unabhängig davon zu informieren.
In Listing 8 extrahiert Apt-listchanges in einem expliziten Aufruf die Änderungen aus der DEB-Paketdatei ruby-json_1.7.3-3_i386.deb. Auf veröffentlichungskritische Fehler (“release-critical bugs”) spezialisieren sich hingegen die beiden Werkzeuge Popbugs (Paket debian-goodies) und Rc-alert (devscripts).
Listing 8
# apt-listchanges -f text --which=both /var/cache/apt/archives/ruby-json_1.7.3-3_i386.deb
Lese Changelogs...
ruby-json (1.7.3-3) unstable; urgency=high
* set urgency to high, as a security bug is fixed.
* Add 10-fix-CVE-2013-0269.patch, adapted from upstream to fix denial of
service and unsafe object creation vulnerability.
[CVE-2013-0269] (Closes: #700436).
-- Cédric Boutillier <cedric.boutillier@gmail.com> Tue, 12 Feb 2013 23:14:48 +0100
[...]
Konfigurationsdateien
Viele Pakete enthalten vorbereitete Konfigurationsdateien. Mit Dlocate zeigen Sie diese über den Schalter -conf an. Fügen Sie auf dem System später weitere Konfigurationsdateien für das Paket hinzu, bleiben diese jedoch unentdeckt: Dlocate wertet nur die Paketinformationen aus und kennt nur das, was das Originalpaket enthält.
Listing 9
$ dlocate -conf xpdf /etc/xpdf/xpdfrc /etc/X11/Xresources/xpdf
Distributionskonsistenz
Apt liefert über das Werkzeug Apt-get und dessen Unterkommando check ein kleines Diagnosewerkzeug mit. Es aktualisiert den Paketpuffer und prüft, ob auf dem System beschädigte oder unerfüllte Abhängigkeiten vorliegen. Das umfasst alle installierten Pakete sowie die bereits entpackten, aber noch nicht konfigurierten Packages. Listing 10 stellt das Ergebnis einer Überprüfung dar, bei der es keine Beanstandungen gibt.
Listing 10
# apt-get check Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig
Ähnliches leisten die Kommandos dpkg --audit und apt-cache unmet. Letzteres zeigt eine Zusammenfassung aller unerfüllten Abhängigkeiten im Paket-Cache. Ergänzen Sie den Aufruf um einen oder mehrere Paketnamen, schränkt Apt-cache die Recherche entsprechend ein, wie in Listing 11 auf das Paket wireshark. Die Ausgabe beinhaltet auch die nicht installierten Vorschläge der Pakete.
Listing 11
$ apt-cache unmet "wireshark*" Paket wireshark Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit: Ersetzt: ethereal (< 1.0.0-3) Paket libwireshark2 Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit: Ersetzt: wireshark-common (< 1.4.0~rc2-1) Paket libwireshark-data Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit: Ersetzt: wireshark-common (< 1.4.0~rc2-1) Paket wireshark-common Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit: Ersetzt: ethereal-common (< 1.0.0-3) [...]
Neue Software finden
Wer wäre nicht stets auf der Suche nach Verbesserungen und frischerer Software? Für entsprechenden Nachschub sorgt Apt-get mit dem Unterkommando upgrade und den beiden Schaltern -u (Langform --show-upgraded) sowie -s (--simulate). Es führt alle Pakete mit neueren Versionen auf. Mittels -s prüfen Sie, was passiert, wenn Sie die neue Version einspielen (Listing 12).
Listing 12
# apt-get upgrade -u -s Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Die folgenden Pakete werden aktualisiert (Upgrade): icedove libc-bin libc-dev-bin libc6 libc6-dev libc6-i686 libnss3 libnss3-1d linux-headers-3.2.0-4-686-pae linux-headers-3.2.0-4-common linux-image-3.2.0-4-686-pae linux-libc-dev virtualbox-guest-source virtualbox-ose virtualbox-ose-dkms virtualbox-ose-guest-source virtualbox-ose-guest-utils virtualbox-ose-source virtualbox-source 19 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Inst libc-bin [2.13-38+deb7u1] (2.13-38+deb7u4 Debian-Security:7.0/stable [i386]) [libc6:i386 ] Conf libc-bin (2.13-38+deb7u4 Debian-Security:7.0/stable [i386]) [libc6:i386 ] [...]
Alternativ nutzen Sie zum selben Zweck Apt-show-versions aus dem gleichnamigen Paket, aptitude search '~U' oder – ab Debian 8 “Jessie” – auch apt list.
Das bisherige Vorgehen klärt aber noch nicht, woher die Paketverwaltung das Paket dann auch tatsächlich bezieht: Das bringen Sie über die beiden Aufrufe apt-cache policy und apt-cache madison in Erfahrung. Listing 13 zeigt Ersteres und stellt den Installationsstatus sowie die ermittelte Bezugsquelle für das Paket kteatime zusammen. Das noch nicht installierte Paket würde vom deutschen Debian-FTP-Server aus dem Distributionsbereich main gezogen.
Listing 13
$ apt-cache policy kteatime
kteatime:
Installiert: (keine)
Installationskandidat: 4:4.12.4-1
Versionstabelle:
4:4.12.4-1 0
500 http://ftp.de.debian.org/debian/ jessie/main amd64 Packages
Im Gegensatz dazu stöbert das Unterkommando madison alle Versionen eines Pakets auf, die es derzeit gibt. Listing 14 zeigt das für das Paket kteatime, für das hier Binär- und Quellpakete bereitstehen.
Listing 14
$ apt-cache madison kteatime kteatime | 4:4.12.4-1 | http://ftp.de.debian.org/debian/ jessie/main amd64 Packages kteatime | 4:4.12.4-1 | http://ftp.de.debian.org/debian/ jessie/main Sources
Namen und Paketbeschreibung
Neben den Werkzeugen für die Kommandozeile (Apt, Apt-get, Apt-cache, Aptitude, Wajig oder Cupt) und den grafischen Werkzeugen Synaptic, Muon [8], SmartPM [9] sowie Apper gelingt die Recherche nach Softwarepaketen und Dateien daraus auch über den Webbrowser. Als verlässliche Quellen mit vielfältigen Suchmöglichkeiten empfehlen sich die Webseite des Debian-Projekts [10] (Abbildung 1) sowie Apt-browse.org [11] (Abbildung 2).
Paketabhängigkeiten
Wie die Softwarepakete voneinander abhängen, ermitteln Sie über die beiden Werkzeuge Debtree und Apt-rdepends aus dem jeweils gleichnamigen Paket. Beide erzeugen zunächst eine Datei mit Knotenbeschreibungen [12] im DOT-Format [13]. Das Programm Dotty aus dem Paket graphviz setzt die Knotendaten dann in eine grafische Darstellung um (Abbildung 3). Die Aufrufe in Listing 15 illustrieren das Vorgehen mit Apt-rdepends anhand des Pakets tcpdump.
Listing 15
$ apt-rdepends -d tcpdump | dot > dump.dot $ dotty tcpdump.dot

tcpdump dar.” width=”300″ height=”278″ />
Abbildung 3: Dotty stellt hier die von Apt-rdepends ermittelten Abhängigkeiten des Paketstcpdump dar.Fazit
Die bestehenden Paketsysteme bieten eine sehr robuste Grundlage zum Verwalten von Software. Das sorgt für zuverlässige Systeme, sowohl auf dem Server als auch auf dem Desktop. Zum Verständnis hilft es, sich etwas Zeit zu nehmen und sich mit dem Thema auseinanderzusetzen. Organisation setzt stets einen Spagat zwischen Einfachheit und Stabilität voraus. Sofern Sie Verantwortung für das Funktionieren von Systemen tragen, hat Letzteres Priorität: Funktionierende Computer bereiten mehr Freude als unzuverlässige Rechner.
Der Autor
Frank Hofmann, Koautor des Debian-Paketmanagement-Buchs, arbeitet in Berlin im Büro als Dienstleister mit Spezialisierung auf Druck und Satz (http://www.efho.de). Seit 2008 koordiniert er das Regionaltreffen der LUGs der Region Berlin-Brandenburg.
Infos
[1] Snappy: http://snapcraft.io/
[2] “Universal ‘snap’ packages launch”: https://insights.ubuntu.com/2016/06/14/universal-snap-packages-launch-on-multiple-linux-distros/
[3] “Flatpak Puts Security First”: http://www.tomshardware.com/news/flatpack-universal-linux-packaging-format,32137.html
[4] “Snap Packages vs. Flatpaks”: https://www.maketecheasier.com/snap-packages-vs-flatpacks/
[5] Click: http://click.readthedocs.io/
[6] Apt-get und Aptitude (Teil 1): Axel Beckert, Frank Hofmann, “Dynamisches Duo”, LU 04/2013, S. 90, https://www.linux-community.de/27663
[7] Apt-Get und Aptitude (Teil 2): Axel Beckert, Frank Hofmann, “Paarweise”, LU 06/2013, S. 90: https://www.linux-community.de/29068
[8] Paketverwaltung Muon: Mario Blättermann, “Schöner verpackt?”, LU 11/2015, S. 70: https://www.linux-community.de/35330
[9] SmartPM: Frank Hofmann, “Mit allen Extras”, LU 07/2013, S. 68: https://www.linux-community.de/29583
[10] Suche über Paketinhalte: https://www.debian.org/distrib/packages#search_contents
[11] Apt-browse: http://www.apt-browse.org
[12] Graphviz-Basics: Michael Niedermair, “Richtig arrangiert”, LU 01/2014, S. 46: https://www.linux-community.de/28542
[13] Graphviz für Fortgeschrittene: Frank Hofmann, “Richtig ausgerichtet”, LU 07/2014, S. 48: https://www.linux-community.de/31703
[14] Debian-Paketmanagement-Buch: https://www.dpmb.org
[15] DPMB-Debian-Paket: https://packages.debian.org/stretch/debian-paketmanagement-buch
[16] Flatpak und Snap: Ferdinand Thommes, “Frisch gebacken”, LU 08/2016, S. 74, https://www.linux-community.de/37028
[17] Flatpak: http://flatpak.org
[18] Docker: https://www.docker.com
[19] Open Container Format (OCF): https://www.opencontainers.org
[20] App Container Image (ACI): https://github.com/appc
[21] Rocket: https://github.com/coreos/rkt
[22] Programme absichern mit Firejail: Tim Schürmann, “Heiße Zelle”, LU 04/2015, S. 84: https://www.linux-community.de/33890
[23] Flatpak, Snap and Appimage: https://distrowatch.com/weekly.php?issue=20160704#opinion
[24] “How to Install and Manage Snap Packages on Ubuntu 16.04 LTS”: http://www.howtogeek.com/252047/how-to-install-and-manage-snap-packages-on-ubuntu-16.04-lts/







