Debian-Paketmanagement
Debian-Paketmanagement
Axel
Beckert
abe@debian.org
Frank
Hofmann
frank.hofmann@efho.de
Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Axel Beckert, Frank Hofmann
Das Buch "Debian-Paketmanagement" von Frank Hofmann und Axel
Beckert ist lizenziert unter einer Creative Commons Namensnennung
- Weitergabe unter gleichen Bedingungen 4.0 International
Lizenz.
Versionsgeschichte
Version debian/0_2023.03.11-322-g57d9dae
2024-08-08T12:25:17+00:00
Zusammenfassung
Die Debian-Distribution setzt sich aus mehreren zehntausend Bausteinen
zusammen, die alle aufeinander abgestimmt sind und sich bei Bedarf in
eine Installation integrieren. Diese sogenannten Pakete (Packages)
sind so eigenständig, dass sie von einem oder mehreren
Debian-Entwicklern für das Debian-Projekt gepflegt werden,
interagieren aber zugleich so intensiv mit allen anderen, dass
wechselseitige Abhängigkeiten erkannt und bei Bedarf automatisch
aufgelöst werden. Nur so ist die Modularität des komplexen
Gesamtsystems gewährleistet, die Administratoren weltweit die
Möglichkeit bietet, Debian-Installationen sehr genau für die jeweilige
Anforderung vom Embedded-Gerät über den Desktop bis zum Großrechner zu
konfigurieren.
Effizientes Paketmanagement ist also für jeden Debian-Administrator
ein ebenso interessantes wie lohnendes Feld, das in der Praxis aber
oft nicht ausreichend beachtet und mit wenigen Standardbefehlen
"erledigt" wird. Zwei ausgewiesene Debian-Experten nehmen dies zum
Anlass, das Debian-Paketmanagement erstmals derart umfassend
darzustellen. Das Buch kommt von den Konzepten, die der Struktur und
dem Zusammenspiel der Pakete zugrunde liegen, über die Werkzeuge zu
deren Nutzung immer auch zu den Best Practices der professionellen
Systemadministration. Es wendet sich an Einsteiger ebenso wie an
Berufsadministratoren, indem es, ausgehend von den Grundlagen, das
Optimierungspotential in zunehmend umfangreichen Szenarien
ausschöpft. So entsteht ein aktuelles Handbuch der
Debian-Administration, das als praxisorientiertes HowTo ebenso dient
wie als Nachschlagewerk für die unerwartet zahlreichen Optionen und
Kombinationsmöglichkeiten.
Inhaltsverzeichnis
Über dieses Buch
1. Kann Paketmanagement Spaß machen?
2. Zum Buch
2.1. Über die Autoren
2.2. Wie und warum dieses Buch entstand
2.3. Motivation
2.4. Baustellenstatus
2.5. Technische Basis
2.6. Online-Fassung
2.7. Quellcode und Lizenz
2.8. Organisatorisch
2.9. Grundlagenwissen für Administratoren
2.10. Dokumentation
deb
vs.
rpm
2.11. Was ist das Buch – und was nicht …
2.12. Zielgruppe und Lernziele
2.13. Vorkenntnisse
2.14. Und das können Sie nach der Lektüre …
2.15. Buchinfo
3. Danksagung
I. Konzepte
1. Willkommen im Linux-Dschungel!
1.1. Was ist Debian?
1.2. Debian-Architekturen
1.2.1. Debian-Ports-Projekt
1.2.2. Pakete für alle Architekturen
1.2.3. Multiarch: Mehrere Architekturen gleichzeitig auf einem System
1.2.4. Bevor es Multiarch gab
1.3. Vom
tar.gz
zur Linux-Distribution
1.4. Debians Paketsystem
1.5. Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement
2. Software in Paketen organisieren
2.1. Was ist Paketmanagement
2.2. Varianten und Formate für Softwarepakete
2.3. Softwarestapel und Ebenen
2.3.1. Ebenen
2.3.2. Untere Ebene
2.3.3. Obere Ebene
2.3.4. Paketformate und -werkzeuge anderer Distributionen
2.3.5. Werkzeuge, die verschiedene Paketformate unterstützen
2.4. Alternativen zu APT
2.5. Zusammenspiel von dpkg und APT
2.6. Vom monolithischen Programm zu Programmkomponenten
2.7. Debian-Pakete (Varianten)
2.7.1. Binärpakete (
deb
2.7.2. Übergangspakete, Metapakete und Tasks
2.7.3. Mikro-Binärpakete
2.7.4. Source-Pakete (
dsc
und weitere Dateien)
2.7.5. Virtuelle Pakete
2.7.6. Pseudopakete im Debian Bug Tracking System
2.8. Sortierung der Pakete nach Verwendungszweck
2.9. Distributionsbereiche
2.9.1. Einordnung der Distributionsbereiche in Debian
2.9.2. Einordnung der Distributionsbereiche bei anderen Distributionen
2.9.3. Handhabung von geschützten Namen und Logos
2.9.4. Softwareverteilung
2.9.5. Hintergrund der Einteilung in Distributionsbereiche
2.10. Veröffentlichungen
2.10.1. Bedeutung der verschiedenen Entwicklungsstände
2.10.2. Alias-Namen
2.10.3. Zusammenhang von Alias-Namen und Entwicklungsständen
2.10.4. Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
2.10.5. Organisation der Pakete im Paketpool
2.10.6. Sicherheitsaktualisierungen
2.10.7. Long Term Support (LTS)
2.10.8. Extended Long Term Support (ELTS)
2.11. Benennung einer Paketdatei
2.11.1. Paketname
2.11.2. Versionsnummer
2.11.3. Architektur oder Plattform
2.12. Multiarch einsetzen
2.12.1. Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
2.13. Paket-Priorität und essentielle Pakete
2.13.1. Prioritätsstufe „erforderlich“ (
required
2.13.2. Prioritätsstufe „wichtig“ (
important
2.13.3. Prioritätsstufe „standard“ (
standard
2.13.4. Prioritätsstufe „optional“ (
optional
2.13.5. Prioritätsstufe „extra“ (
extra
2.13.6. Markierung „essentiell“ (
essential
2.14. Verbreitungsgrad von Paketen
2.14.1. Verschiedene Metriken
2.14.2. Vergleichen von Paketen
2.15. Lokale Paketmarkierungen
2.15.1. Paketmarkierungen, die von verschiedenen Programmen genutzt werden
2.15.2. Aptitude-spezifische Paketmarkierungen
2.15.3. Lesen und Anzeigen einer Markierung mit
aptitude
2.15.4. Lesen und Anzeigen einer Markierung mit
apt-mark
2.15.5. Setzen und Entfernen einer Markierung mit
apt-mark
2.15.6. Was passiert, wenn Paketmarkierungen geändert werden?
2.15.7. Setzen und Entfernen einer Markierung mit
aptitude
2.16. Wie finde ich passende Pakete
2.16.1. Paketquellen
2.16.2. Paketnamen
2.16.3. Paketeigenschaften und Einordnung
II. Werkzeuge
3. Paketquellen und Werkzeuge
3.1. Paketquellen
3.1.1. Begriff und Hintergrund
3.1.2. Benutzte Paketquellen
3.1.3. Aufbau und Struktur einer Paketquelle
3.2. Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
3.3. Paketquellen eintragen und ändern
3.4. Die Datei
/etc/apt/sources.list
verstehen
3.4.1. Format der Paketliste
3.4.2. Format eines Eintrags
3.4.3. Beispieleinträge für offizielle Pakete
3.4.4. Verzeichnis als Paketquelle
3.4.5. Einträge für Sicherheitsaktualisierungen
3.4.6. Einträge für zusätzliche, nicht-offizielle Pakete
3.4.7. Einträge für Quellpakete
3.4.8. Einträge für Deutschland
3.4.9. Einen Eintrag auf syntaktische Korrektheit prüfen
3.5. Geeigneten Paketmirror auswählen
3.5.1. Paketmirror bei Debian
3.5.2. Paketmirror für andere Distributionen
3.5.3. Pakete ohne Paketmirror beziehen
3.6. Am besten erreichbaren Paketmirror finden
3.6.1.
netselect
und
netselect-apt
3.7. Automatisiertes Auswählen von Paketquellen
3.7.1. DNS Round Robin
3.7.2. Paketquellen über GeoIP auswählen
3.7.3. Per CDN
3.7.4. Automatische Paketmirror-Auswahl per Mirror-Liste
3.7.5. Welcher Paketmirror wird schlussendlich benutzt?
3.8.
apt-setup
— Erstellung der Paketliste während der Installation
3.9. Physische Installationsmedien mit
apt-cdrom
einbinden
3.10. Einträge mit
add-apt-repository
im Griff behalten
3.10.1. Aufruf und Optionen
3.10.2. Beispiele
3.11. Einstellungen mit Synaptic
3.12. Debian und Ubuntu Sources List Generator
3.12.1. Feinheiten für Debian
3.12.2. Feinheiten für Ubuntu
3.13. Paketquelle auf Echtheit überprüfen
3.13.1. Basiswissen
3.13.2. Schlüsselverwaltung mit
apt-key
(Überblick)
3.13.3. Unterkommandos von
apt-key
3.13.4. Beispiel: Ergänzung eines Schlüssels
3.13.5. Abkündigung von apt-key
3.13.6. Alternative Benutzerschnittstellen zur APT-Schlüsselverwaltung
3.14. Liste der verfügbaren Pakete aktualisieren
3.14.1. Grundlegendes Vorgehen
3.14.2. Überprüfung der Paketsignaturen
3.14.3. Platz für den Paketcache
3.14.4. Die Veröffentlichung wechseln
3.15. Lokale Paketliste und Paketcache
3.16. Lokale Paketliste reparieren
3.16.1. Aktualität des Mirrors überprüfen
4. Debian-Paketformat im Detail
4.1. Konzepte und Ideen dahinter
4.1.1. Binärpakete
4.1.2. Sourcepakete
4.1.3. Weitere Metadaten
4.2. Aufbau und Format
4.2.1. Generell: 2 Ebenen
4.2.2. Source-Pakete
4.2.3. Binärpakete
4.2.4. Übergangs- und Metapakete
5. APT und Bibliotheken
5.1. Bibliothek
libapt-pkg
5.2. Bibliothek
libapt-pkg-perl
5.3. Bibliothek
python-apt
5.4. Paket
libapt-pkg-doc
5.5. Bibliothek
libapt-inst
6. Werkzeuge zur Paketverwaltung (Überblick)
6.1. Frontends für das Paketmanagement
6.1.1. Aufgaben, Sinn und Zweck des Frontends
6.1.2. Anmerkungen zur Programmauswahl
6.2. Für die Kommandozeile
6.2.1.
dpkg
6.2.2. APT
6.2.3.
wajig
6.2.4.
sysget
6.2.5. Cupt
6.3. ncurses-basierte Programme
6.3.1. tasksel
6.3.2.
aptitude
6.3.3. Nala
6.4. GUI zur Paketverwaltung
6.4.1. Synaptic
6.4.2. Muon
6.4.3. Smart Package Management (SmartPM)
6.4.4. PackageKit
6.4.5. GDebi
6.5. Webbasierte Programme
6.5.1. Ubuntu Landscape
6.5.2. Appnr
6.5.3. Communtu
6.5.4. Univention Corporate Server (UCS)
7. Paketcache
7.1. Hintergrundwissen
7.1.1. Was passiert, wenn nicht alle Pakete heruntergeladen werden konnten?
7.2. Dateien im Paketcache
7.3. Paketcache-Status
7.4. Größe des Paketcaches
7.4.1. Wieviel Platz belegt der Paketcache?
7.4.2. Größe des Paketcaches festlegen
7.5. Paketcache aufräumen
7.5.1. Weshalb aufräumen?
7.5.2. Paketverwaltung passend konfigurieren
7.5.3. Kommandos zum Aufräumen
7.5.4. Empfehlungen zum Zeitpunkt des Aufräumens
7.5.5. Automatisch und regelmäßig Aufräumen
8. Paketoperationen
8.1. Paketoperationen und deren Abfolge
8.2. Paketlisten und Muster
8.3. Bekannte Paketnamen auflisten
8.4. Paketstatus erfragen
8.4.1.
dpkg -s
Paketname
und
dlocate -s
Paketname
8.4.2.
dpkg -I
deb-Datei
8.4.3.
apt-cache show
Paketname
8.4.4.
apt-cache showpkg
Paketname
8.4.5.
aptitude show
Paketname
8.4.6. Anfragen mit
apt-mark
8.5. Liste der installierten Pakete anzeigen und deuten
8.5.1.
dpkg -l
Paketname
(Langform
--list
8.5.2. Suche mit
aptitude
8.5.3.
apt list --installed
8.5.4. Weitere Möglichkeiten
8.6. Liste der installierten Kernelpakete anzeigen
8.7. Liste der installierten, nicht-freien Pakete anzeigen
8.7.1. Recherche mit
aptitude
8.7.2. Recherche mit
check-dfsg-status
(vormals
vrms
8.8. Neue Pakete anzeigen
8.9. Pakete nach Prioritäten finden
8.10. Automatisch installierte Pakete anzeigen
8.10.1.
apt-mark
benutzen
8.10.2.
aptitude
benutzen
8.11. Obsolete Pakete anzeigen
8.11.1. Recherche auf der Kommandozeile
8.11.2. Recherche in graphischen Programmen
8.11.3. Umgang mit diesen Paketen
8.12. Aktualisierbare Pakete anzeigen
8.12.1.
apt-get
verwenden
8.12.2.
apt
benutzen
8.12.3.
aptitude
verwenden
8.12.4. Synaptic verwenden
8.13. Verfügbare Versionen eines Paketes anzeigen
8.13.1.
aptitude
verwenden
8.13.2. Mit
apt
stöbern
8.13.3.
apt-show-versions
verwenden
8.13.4.
apt-cache
benutzen
8.13.5.
rmadison
einsetzen
8.13.6.
grep-available
und
grep-aptavail
benutzen
8.14. Aus welchem Repo kommen die Pakete
8.14.1. Paketquellen untersuchen mit
apt-cache policy
8.14.2. Informationen für ein bestimmtes Paket erhalten
8.14.3. Verfügbare Paketversionen ermitteln
8.15. Installationsgröße eines Pakets
8.16. Größtes installiertes Paket finden
8.16.1. dpkg
8.16.2. dpigs
8.16.3.
aptitude
8.17. Warum ist ein Paket installiert
8.18. Liste der zuletzt installierten Pakete anzeigen
8.18.1. Statusdaten von
dpkg
8.18.2. Statusdaten von
apt
8.19. Paketabhängigkeiten anzeigen
8.19.1. Die Abhängigkeiten eines Pakets auflisten
8.19.2. Anzeige der umgekehrten Paketabhängigkeiten
8.19.3. Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
8.19.4. Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
8.20. Pakete über den Namen finden
8.20.1. Systemwerkzeuge
8.20.2. Browserbasierte Suche
8.20.3. Paketsuchmaschinen
8.21. Pakete über die Paketbeschreibung finden
8.21.1. Suche mit
apt-cache
8.21.2. Suche mit Hilfe von
aptitude
8.21.3. Suche mit
grep-available
und
grep-status
8.22. Paket nach Maintainer finden
8.22.1. Welche Pakete betreut ein Debian-Maintainer
8.22.2. Rückrichtung: Wer betreut ein bestimmtes Paket
8.23. Paket nach Lizenz finden
8.24. Paket zu Datei finden
8.24.1. Suche in bereits installierten Paketen
8.24.2. Suche in noch nicht installierten Paketen
8.24.3. Suche über die Webseite des Debian-Projekts
8.25. Paket auseinandernehmen
8.25.1. Mit
ar
in seine Bestandteile zerlegen
8.25.2. Mit
dpkg
die Installationsstruktur herausfinden
8.26. Paketinhalte anzeigen
8.26.1.
dpkg -L
Paketname
8.26.2.
dlocate -L
Paketname
8.26.3.
dlocate -ls
Paketname
8.26.4.
dpkg -c
deb-Datei
8.26.5.
apt-file show
Paketname
und
apt-file list
Paketname
8.26.6. Einsatz von
dglob
8.27. Nach Muster in einem Paket suchen
8.28. Ausführbare Dateien anzeigen
8.29. Manpages anzeigen
8.29.1. Manpages erstöbern
8.29.2. Manpages aus noch nicht installierten Paketen anzeigen
8.29.3. Suche über den Webbrowser
8.30. Konfigurationsdateien eines Pakets anzeigen
8.31. Paketänderungen nachlesen
8.31.1. Das Änderungsprotokoll beziehen
8.31.2. Zwei Paketversionen miteinander vergleichen
8.32. Paket auf unerwünschte Veränderungen prüfen
8.32.1. Prüfung eines Paketes auf Unversehrtheit
8.32.2. Die Inhalte eines bereits installierten Paketes überprüfen
8.33. Liste der zuletzt geänderten Abhängigkeiten
8.34. Paketdatei nur herunterladen
8.34.1. Paketdatei im aktuellen Verzeichnis speichern
8.34.2. Paketdatei im lokalen Paketcache speichern
8.35. Installation zwischengespeicherter Pakete aus dem Paketcache
8.36. Sourcepakete beziehen
8.37. Sourcepakete anzeigen
8.37.1.
apt-cache
verwenden
8.37.2.
apt-show-source
verwenden
8.38. Pakete installieren
8.38.1. Vorbereitungen
8.38.2. Durchführung
8.38.3. Begutachtung
8.38.4. Weitere, nützliche APT-Optionen für den Alltag (Auswahl)
8.38.5. Besonderheiten bei
aptitude
8.38.6. Erweiterungen ab APT 1.1
8.39. Pakete erneut installieren
8.39.1. Wiederinstallieren vollständig entfernter Pakete
8.39.2. Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
8.39.3. Wiederinstallieren bereits installierter Pakete
8.39.4. Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
8.40. Pakete konfigurieren
8.40.1. Bestehende Konfiguration eines Pakets anzeigen
8.40.2. Konfiguration für alle Pakete auslesen
8.40.3. Bestehende Konfiguration anwenden
8.40.4. Konfiguration mit
dpkg-reconfigure
erneut durchführen
8.41. Pakete aktualisieren
8.41.1.
update
8.41.2.
install
8.41.3.
upgrade
und
safe-upgrade
8.41.4.
dist-upgrade
und
full-upgrade
8.41.5. Empfohlene Schrittfolge zur Aktualisierung von Paketen
8.41.6. Aktualisierung mit Synaptic
8.42. Pakete downgraden
8.42.1. Hintergrund und Fragen zum Downgrade
8.42.2. Ablauf und Durchführung
8.43. Pakete deinstallieren
8.43.1. Fall 1: Paket einfach löschen
8.43.2. Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
8.43.3. Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
8.43.4. Fall 4: Paket samt Konfigurationsdateien deinstallieren
8.43.5. Fall 5: Paket für eine ausgewählte Architektur entfernen
8.44. Umgang mit Waisen
8.44.1. APT und
aptitude
8.44.2.
debfoster
8.44.3. deborphan
8.44.4. Orphaner und Editkeep
8.44.5.
gtkorphan
8.44.6.
wajig
8.44.7.
rpmorphan
8.45. Paketoperationen erzwingen
8.45.1. Aktionen mit
dpkg
erzwingen
8.45.2. Aktionen mit
apt
erzwingen
8.45.3. Aktionen an der Paketverwaltung vorbei
8.46. Paketstatusdatenbank reparieren
8.46.1. Bit-Dreher reparieren
8.46.2. Die Paketstatusdatenbank aus dem lokalen Backup wiederherstellen
8.46.3. Die Paketstatusdatenbanken von APT und
aptitude
8.47. Distribution aktualisieren (update und upgrade)
8.47.1. Vorworte
8.47.2. Vom
upgrade
zum
dist-upgrade
8.47.3. Unsere empfohlene Reihenfolge
8.47.4. Anmerkungen
9. Dokumentation
9.1. Man- und Infopages
9.2. Dokumentation in
/usr/share/doc/
9.3. Die apt-dpkg-Referenzliste
9.4.
apt-doc
— das Benutzerhandbuch zu APT
9.5. Der Debian-Spickzettel
9.6. APT-Spickzettel von Nixcraft
9.7. Pacman Rosetta
9.8. Handbuch zu
aptitude
9.9. The Debian Administrator’s Handbook
9.10. Weitere Bücher
III. Praxis
10. APT und
aptitude
auf die eigenen Bedürfnisse anpassen
10.1. Konfiguration von APT
10.2. Konfiguration von APT anzeigen
10.3. Konfigurationsdateien von APT im Detail
10.3.1.
/etc/apt/apt.conf(.d)
verstehen
10.3.2.
preferences
bzw.
preferences.d
10.3.3. cron.daily/apt
10.4. Konfigurationsoptionen von APT
10.5. APT-Hooks
10.6. Konfigurationsdateien von
aptitude
10.7.
aptitude
: Interaktives Ändern von Optionen
10.8.
aptitude
Format Strings
10.9. Für
aptitude
die Ausgabebreite festlegen
10.10. Bei
aptitude
die Ausgabe sortieren
10.11.
aptitude
-Gruppierung
10.11.1. Kommandozeile
10.11.2. Textoberfläche
10.12.
aptitude
-Farbschema anpassen
10.12.1. Zwischen
aptitude
-Themes wechseln
10.12.2. Standardvorgaben
10.12.3. Eigene Farben vergeben
11. Mit
aptitude
Vormerkungen machen
11.1. Vormerkungen über die Kommandozeile durchführen
11.2. Vormerkungen über die Textoberfläche durchführen
11.3. Bestehende Vormerkungen anzeigen
11.4. Vormerkungen simulieren
11.5. Vormerkungen wieder aufheben
11.6. Vormerkungen ausführen
11.7. Risiken und Seiteneffekte
12. APT und
aptitude
mischen
12.1. Hintergrund
12.2. Sollten Sie das überhaupt machen?
12.3. Was ist zu beachten, wenn Sie das machen
12.4. Empfehlungen für Dokumentation und Beispiele
13. Erweiterte Paketklassifikation mit Debtags
13.1. Einführung
13.2. Kurzinfo zum Debtags-Projekt
13.3. Webseite zum Projekt
13.4. Debtags-Werkzeuge
13.5. Vergebene Schlagworte anzeigen
13.5.1. Auf der Kommandozeile
13.5.2. Integration in
aptitude
13.5.3. Graphische Programme
13.5.4. Über den Webbrowser
13.6. Suche anhand der Schlagworte
13.6.1. Über die Kommandozeile
13.6.2. Textoberfläche von
aptitude
13.6.3. Graphische Programme
13.6.4. Suche über den Webbrowser
13.7. Pakete um Schlagworte ergänzen
13.8. Verwendetes Vokabular bearbeiten und erweitern
13.8.1. Alle verfügbaren Schlagworte anzeigen
13.8.2. Informationen zu Schlagworten anzeigen
13.8.3. Schlagworte bearbeiten
14. Mehrere Pakete in einem Schritt ändern
14.1. Mit
apt-get
14.2. Mit
aptitude
15. Ausgewählte Pakete aktualisieren
15.1. Nur ein einzelnes Paket aktualisieren
15.1.1. Auf der Kommandozeile
15.1.2. Über die Textoberfläche von
aptitude
15.1.3. Durchführung bei
Synaptic
15.2. Aktualisierung mit Wechsel der Veröffentlichung
16. Ausgewählte Pakete nicht aktualisieren
16.1. Auf der Kommandozeile
16.1.1. Mit
dpkg
16.1.2. Mit
apt-mark
16.1.3. Mit Aptitude
16.2. Textoberflächen
16.2.1. Mit Aptitude
16.2.2. Mit Nala
16.3. Graphische Programme
16.3.1. Synaptic
16.3.2. Mit Apper
17. Fehlende Pakete bei Bedarf hinzufügen
17.1. Neue Hardware
17.1.1. Passende Pakete mit
isenkram-lookup
finden
17.1.2. Hardware-spezifische Pakete mit
isenkram-pkginstall
lokalisieren
17.1.3. Fehlende Firmware mit
isenkram-autoinstall-firmware
nachziehen
17.1.4. Passende Hardware identifizieren
17.2. Neue Software
17.2.1. Ausgangssituation
17.2.2. Empfehlungen mittels
command-not-found
17.2.3. Fehlendes sofort installieren
18. Alternative Standard-Programme mit Debians Alternativen-System
18.1. Hintergrund: Warum alternative Standardprogramme?
18.2. Standardprogramme anzeigen
18.3. Standardprogramm ändern
19. Backports
19.1. Ausgangssituation
19.2. Gegenüberstellung der verschiedenen Lösungsansätze
19.3. Debian Backports
19.4. Welche Pakete gibt es als offiziellen Backport?
19.5. Welche Versionen gibt es als offizielle Backports?
19.6. Einbindung in den Paketbestand
19.7. Die installierten Pakete anzeigen
19.8. Weiterführende Dokumentation
19.9. Backports bei Ubuntu
19.10. Wichtige Fragen, die sich bei Backports ergeben
20. Veröffentlichungen mischen
20.1. Die bevorzugte Veröffentlichung für alle Pakete festlegen
20.2.
apt-get
mit expliziter Angabe der Veröffentlichung
20.3. Von APT zu APT-Pinning
20.4. Paketweise festlegen
20.5. Praktische Beispiele
21. Pakete bauen mit
checkinstall
21.1. Pakete aus zusätzlichen Quellen ergänzen
21.2. Software selbst übersetzen und einspielen
21.3. Software selbst übersetzen und als
deb
-Paket einspielen
21.4. Beispiel
21.5. Vor- und Nachteile
21.5.1. Weitere noch unbearbeitete Notizen
22. Metapakete bauen
22.1. Vorbereitungen
22.2. Das Paket bauen
22.3. Die Komponenten des Pakets kryptographisch signieren
22.4. Das Debianpaket kryptographisch signieren
22.4.1.
dpkg-sig
verwenden
22.4.2.
debsigs
benutzen
22.5. Das neue Paket benutzen
22.5.1. Mittels
dpkg
und APT
22.5.2. Mittels
gdebi
22.5.3. Mittels
apt
23. Paketformate mischen
23.1. Einführung
23.2. Fremdformate mit
alien
hinzufügen
23.2.1. Einführung
23.2.2. Pakete umwandeln
23.2.3. Umgewandelte Pakete einspielen
23.2.4. Pakete umwandeln und einspielen
23.2.5. Fazit
23.3.
deb
-Pakete in
rpm
-Strukturen
24. Umgang mit LTS
24.1. Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
24.2. Dauerhaftes Abschalten der Gültigkeitsüberprüfung des Release Files
24.3. Dienstleister zur Pflege veralteter LTS-Installationen
25. Webbasierte Installation von Paketen mit
apturl
25.1. Sinn und Zweck
25.2. Risiken und Bedenken
25.3. apturl in der Praxis
26. Paketverwaltung beschleunigen
26.1. Hintergrund
26.2. Möglichkeiten zur Beschleunigung
26.3. Empfehlungen zum Umgang im Alltag
27. Paketverwaltung hinter einem http-Proxy
27.1. Hintergrund
27.2. Varianten
27.3. Einen Proxy konfigurieren
27.4. Einen Proxy mittels Umgebungsvariablen konfigurieren
27.5. Einen Proxy in Anwendungen konfigurieren
27.5.1. Mittels
wget
27.5.2. Mittels
curl
27.5.3. Webbrowser Firefox
27.5.4. Webbrowser Chromium
27.6. APT über HTTP-Proxy
27.6.1. Konfigurationsdateien und Einstellungen
27.6.2. Schalter zur Steuerung des Cache-Verhaltens
27.6.3. Umgebungsvariablen
27.6.4. Schalter für apt-get
27.7. Aptitude über HTTP-Proxy
28. Einen APT-Paket-Cache einrichten
28.1. Begriff
28.2. Besonderheiten des APT-Cache
28.2.1. Funktionsweise
28.2.2. Vor- und Nachteile
28.2.3. Abgrenzung zum Betreiben eines eigenen Paketmirrors
28.2.4. Softwareauswahl für einen APT-Cache
28.3. Approx
28.3.1. Überblick
28.3.2. Setup und Installation
28.3.3. Konfiguration
28.3.4. Beobachtungen aus dem Alltag
28.4. apt-cacher
28.4.1. Werkzeugbeschreibung
28.4.2. Einrichtung und Benutzung
28.5. apt-cacher-ng
28.5.1. Werkzeugbeschreibung
28.5.2. Einrichtung und Betrieb
29. Cache-Verzeichnis auf separater Partition
29.1. Paketarchiv als
tmpfs
-Partition
29.2. Paketcache als separate Partition einrichten
29.3. Cache-Verzeichnis als Unterverzeichnis auf anderer Partition
30. Eigenes APT-Repository anlegen
30.1. Verzeichnis mit Paketen
30.2. dpkg-scanpackages
30.3. reprepro
30.4. mini-dinstall
30.4.1. Voraussetzungen
30.4.2. Einrichtung
30.4.3. Laufender Betrieb
30.4.4. Schalter und Konfiguration
30.4.5. Lesematerial
30.5. apt-ftparchive
30.6. aptly
30.7. debify
31. Einen eigenen APT-Mirror aufsetzen
31.1. apt-mirror
31.1.1. Wichtige Dateien aus dem Paket
31.1.2. Ablauf
31.1.3. Beispiel/HowTo
31.1.4. Hinweise
31.2. debmirror
31.3. debpartial-mirror
31.4. ubumirror
31.5. debarchiver
31.6. reprepro
32. Plattenplatz sparen mit der Paketverwaltung
33. Platte läuft voll
33.1. Hintergrund
33.2. wie löst man diesen Zustand (Empfehlung zum Vorgehen)
33.3. Varianten
33.4. Fehler beheben
34. Paketkonfiguration sichern
34.1. Die bestehende Paketkonfiguration auslesen
34.1.1. Mit
dpkg
34.1.2. Mit
apt
34.1.3. Mit
debconf-get-selections
34.1.4. Mit
apt-clone
34.2. Eine gesicherte Paketkonfiguration wieder einspielen
34.2.1. Mit
apt-get
34.2.2. Mit
debconf-set-selections
34.2.3. Mit
apt-clone
34.3. Graphische Werkzeuge
34.3.1. Aptik
34.3.2. Mintbackup
35. Automatisierte Installation
35.1. Einstieg
35.2. Kriterien für die Auswahl einer geeigneten Lösung
35.3. Mit Debian-Werkzeugen
35.4. Komplette Lösungen
35.4.1. Ansible
35.4.2. Autoinstall
35.4.3. Chef
35.4.4. Cloud-init
35.4.5. Cobbler
35.4.6. FAI
35.4.7. Kickstart
35.5. Erfahrungen aus der Praxis
36. Automatisierte Aktualisierung
36.1. Ziel
36.2.
apt-dater
37. Qualitätskontrolle
37.1. Nicht installierte Pakete mit
lintian
prüfen
37.1.1.
lintian
verstehen
37.1.2.
lintian
verwenden
37.2. Bereits installierte Pakete mit
adequate
prüfen
37.3. Bugreports anzeigen
37.3.1. Hintergrundwissen
37.3.2. Bugreports mit
apt-listbugs
lesen
37.3.3. Ergänzende Bugreports mit
apt-listchanges
herausfiltern
37.3.4. Release-kritische Fehler mit
popbugs
finden
37.3.5. Release-kritische Fehler mit
rc-alert
finden
37.3.6. Welche der von mir genutzten Pakete benötigen Hilfe?
37.4. Auslaufende Sicherheitsaktualisierungen mit
check-support-status
anzeigen
38. Versionierte Paketverwaltung
39. Pakete und Patche datumsbezogen auswählen
40. Paketverwaltung mit eingeschränkten Ressourcen für Embedded und Mobile Devices
40.1. Batterielaufzeit
40.2. Speicherplatz
40.3. localepurge
40.4. Bildschirmgröße
40.5. Erfordernisse an die CPU
41. Paketverwaltung ohne Internet
41.1. Hintergrund und Einsatzfelder
41.2. Strategien
41.2.1. Benötigte Pakete vorher explizit herunterladen
41.2.2. Einbindung fester Installationsmedien
41.2.3. Einbindung eines lokalen Paketmirrors
41.3. Werkzeuge
41.3.1. Offline-Verwaltung mit
apt-get
und
wget
41.3.2. Das Projekt
apt-offline
41.3.3. Pakete mit
dpkg-split
aufteilen
41.3.4. Keryx
42. Systeme mit schlechter Internet-Anbindung warten
42.1. debdelta
42.2. PDiffs
43. Paketverwaltung hinter einer Firewall
44. Der APT- und
aptitude
-Wunschzettel
IV. Ausblick
45. Notizen
46. Pakete selber bauen
47. Ein eigenes Debian-Repository aufbauen
48. Zukunft von APT,
dpkg
und Freunden
49. Fazit / Zusammenfassung
49.1. Was können Sie jetzt?
49.2. Empfehlungen für Einsteiger
49.2.1. Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
49.2.2. Installations-CD/DVD oder Netzwerkinstallation?
49.3. Empfehlungen für Fortgeschrittene und Profis
A. Anhang
Stichwortverzeichnis
Abbildungsverzeichnis
1.
Orte, an denen das vorliegende Buch entstand
2.1.
Schichtenmodell zur
deb
-basierten Paketverwaltung
2.2.
Paketabhängigkeiten von APT
2.3.
Paketabhängigkeiten von
dpkg
2.4.
Paketabhängigkeiten von
aptitude
und APT
2.5.
Inhalt des Pakets x-display-manager in Aptitude
2.6.
Auflistung der verschiedenen Paketkategorien in
aptitude
2.7.
Paketliste mit Skype als unfreies Paket in Aptitude
2.8.
neofetch
im Einsatz auf Debian 11
Bullseye
2.9.
Beschreibung der Filmserie
Toy Story
im Disney Wiki
2.10.
Erfasster Verbreitungsgrad für das Paket
nginx
2.11.
Vergleich Installationen und Nutzung der Pakete
screen
und
tmux
2.12.
Ausgabe der Paketmarkierungen in der Textoberfläche von
aptitude
3.1.
Editieren der Datei
/etc/apt/sources.list
im Texteditor Vim
3.2.
/etc/apt/sources.list
im Texteditor
nano
3.3.
Auswahl der Paketmirror für Linux Mint
3.4.
Standortlokalisierung über das GeoIP Tool [geoiptool]
3.5.
Auswahl des Paketmirrors über den Debian Redirector [Debian-Redirector]
3.6.
Auswahl der Paketquellen über
apt-setup
3.7.
Einstellung der Komponenten in Synaptic
3.8.
Auswahl der Komponenten im Debian Sources List Generator
3.9.
Erzeugte
sources.list
durch den Debian Sources List Generator
3.10.
Auswahl der Komponenten im Ubuntu Sources List Generator
3.11.
Auflistung der gespeicherten, vertrauenswürdigen Schlüssel
3.12.
Auflistung der verfügbaren Paketquellen in SmartPM
3.13.
Auflistung der aktualisierbaren Pakete
3.14.
Ausgabe einer
deutlichen
Warnung bei
aptitude
3.15.
Status der verschiedenen Debian-Paketmirror
4.1.
Auszug aus dem
postinst
-Skript zum Paket
dpkg-www
4.2.
Detailinformationen zum Paket
debsums
deb-gview
4.3.
Detailinformationen zum Paket
debsums
(Synaptic)
4.4.
Detailinformationen zum Paket
debsums
in
apt-browse.org
(Ausschnitt)
6.1.
wajig
mit der Ausgabe des Kommandos
listfiles
6.2.
Softwareauswahl in
tasksel
6.3.
Softwareinstallation via
tasksel
6.4.
package dependency solver in
aptitude
6.5.
Entfernen des Paketes
xsnow
mittels
Nala
6.6.
Softwareauswahl in
synaptic
6.7.
Farbige Markierungen der Pakete gemäß ihrem Installationsstatus (Synaptic)
6.8.
Allgemeine Paketeigenschaften für das Paket
ding
(Synaptic)
6.9.
Paketauswahl einer ganzen Aufgabengruppe (Synaptic)
6.10.
Softwareauswahl in
muon
6.11.
Softwareauswahl in
smartpm
6.12.
Gnome Packagekit mit ausgewähltem Paket
dctrl-tools
6.13.
gdebi
mit den Informationen zum Paket
apt-doc
6.14.
gdebi-gtk
mit den Informationen zum Paket
zsh
6.15.
Rollback eines ausgewählten Pakets
6.16.
Vorauswahl für Appnr im Webbrowser
Iceweasel
6.17.
Verfügbare Bündel auf der Webseite
6.18.
Univention App Centre
7.1.
Heruntergeladene Pakete im Paketcache
7.2.
Alte Pakete aus dem Paketcache mittels Aptitude entfernen
7.3.
Großreinemachen mit Hilfe von Synaptic
8.1.
Ausgabe der Statusinformationen zum Paket
htop
mittels
aptitude
8.2.
Icons zur Darstellung des Paketstatus
8.3.
Ansicht der automatisch installierten Pakete in
aptitude
8.4.
Ansicht der obsoleten Pakete in Synaptic
8.5.
Ansicht der aktualisierbaren Pakete in Synaptic
8.6.
Darstellung der umgekehrten Paketabhängigkeiten mit
dotty
8.7.
Paketliste limitieren über die Aptitude-TUI
8.8.
Ergebnis der Suche nach dem Fragment
fce
in Synaptic
8.9.
Ergebnis der Suche nach dem Fragment
top
in SmartPM
8.10.
Auswahl der Hilfeseiten zum Menüpunkt
Netzwerkkommunikation
8.11.
Auswahl der Hilfeseiten zu Synaptic
8.12.
Ergebnis der Paketsuche nach
iftop
über https://packages.debian.org/
8.13.
Ergebnis der Paketsuche nach
aptsh
über http://packages.ubuntu.com/
8.14.
Ergebnis der Paketsuche nach
kdm
über http://packages.linuxmint.com/
8.15.
Ergebnis der Paketsuche nach
htop
über https://apt-browse.org/
8.16.
Auswahl der Paketmirror für bei
apt-get.org
8.17.
Suchergebnis der Recherche bei
apt-get.org
8.18.
Auswahl der Pakete für Debian GNU/Linux mittels Pkgs
8.19.
Ergebnis der Paketsuche nach
htop
über http://www.rpmseek.com/
8.20.
Ergebnis der Suche nach dem Paketmaintainer in Synaptic
8.21.
Suche nach
mupdf
über die Webseite
8.22.
Suche nach der Zeichenkette
mupdf
über die Webseite des Debian-Projekts (Suchergebnis)
8.23.
Ein Paket mit
dpkg -x
auspacken
8.24.
Aufruf von
debmany
für das Paket
apt
8.25.
Aufruf von
debmany
für das Paket
apt
mit Hilfe von Zenity
8.26.
Suche in der Manpages-Sammlung nach
htop
8.27.
Von
diffoscope
gefundene Änderungen (Ausschnitt)
8.28.
Bezug des Pakets
bash-doc
über den Webbrowser
8.29.
Konfiguration des Pakets
debconf
8.30.
Konfiguration des Pakets
tzdata
und regionale Auswahl
8.31.
Das Debian-Paketarchiv
8.32.
Suchergebnis nach dem Paket
openvpn
im Paketarchiv
8.33.
Nicht verwendete Pakete automatisch entfernen in
aptitude
8.34.
orphaner
bei der Arbeit
8.35.
editkeep
im Einsatz
8.36.
gtkorphan
bei der Arbeit
8.37.
wajig
mit der Ausgabe des Kommandos
orphans
8.38.
Die Installation eines Paketes erzwingen
8.39.
Ausgabe während des Upgrades von
Jessie
auf
Stretch
9.1.
Die apt-dpkg-Referenzliste im PDF-Betrachter
xpdf
9.2.
Ausschnitt aus der APT-Dokumentation mit
apt-doc
9.3.
Der Debian-Spickzettel (Ausschnitt)
9.4.
Spickzettel zu
apt-get
9.5.
Die Pacman Rosetta (Ausschnitt)
9.6.
Dokumentation zu
aptitude
9.7.
Cover des Buches
11.1.
Paketoperationen anzeigen, die zur Ausführung anstehen
11.2.
Vormerkungen abbrechen
13.1.
Suche nach Spielen anhand von Debtags
13.2.
Debian Tags zum Paket
xara-gtk
(zuletzt in Debian 9 Stretch)
13.3.
Darstellung der Schlagworte zum Paket
xpdf
in
aptitude
13.4.
Ergebnis der Paketsuche nach dem Tag
use::searching
mit Hilfe von
axi-cache
13.5.
Auswahl des Debtags-Browsers in
aptitude
13.6.
PackageSearch im Einsatz
13.7.
Suche anhand der Debtags über den Webbrowser
13.8.
Auswahl der Pakete anhand der Debtags Cloud
13.9.
Webseite zum Debtags-Projekt mit den Informationen zum Paket
gimp
13.10.
Informationen zur Facette
protocol::pop3
16.1.
Setzen des Paketflags
hold
in Synaptic
17.1.
Zusätzliche Menüeinträge in Tasksel
18.1.
Auswahl mit Hilfe des Programms
galternatives
22.1.
apt
bei der Installation des Metapakets
meta-mc
27.1.
Proxy-Einstellungen bei Firefox
27.2.
Mitteilung von Chromium zu den Einstellungen für Proxy Server
27.3.
Proxy-Einstellungen bei Synaptic
28.1.
Schematische Darstellung mit APT-Cache in der Netzwerkinfrastruktur
33.1.
Kein Platz mehr
33.2.
Download-Fehler
34.1.
Fragen zum Paket
cups
34.2.
Sicherungsdialog von Mintbackup
37.1.
Ausgabe der Paketvalidierung mittels
lintian
zum Paket
mp4h
37.2.
Auflistung der bekannten, kritischen Fehler nach der Analyse von
popbugs
37.3.
Auflistung der Paket ohne zukünftige Sicherheitsaktualisierungen nach der Analyse von
debian-security-support
Tabellenverzeichnis
2.1.
Übersicht zu Paketformaten und deren Verbreitung
2.2.
Übersicht zu Containerformaten und deren Verbreitung
2.3.
Paketierung der Komponenten am Beispiel von APT
4.1.
Relationen für versionierte Abhängigkeiten
6.1.
Frontends zur Paketverwaltung
6.2.
Farben und deren Bedeutung bei
aptitude
6.3.
Tasten bei
aptitude
6.4.
Tasten zur interaktiven Konfliktlösung bei
aptitude
8.1.
Paketzustand deuten
8.2.
Alltägliche Kombinationen zum Paketzustand
10.1.
Format Strings in
aptitude
10.2.
Farbauswahl bei
aptitude
10.3.
Hervorhebungen und deren Bedeutung bei
aptitude
11.1.
Tastenkombination für Vormerkungen in
aptitude
14.1.
Zusätzliche Optionen für den Aufruf bei
aptitude
20.1.
Verwendete Prioritäten beim APT-Pinning
20.2.
Zulässige Parameter beim APT-Pinning
21.1.
Schalter für die verschiedenen unterstützten Paketformate
21.2.
Spezifische Schalter für ein Debian-Binärpaket
37.1.
Klassifikation der
lintian
-Fehlermeldungen
51.1.
Lokale Paketliste aktualisieren
51.2.
Installation eines Pakets
51.3.
Aktualisieren eines Pakets
51.4.
Downgraden eines Pakets
51.5.
Erneute Installation eines Pakets
51.6.
Ein Softwarepaket nur herunterladen
51.7.
Entfernen eines Pakets
51.8.
Softwarepakete auflisten
51.9.
Einzelnes Softwarepaket auflisten
51.10.
Paketabhängigkeiten anzeigen
51.11.
Paketinhalte vor der Installation anzeigen
51.12.
Paketinhalte anzeigen
51.13.
Konfigurationsdateien eines Pakets anzeigen
51.14.
Dokumentationsdateien eines Pakets anzeigen
51.15.
Paket zu Datei finden
51.16.
Paketstatus erfragen
51.17.
Aktualisierbare Pakete anzeigen
51.18.
Verfügbare Pakete anzeigen
51.19.
Paketsignatur überprüfen
51.20.
Paket auf Veränderungen prüfen
51.21.
Transaktionshistorie anzeigen
51.22.
Distributionsupgrade
Über dieses Buch
1. Kann Paketmanagement Spaß machen?
Ja! Und wir werden Ihnen in diesem Buch zeigen, warum das so ist.
Software ist heute meist sehr komplex und darum modular aufgebaut. Das
gilt nicht nur für das Betriebssystem Linux und andere freie
Anwendungen, sondern hat sich als allgemeines Prinzip in der
Softwareentwicklung durchgesetzt.
Modularität hat mehrere Facetten: einzelne Bausteine für spezifische
Aufgaben, klare Beschreibungen zu deren Funktion, definierte
Schnittstellen und Protokolle zur Kommunikation untereinander. All dies
gewährleistet die Kombination und Austauschbarkeit von Komponenten, also
die flexible Anpassung der Software an konkrete Anforderungen.
Modularität heißt aber auch Abhängigkeiten: Bausteine und Funktionen
bedingen einander, bauen aufeinander auf, verlangen bei der Installation
eine vorgegebene Reihenfolge – und stehen ggf. zueinander in Konflikt.
Das betrifft insbesondere Varianten und Entwicklungsstufen einer
Implementierung.
Auf die Verwaltung von Software übertragen, heißt das: Die einzelnen
Module werden als
Pakete
Packages
) bereitgestellt. Das setzt
voraus, dass deren Bezug zueinander (
Relation
) klar geregelt ist; nur
so kann ein Betriebssystem wie Debian GNU/Linux (siehe
Abschnitt 1.1, „Was ist Debian?“
) funktionieren und weiterentwickelt werden, an dem
Hunderte von Entwicklern aus der ganzen Welt mitwirken und das inzwischen aus
mehr als 40.000 Paketen besteht. Ohne ein leistungsfähiges
Paketmanagement wäre dies unmöglich.
Debian GNU/Linux und davon abgeleitete Betriebssysteme – wie Ubuntu
[Ubuntu]
, Linux Mint
[LinuxMint]
, Knoppix
[Knoppix]
oder Grml
[Grml]
– setzen auf dem Paketformat
deb
und der Paketverwaltung mit
dpkg
und APT auf. Neben dem RPM-Paketformat (siehe
Abschnitt 2.2, „Varianten und Formate für Softwarepakete“
) ist die Kombination aus
dem
deb
-Format und seinen Werkzeugen am weitesten unter den
verschiedenen Linux-Distributionen verbreitet. Das hat mehrere Gründe:
Es funktioniert verlässlich.
Es ist ausführlich und meist auch verständlich dokumentiert. Leider
ist die Dokumentation aber nicht ganz einheitlich und recht verstreut –
weshalb nicht zuletzt auch dieses Buch entstanden ist.
Pakete für Debian GNU/Linux sind aufeinander abgestimmt, wurden vorab
intensiv getestet und unterliegen strengen Qualitätskontrollen.
Pakete für Debian GNU/Linux werden nach ihrer Veröffentlichung
Release
) bzw. ihrem Entwicklungszweig kategorisiert:
oldoldstable
oldstable
stable
testing
unstable
oder
experimental
. Ein
Paket für Debian GNU/Linux kann in mehreren dieser Zweige parallel
vorliegen und unterscheidet sich nur in seinem jeweiligen „Reifegrad“.
Als Benutzer wissen Sie daher genau, worauf Sie sich einlassen, wenn Sie
einen bestimmten Entwicklungsstand benutzen (falls nicht, lesen Sie in
Abschnitt 2.10, „Veröffentlichungen“
nach). Das Debian-Derivat namens Ubuntu handhabt
das etwas anders: Es unterscheidet nur zwischen mehreren stabilen
Veröffentlichungen und dem Entwicklungszweig. Im Rahmen einer
halbjährlichen Freigabe wird aus dem Entwicklungszweig die nachfolgende,
stabile Veröffentlichung.
Kein Stress mit Lizenzen. Es ist klar geregelt, welche Bedingungen ein
Paket erfüllen muss, damit es überhaupt in den offiziellen Bestand von
Debian GNU/Linux unter den Distributionsbereich
main
Eingang findet.
Alle anderen Pakete werden in die Bereiche
contrib
oder
non-free
einsortiert. Ubuntu kennt kein Äquivalent zu
contrib
und
verwendet statt
non-free
die beiden Bereiche
restricted
und
multiverse
(siehe
Abschnitt 2.9, „Distributionsbereiche“
).
Die beiden Debian-Entwicklungszweige
unstable
und
testing
(siehe
Abschnitt 2.10, „Veröffentlichungen“
) wie auch der Bereich
Debian Backports
(siehe
Kapitel 19,
Backports
) bekommen regelmäßig neue Pakete, die das
Paketverwaltungswerkzeug
aptitude
(siehe
Abschnitt 6.3.2, „
aptitude
) in einer
eigenen Liste übersichtlich darstellt. Das ist fast wie Weihnachten, nur
günstiger und häufiger.
All dies gewährleistet zwar nicht, dass Software fehlerfrei ist,
allerdings reduziert dieses Vorgehen die Zahl der Fehlerquellen
deutlich. Es stellt insbesondere sicher, dass sich Softwarepakete unter
Berücksichtigung ihrer Abhängigkeiten konfliktfrei installieren,
konfigurieren, ausprobieren und auch wieder vollständig aus dem System
entfernen lassen. Der Fall, dass andere, bereits integrierte Komponenten
Schaden nehmen, ist bei korrektem Vorgehen nahezu ausgeschlossen. Falls
das Problem doch auftritt, ist es definitiv in überschaubarer Zeit mit
Bordmitteln zu beheben. Diese Werkzeuge stehen im Mittelpunkt dieses
Buches.
Die Sorge, dass Sie durch Ausprobieren Ihr Arbeitsgerät unbenutzbar
machen, ist unberechtigt – zumindest innerhalb von Debian
stable
Aber auch in Debian
unstable
passiert das nur sehr selten.
Ausführlicher gehen wir darauf im Zusammenhang mit
Distributionsbereichen (siehe
Abschnitt 2.9, „Distributionsbereiche“
) und
Veröffentlichungen (siehe
Abschnitt 2.10, „Veröffentlichungen“
) ein. Fühlen Sie sich
also ausdrücklich ermutigt, mit den Paketen Ihres Debian-Systems zu
experimentieren!
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 u.a. als Linux-Systemadministrator an der ETH Zürich, ist
sowohl Mitglied des Debian-Projekts als auch in den Vorständen des
Vereins Debian.ch und der Linux User Group Switzerland (LUGS).
Er benutzt
aptitude
seit Anfang der 2000er Jahre 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. Desweiteren hat er im Namen des Debian Perl Teams die
Pflege der im Buch erwähnten Pakete
debsums
und
equivs
übernommen.
Dipl.-Inf. Frank Hofmann
hat Informatik mit Nebenfach Englisch an der
Technischen Universität Chemnitz studiert. Er bevorzugt das Arbeiten von
unterwegs aus als Entwickler, Trainer und Autor. Nach Berlin, Kapstadt
und Besançon (Franche-Comté) arbeitet er von Freiburg im Breisgau aus.
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 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.
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 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.
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
Kapitel 51,
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.
2.4. Baustellenstatus
Zum aktuellen Zeitpunkt (Frühsommer 2023) hat das Buch den Umfang von
500 Seiten bereits überschritten. 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.
2.5. 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. Wir freuen uns über alle Anmerkungen, die uns
erreichen und helfen, das Buch für alle besser zu machen.
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.6. Online-Fassung
Unter
gibt es den jeweils aktuellsten Stand des
Buches auch in diversen Formaten zum Online-Lesen oder
Herunterladen. Derzeit sind es HTML, PDF und EPUB. 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 wurde
die entsprechende Stelle dort bereits aktualisiert.
2.7. 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.
2.8. 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,
Bern,
Besançon,
Biel/Bienne,
Bottighofen (Bodensee, Schweiz),
Bratland (bei Bergen, Norwegen),
Bruchsal,
Canterbury (Kent),
Chemnitz,
Cudrefin,
Delémont,
Edinburgh (Schottland),
Engelberg-Titlis,
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 (Rheinland),
Konstanz am Bodensee,
Lauchringen (Baden, Wutachtal),
Laveno Mombello (Lago Maggiore, Italien),
Lausanne,
London,
Magdeburg,
Mannheim,
Meersburg (Bodensee),
Montpellier,
Montreux,
München,
Oldenburg in Oldenburg,
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-Claude (Jura, Frankreich)
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
Abbildung 1, „Orte, an denen das vorliegende Buch entstand“
). 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.
Abbildung 1. Orte, an denen das vorliegende Buch entstand
2.9. 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. Die Prüfungen des Linux Professional Institutes (LPI),
der Linux Foundation (LFC)
[lfc]
sowie die Linux+-Prüfung von CompTIA
[comptia-linux]
widmen dem Thema einen eigenen Schwerpunkt mit hoher
Gewichtung (für LPIC-1 siehe
[lpic-101]
).
Material für Ihre LPIC-Prüfungen
Ihre Vorbereitung auf die anspruchsvollen Tests des LPI ergänzen Sie
am besten mit dem Buch „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]
mittlerweile sogar auf der offiziellen Webseite von Debian.
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.10. 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.10, „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.11. 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. Für den Bau von Debianpaketen empfehlen wir
Ihnen den Blick in das Debian-Paketierbuch (kurz: dpb) von Michael und
Mechtilde Stehmann
[Debian-Paketierbuch]
Was Sie allerdings im vorliegenden Buch finden, ist die Zusammenstellung
eines
deb
-Pakets — sprich: aus welchen Einzelteilen es besteht (siehe
Abschnitt 4.2, „Aufbau und Format“
), wie Sie dieses in die Komponenten zerlegen
(siehe
Abschnitt 8.25, „Paket auseinandernehmen“
) und auch wieder zusammenbauen (siehe
Kapitel 21,
Pakete bauen mit
checkinstall
).
2.12. 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.13. 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 erscheinen in englischer Sprache, nicht zuletzt weil
die Lokalisierung der einzelnen Pakete bislang unvollständig ist. Die
verwendeten Ausgaben auf dem Bildschirm und die Screenshots stammen
hierbei von ganz unterschiedlichen Linux-Varianten und
Veröffentlichungen — Debian GNU/Linux, Ubuntu, Xubuntu und Linux Mint.
Die dabei eingestellten Lokalisierungen sind Deutsch oder Englisch.
Sie müssen auf Ihrem System über
administrative Benutzerrechte
verfügen, um einen Großteil der 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 verwendeten Prompt-Zeichens, ob dafür administrative Rechte
notwendig sind oder nicht:
bedeutet hierbei ja und
bedeutet nein.
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
viele Beispiele im Buch aus diesem Zeitraum. Spätere Inhalte setzen
auf den Nachfolgern Debian 8
Jessie
, Debian 9
Stretch
, Debian 10
Buster
, Debian 11
Bullseye
und Debian 12
Bookworm
auf. Alle
Ausnahmen sind entsprechend gekennzeichnet, bspw. wenn wir zur
Illustration auf ein Derivat wie Ubuntu zurückgegriffen haben.
2.14. 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, d.h. installieren, aktualisieren und löschen
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 einer
Linux-Zertifizierung. 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 auch als
Debian-Paket-Maintainer agieren zu können
[Debian-Wiki-Debian-Entwickler]
2.15. Buchinfo
Wir pflegen eine buchbegleitende Webseite unter der URL:
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!
3. Danksagung
Etliche Menschen haben uns bei der Realisierung dieses Buches direkt
oder indirekt unterstützt, sei es in Form von Anregungen, Kritik,
Vorschlägen zur Ergänzung oder Fach- und Verständnisfragen. Diesen
Menschen gebührt unser Dank:
Elmar Heeb (für
aptitude-robot
und viele interessante Diskussionen)
Dirk Deimeke (für Tipps zum Autor-Werden)
[Hackerfunk]
Arne Wichmann (für das Diagramm der Vertrauenskette in Debian – unter GPL)
Annette Kalbow (für inhaltliche Vorschläge mit
apt-file
dpkg -l
dpkg -L
und
dpkg -x
, die graphische Umsetzung der Landkarte, die vielen
Anregungen zum Aufsetzen und Betreiben eines Proxies (siehe
Kapitel 27,
Paketverwaltung hinter einem http-Proxy
sowie dem Thema „Kryptographische Signaturen in Debian-Repositories“
Mechtilde Stehmann (für die Sprachkorrekturen und die Vorschläge für die FAQ)
Marco Uhl (für die Idee zum FAQ-Eintrag über
Debian Snapshots
[Debian-Snapshots]
bei Testing- vs. Produktiv-Umgebung)
Werner Heuser (für die Installation und den Umgang auf Embedded und Mobile Devices)
Claude Becker (für Ideen, Korrekturlesen rund um das Parsen von
Debian-Versionsnummern und APT-Pinning sowie Konsistenzprüfung)
Christoph Berg (für Tipps und Tricks rund um
reprepro
und seine
Erfahrungen mit
apt.postgresql.org
[APT-Repo-PostgreSQL]
Dr. Thomas Fricke (für Ergänzungen rund um die Verteilung von Paketen auf mehrere Maschinen)
Jens Wilke (Konfigurationsmanagement)
Martin Schütte (
reprepro
Michael Vogt (für Erklärungen rund um APTs
mirror://
Methode und
gdebi
David Kalnischkies (für viele Detailerklärungen – z.B. zur
Parameterverarbeitung von
apt-get
– und die endlosen Diskussionen
darüber, die dennoch meist irgendwann in Erleuchtung endeten)
Albrecht Barthel (für die vielen Infos und Einblicke zum Univention
Corporate Server, UCS)
Martin
Venty
Ebnöther (für ein weiteres paar Augen und Ohren zum
Thema Paketmanagement)
Dr. Markus Wirtz für die lange Unterstützung und Hilfe, das Buch auf
seinen Weg zu bringen, für den Klappentext sowie fürs Lektorat der
Einleitung und dem erstem Kapitel.
Oliver Rath für seine Vorschläge zur besseren Lesbarkeit von Programmcode
Karsten Merker für viele kleine Korrekturen
Wolfram Schneider für den Hinweis zu
dh-make-perl
als spezialisierte
Variante von
checkinstall
sowie zum Aktualisieren von LTS-Versionen (siehe
Kapitel 24,
Umgang mit LTS
Jörg Brühe für die Anregungen zu den Paketabhängigkeiten
Sebastian Andres für seine Anregungen zu Debian Backports
Gregor Herrmann für den Hinweis, das Buch auf Links zu alioth.debian.org-Webseiten hin zu überprüfen
Alf Gaida für Hinweise auf nicht shell-unabhängige Beispiele
Ingo Wichmann für die Hinweise zu den
rpm
- und
yum
-Kommandos
Nicht zu vergessen sind die Probeleser, die sich durch unser Manuskript
gekämpft haben: Arne Wichmann, Thomas Winde, Jana Pirat, Jörg Dölz,
Hagen Sankowski und Eberhard Hofmann. Vielen Dank für Eure Mühe und
Geduld!
[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 Berechtigung je nach Konfiguration Ihres Systems über die Kommandos
su
oder
sudo
– oder indem Sie sich als Benutzer
root
auf Ihrem
System anmelden.
Teil I. Konzepte
Kapitel 1. Willkommen im Linux-Dschungel!
1.1. Was ist Debian?
Je nach Kontext bezeichnet „Debian“ entweder
das Debian-Projekt, also den Zusammenschluss von mittlerweile um die
1000 Entwicklern (
Debian Developers
, kurz: DD) weltweit, die das freie
Betriebssystem gemeinsam entwickeln und veröffentlichen
oder
das vom Debian-Projekt entwickelte Betriebssystem „Debian GNU/Linux“
bzw. dessen Varianten. Dazu zählen derzeit auch Debian GNU/kFreeBSD
[Debian-Wiki-Debian-GNUkFreeBSD]
und Debian GNU/Hurd
[Debian-Wiki-Debian-GNUHurd]
, die statt eines Linux-Kerns einen
FreeBSD- bzw. GNU-Hurd-Betriebssystemkern nutzen.
Einer der Eckpunkte des vom Debian-Projekt entwickelten Betriebssystems
ist die ausschließliche Verwendung freier Software. Dafür sind die
Debian Free Software Guidelines
(DFSG)
[DFSG]
maßgeblich, die im
Debian-Gesellschaftsvertrag
festgelegt sind
[Debian-Social-Contract]
. Sichtbar wird das auch darin, dass Pakete in
den beiden Entwicklungszweigen
contrib
und
non-free
offiziell kein
Bestandteil von Debian GNU/Linux sind. Genauer gehen wir darauf in
Abschnitt 2.9, „Distributionsbereiche“
ein.
Debian ist weder kommerziell noch profitorientiert. Das gesamte Projekt
finanziert sich ausschließlich durch Spenden
[Debian-Donations]
. Dazu
zählen nicht nur Geldspenden zufriedener Benutzer, sondern auch die
Arbeitszeit von Entwicklern, Hardwarespenden oder das Betreiben eines
Debian-Mirrors oder gar eines dedizierten Rechners für das
Debian-Projekt.
Angestrebt wird ein universelles Betriebssystem, d.h. es gibt keinen
Fokus auf einen spezifischen Einsatzbereich wie bei vielen Derivaten von
Debian. Desweiteren werden dem Benutzer viele Entscheidungen selbst
überlassen: Er muss – anders als z.B. in Ubuntu – wissen, was er möchte.
Daher richtet sich Debian an zielorientierte, ambitionierte Einsteiger,
Fortgeschrittene, Experten und Profis oder solche, die es wirklich
werden wollen.
Debian stellt dafür ein ausgereiftes, stabiles und zuverlässiges
Betriebssystem inklusive aller Software dar. Es ist ein Betriebssystem,
das die Debian-Entwickler selbst benutzen wollen
[4]
. Daher unterstützt Debian viele
verschiedene Architekturen und ermöglicht eine einheitliche
Administration auf verschiedensten Plattformen (siehe
Abschnitt 1.2, „Debian-Architekturen“
). Ausführliches Testen und das Bereinigen von
Fehlern hat Vorrang vor brandaktueller Software.
Aus diesen Grundsätzen folgen weitere Eigenschaften, die sich
insbesondere im Einsatzzweck von Debian und der Einordnung in die
Distributionsvielfalt widerspiegeln. Die typischen Anwendungsbereiche
sind Server, Systeme für die Infrastruktur sowie Low-End Systeme wie
etwa die Hardware-Lernplattform Raspberry Pi
[RaspberryPi]
. Dennoch
hat sich Debian (nicht nur bei den Autoren) auch einen festen Platz auf
dem Desktop erobert.
Zudem leiten sich aus Debian sehr viele Derivate für ausgewählte
Zielgruppen oder Einsatzzwecke ab, z.B. Ubuntu, Linux Mint, Knoppix,
Grml oder Damn Small Linux (DSL). Einen vollständigen Überblick („Stammbaum“)
erhalten Sie in
Abschnitt 1.5, „Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement“
sowie
der GNU Linux Distribution Timeline
[GNU-Linux-Distribution-Timeline]
1.2. Debian-Architekturen
Debian kommt mit den unterschiedlichsten Hardware-Architekturen zurecht.
Die offizielle Liste der aktuell unterstützten Architekturen finden Sie
auf der Debian-Webseite
[Debian-Architekturen]
sowie im Anhang dieses
Buches (siehe
Abschnitt 50.1, „Offizielle Architekturen“
). Neben den
veralteten Architekturen (siehe
Abschnitt 50.3, „Veraltete Architekturen“
) werfen wir auch einen Blick
in die Zukunft (siehe
Abschnitt 50.4, „Architekturen, deren Unterstützung vorgesehen ist“
).
Nicht alle „Architekturen“ sind wirklich nur von der
Hardware-Architektur abhängig, auf der die Programme einsetzbar sind,
sondern auch von weiteren Punkten. Dazu zählen etwa der
Betriebssystemkern, wie Linux, GNU Hurd
[Hurd]
oder FreeBSD
[FreeBSD]
, aber auch die Art, wie die Programme kompiliert wurden
Application Binary Interface
, kurz
ABI
). Daher bezeichnen
Entwickler dies als
Portierung
Port
) und sich selbst als
Porters
Hier verwenden wir durchgängig den Begriff
Architektur
, da das
entsprechende Feld in den Metadaten eines Pakets (siehe
Kapitel 4,
Debian-Paketformat im Detail
architecture
heißt und Debian selbst
die Begriffe bislang nicht konsistent verwendet.
Eine vollständige Liste der von
dpkg
verstandenen Architekturen gibt
Ihnen der Aufruf
dpkg-architecture -L
im Terminal aus. Viele der in
der Ausgabe des Kommandos genannten Architekturen existieren allerdings
nur in der Theorie und zeigen auf, welche Möglichkeiten bestehen.
Architekturen, die das Werkzeug
dpkg
unterstützt (Ausschnitt).
$ dpkg-architecture -L
uclibc-linux-armel
uclibc-linux-alpha
uclibc-linux-amd64
m68k
sparc
sparc64
...
Die Übersicht der Architekturen im Anhang (siehe
Kapitel 50,
Debian-Architekturen
) beschreibt die einzelnen Architekturen
näher. Die verwendeten Bezeichnungen in Klammern geben dabei das
entsprechende GNU-Triplet an, sofern dieses bekannt ist. Das GNU-Triplet
besteht aus der Hardware-Plattform, dem Kernel und dem ABI.
Mit Hilfe des Perl-Moduls
Dpkg::Arch
ermitteln Sie diese Bezeichnungen
im Handumdrehen selbst. Nachfolgend sehen Sie einen Aufruf für die
Plattformen PPC64, PowerPC-spe, Arm, Armel und Armhf.
Perl-Aufruf zur Ermittlung der GNU-Triplets einer Debian-Architektur.
$ perl \
-MDpkg::Arch=debarch_to_gnutriplet \
-E 'map { say "$_ = ".debarch_to_gnutriplet($_) } @ARGV' \
ppc64 powerpcspe arm armel armhf

ppc64 = powerpc64-linux-gnu
powerpcspe = powerpc-linux-gnuspe
arm = arm-linux-gnu
armel = arm-linux-gnueabi
armhf = arm-linux-gnueabihf
1.2.1. Debian-Ports-Projekt
Das Debian-Ports-Projekt
[Debian-Ports-Projekt]
stellt die
Infrastruktur für APT-Archive und automatisiertes Bauen von Paketen für
Architekturen bereit, die Debian noch nicht oder nicht mehr unterstützt.
Typischerweise gibt es dort nur zwei Kategorien von Veröffentlichungen:
unstable
und
unreleased
. Ersteres sind die gleichen Pakete wie in
Debian
unstable
, nur wurden diese aus demselben Quellcode für diese
spezifische Architektur übersetzt. Letzteres sind speziell für diese
Architektur entwickelte oder modifizierte Pakete, die in den offiziellen
APT-Archiven von Debian auch nicht im Quellcode zu finden sind.
In gewisser Weise stellt das Debian-Ports-Projekt dadurch gleichzeitig
den Kreißsaal und das Altersheim für Debian-Architekturen dar – Anfang
und Ende.
1.2.2. Pakete für alle Architekturen
Neben den bereits genannten Architekturen gibt es noch Pakete mit dem
Eintrag
all
. Dies sind architekturunabhängige Pakete und Sie können
diese auf beliebigen Architekturen installieren.
Dazu zählen z.B. Pakete von Programmen, die vollständig in den
Skriptsprachen Perl, Python, Ruby oder Tcl geschrieben wurden. Ebenfalls
gehören zu dieser Gruppe Pakete, die lediglich Daten enthalten, die auf
jeder Architektur identisch sind. Das betrifft z.B. Bilder, Musik und
Dokumentation.
Auswahl der installierten, architektur-unabhängigen Pakete.
$ dpkg -l | fgrep " all" | head -5
ii abiword-common 3.0.0-8 all
efficient, featureful word processor with collaboration -- common files
ii acpi-support-base 0.142-6 all
scripts for handling base ACPI events such as the power button
ii adduser 3.113+nmu3 all
add and remove users and groups
ii adwaita-icon-theme 3.14.0-2 all
default icon theme of GNOME
ii aglfn 1.7-3 all
Adobe Glyph List For New Fonts
...
1.2.3. Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Seit etwa 2004 läuft unter den Debian-Entwicklern die Diskussion um den
Support für
multiarch
[Debian-Wiki-multiarch]
. Unterstützung dafür
gibt es in Debian seit Version 7
Wheezy
und in Ubuntu seit Version
11.10
Oneiric Ocelot
. Es beschreibt zwei Dinge:
Systeme, auf denen Sie Pakete unterschiedlicher Architekturen
nebeneinander benutzen können.
Architekturspezifische Pakete, die explizit auf mehreren
Architekturen installierbar sind.
Die Gründe für diese Mischung sind vielfältig:
die Existenz von Systemen mit (nahezu) identischen Prozessorbefehlen
Instruction Set
), aber unterschiedlicher Verarbeitungsbreite. Dazu
zählen z.B.
i386
x86_64
ppc
ppc64
sparc
sparc64
und
s390
s390x
. Unterstützung hierfür gibt es bei RedHat/Fedora unter
dem Namen
biarch
bereits länger
[biarch]
Dies ist insbesondere relevant bei proprietärer, nicht-quelloffener
Software, die für 32-Bit-Linux kompiliert wurde, aber auf einem
64-Bit-System installiert bzw. verwendet werden soll.
Systeme, die gemischte Prozessorbefehle unterstützen – entweder als
Emulation in Hardware oder per Software. Dazu gehören z.B.
i386
ia64
mittels Hardware-Emulation und
arm
/jede Plattform (via Qemu
Userland-Emulation).
gemischte Betriebssystemumgebungen. Darunter fallen die Verwendung und
Ausführung von Binärcode anderer Plattformen über eine
Kompatibilitätsebene. Beispiele dafür sind Linux/
i386
auf
FreeBSD/
i386
und Solaris/
sparc
auf Linux/
sparc
Cross-Kompilieren. Darunter fällt das Übersetzen von Programmcode für
eine andere Zielplattform.
Um diese Eigenschaft zu ermöglichen, bedarf es z.T. erheblicher
Änderungen in den Übersetzungswerkzeugen und der Integration von Daten
in der Dateistruktur. Dieser Vorgang ist bislang noch nicht vollständig
abgeschlossen.
Benötigen Sie Pakete von einer anderen Architektur — bspw. ein
i386
-Paket (32 bit) auf einer
amd64
-Installation (64 bit) — ist
diese parallele Installation und Benutzung der Software durchaus
möglich. Wir zeigen Ihnen in
Abschnitt 2.12, „Multiarch einsetzen“
, wie Sie diesen
Schritt mit
dpkg
und
apt
erfolgreich bewerkstelligen.
1.2.4. Bevor es Multiarch gab
Wie oben bereits beschrieben, ist einer der Gründe hinter
multiarch
das
Nutzen bereits kompilierter 32-Bit-Software auf 64-Bit-Systemen. Der Bedarf
hierfür war auch schon vor der Entstehung von
multiarch
sehr groß.
Der Aufwand, alle üblicherweise genutzten
Shared Libraries
(zu dt.:
gemeinsam genutzte Bibliotheken) der 32-Bit-Architektur
i386
zusätzlich
auch noch als eigenes
amd64
-Binärpaket anzubieten, ist immens. Pakete
dieser Form tragen üblicherweise das Präfix
ia32-
im Paketnamen. Vor
der Entstehung von
multiarch
wurden daher
alle
notwendigen
32-Bit-Bibliotheken in ein einziges
amd64
-Binärpaket namens
ia32-libs
[Debian-Paket-ia32-libs]
gepackt. Dieses Paket umfasste am
Ende etwa stolze 800 MB und wurde in regelmäßigen Abständen mit den
Sicherheitsaktualisierungen der entsprechenden Bibliotheken
aufgefrischt.
Allein die Pflege dieses Pakets war schon recht mühsam. Ab der
Einführung von
multiarch
wurde es gegenstandslos. Darum ist es in
Debian 7.0
Wheezy
ein (leeres) Übergangspaket auf die passenden
multiarch
-fähigen Einzelpakete der Architektur
i386
. In Debian 8
Jessie
ist es bereits nicht mehr enthalten, auch wenn man selbst
heutzutage hier und da noch Pakete von Drittparteien findet, die davon
abzuhängen scheinen.
1.3. Vom
tar.gz
zur Linux-Distribution
Der Begriff Linux-Distribution bezeichnet die Zusammenfassung von
Softwarepaketen aus unterschiedlichen Quellen und deren gemeinsame
Verteilung unter einem Distributionsnamen. Einen hohen Bekanntheitsgrad
haben heute z.B. RedHat/Fedora, Debian, SuSE-Linux, Ubuntu, Knoppix und
Linux Mint erreicht.
Die Vorteile einer Distribution liegen klar auf der Hand: aktuelle,
stabile Versionen der Programme und insbesondere die Abstimmung der
einzelnen Pakete aufeinander. Letzteres leistet der Distributor und
nimmt damit Ihnen als Nutzer erhebliche Arbeit ab. Sie können sich
darauf konzentrieren, die Distribution bzw. die Programme daraus zu
verwenden.
Die ersten Linux-Distributionen entstanden zu Beginn der 1990er Jahre.
Zu den Pionieren zählen Yggdrasil, SLS, Slackware, SuSE, RedHat und
Debian. Bis dahin gab es kaum spezifische Pakete für jedes System –
jeder Anwender passte die Software nach seinen eigenen Bedürfnissen an
und pflegte diese Version dann kontinuierlich weiter. Zumeist waren das
einfache
tar.gz
-Archive, die von Hand ergänzt und vorrangig für das
eigene System übersetzt wurden.
Ein automatisiertes Verwalten der Software war zu diesem Zeitpunkt noch
nicht möglich, weil die Strukturen nicht erdacht und umgesetzt waren.
Abhängigkeiten der Software ließen sich nicht automatisch auflösen. Als
Benutzer mussten Sie einerseits wissen, welche Software einander bedingte,
und andererseits, welche Versionen und Varianten sich miteinander
vertrugen. Namensgleiche Dateien und Verzeichnisse waren problematisch.
Die große Kunst bestand im Wissen, in welcher Reihenfolge Sie zueinander
passende Versionen von Software zunächst auswählen und diese nachfolgend
auf Ihrem Linuxsystem installieren und konfigurieren mussten.
1.4. Debians Paketsystem
Aus diesen Erfahrungen heraus startete 1993 das Debian-Projekt unter Ian
Murdock
[Debian-History]
mit einer revolutionären Idee: dem
Bereitstellen kompilierter, vorkonfigurierter und sauber aufeinander
abgestimmter Softwarepakete. Es folgte die Entwicklung von
dpkg
welches bis heute ein robuster Grundstein des Systems geblieben ist.
Dabei steht
für
Debian
und
pkg
für
Package
. Das verwendete
deb
-Paketformat und die dazugehörigen Werkzeuge wurden später von
etlichen Linux-Distributionen übernommen. Ausführlicher beleuchten wir
diesen Aspekt in
Abschnitt 1.5, „Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement“
Bald aber stieß das Werkzeug
dpkg
an Grenzen: Es installiert lediglich
deb
-Pakete, löst aber die Abhängigkeiten zwischen einzelnen Paketen
nicht automatisch auf. Zudem muss das Paket bereits lokal vorliegen,
d.h.
dpkg
kann es nicht direkt aus einem FTP- oder HTTP-Archiv
beziehen.
Daraufhin begann die Entwicklung von
dselect
, welches aus dem
Quellcode von
dpkg
gebaut wird, aber als eigenständiges Programm
gilt. Später folgten
console-apt
(inzwischen aufgegeben) und
tasksel
(siehe
Abschnitt 6.3.1, „tasksel“
), ab 1998 APT (
Advanced Packaging Tool
sowie ab 1999
aptitude
als Ncurses-basierte Oberfläche für
dpkg
dselect
wurde später weiterentwickelt und konnte somit auch APT als
Backend benutzen.
Dabei lag die Zielrichtung auf der konsequenten Anwendung des
UNIX-Prinzips „Ein Werkzeug für eine Aufgabe“. Das zeigt sich
insbesondere darin, dass sich APT und
aptitude
an
dpkg
andocken und
die verfügbaren Funktionen integrieren, indem die Programme bereits
bestehende
dpkg
-Bibliotheken mitnutzen. Weitere Details dazu finden
Sie in
Abschnitt 2.3, „Softwarestapel und Ebenen“
Heute stehen weitere textbasierte und graphische Benutzeroberflächen für
dpkg
zur Verfügung. Neben
aptitude
sind das Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
), PackageKit (siehe
Abschnitt 6.4.4, „PackageKit“
) – als Basis für
Gnome-PackageKit und Apper bei KDE – sowie Muon (siehe
Abschnitt 6.4.2, „Muon“
),
PackageSearch (siehe
Abschnitt 13.4, „Debtags-Werkzeuge“
) und SmartPM (siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
). Einen genaueren Blick werfen wir auf diese Programme in
Kapitel 6,
Werkzeuge zur Paketverwaltung (Überblick)
1.5. Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement
Debian-Binärpakete liegen in einem spezifischen Format vor – dem
deb
-Paketformat. Sowohl das Format, als auch die dazugehörigen
Werkzeuge haben innerhalb der letzten 20 Jahre bei weitaus mehr
UNIX-artigen Betriebssystemen Einzug gehalten, als es auf den ersten
Blick zu vermuten wäre.
Vereinfacht gesagt, basiert praktisch jedes Debian-Derivat auf den beiden
Konzepten. Die Übersicht in
Kapitel 52,
Paketformat im Einsatz
zeigt eine
Auswahl, jeweils ergänzt um den spezifischen Einsatzbereich. Bis auf den
Univention Corporate Server (UCS) sind alle der genannten Derivate
kostenfrei verfügbar.
[4]
„The
project consists of a group of people who are working together to create
something that, primarily, we all want to use“
[Allbery-Debian-Popularity]
Kapitel 2. Software in Paketen organisieren
2.1. Was ist Paketmanagement
Paketmanagement beschreibt die geordnete Verwaltung der einzelnen
Softwarepakete auf ihrem System. Ziel ist dabei, dass Ihr Linux-System
funktionstüchtig und benutzbar bleibt, insbesondere wenn Sie vorhandene
Software aktualisieren, entfernen oder auch neue Software ergänzen.
Es umfasst daher nicht nur den Abgleich der lokalen Paketdatenbank mit
den eingetragenen Paketverzeichnissen (
Repositories
), sondern auch die
Auflistung der verfügbaren und derzeit verwendeten Pakete mit deren
jeweiligen Statusinformation. Dazu gehört etwa die Paketbeschreibung, ob
das Paket vollständig installiert ist und, falls ja, welche Version
derzeit verwendet wird.
Weiterhin zählt zum Paketmanagement die automatische Auflösung von
Paketabhängigkeiten. Das vereinfacht die Benutzung erheblich, da Sie die
einzelnen Abhängigkeiten der Pakete nicht vorab recherchieren müssen.
Diese Abhängigkeiten beeinflussen den lokalen Paketbestand und die
Reihenfolge notwendiger Änderungen beim Hinzufügen, Aktualisieren oder
Entfernen einer Paketauswahl. Daran schließen sich die plattform- und
hardwarespezifische Konfiguration vor und nach der Installation von
Paketen über die sogenannten Maintainer-Skripte an, die
dpkg
automatisch anstößt. Mehr Informationen dazu finden Sie in
Abschnitt 4.2, „Aufbau und Format“
Die Distribution selbst bzw. die verantwortlichen Paketmaintainer
kümmern sich bei der Übersetzung und Bereitstellung der Pakete darum,
dass die nachfolgende Zusammenstellung der Paketliste harmonisch ist und
die verschiedenen Versionen der einzelnen Softwarepakete aufeinander
abgestimmt sind. Jedes
deb
-Paket verfügt über eine Beschreibung in
Textform sowie eine Liste der Pakete, von denen es abhängt – bei Bedarf
sogar samt Versionsangabe.
Die Aktualisierung einer bereits bestehenden, installierten
Softwareversion durch eine andere Version beinhaltet i.d.R. eine
fehlerbereinigte oder erweiterte Variante des Programms. Das kann eine
individuelle Sicherheitsaktualisierung sein, das Installieren eines
sogenannten
Debian Backports
, d.h. eine neuere Paketversion wird für
eine vorherige Veröffentlichung zurückportiert, aber auch im Rahmen
einer Aktualisierung auf eine neue Veröffentlichung der Distribution
(siehe
Abschnitt 2.10, „Veröffentlichungen“
) stattfinden. Dass letzteres überhaupt
möglich ist, ist noch lange nicht bei allen Distributionen
selbstverständlich. Lange Zeit war dies ein Alleinstellungsmerkmal von
Debian und auch heute noch bieten einige Debian-Derivate diese
Eigenschaft nicht. Gleiches gilt für den Wechsel auf eine zurückliegende
Softwareversion, einen sogenannten
Downgrade
. Dies wird allerdings
auch bei Debian nicht explizit unterstützt, funktioniert aber dennoch in
den meisten Fällen.
Im Detail erklären wir Ihnen die Thematik unter Pakete aktualisieren
(siehe
Abschnitt 8.41, „Pakete aktualisieren“
), Distribution aktualisieren (siehe
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
), Paket downgraden (siehe
Abschnitt 8.42, „Pakete downgraden“
) und dem Debian Backports Archiv (siehe
Kapitel 19,
Backports
).
Nachfolgende Ausgaben zeigen zweierlei – die Liste aller Pakete am
Beispiel von
dpkg
und die ausführliche Übersicht auf der Basis von
apt-cache
. Ersteres listet alle installierten Pakete zur
Textverarbeitung Abiword auf. Ersichtlich ist der Installationsstatus
(erste Spalte), der Paketname und die Paketversion (zweite und dritte
Spalte) sowie eine Paketbeschreibung (vierte Spalte). Auf das Werkzeug
dpkg
gehen wir en detail in den beiden Abschnitten Softwarestapel und
Ebenen (
Abschnitt 2.3, „Softwarestapel und Ebenen“
) und dpkg (
Abschnitt 6.2.1, „
dpkg
) ein.
Ausgabe aller derzeit installierten Pakete für Abiword mit
dpkg
$ dpkg -l "abiword*"
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-===================-==============-==============-============================================
ii abiword 2.9.2+svn20120 i386 efficient, featureful word processor with co
ii abiword-common 2.9.2+svn20120 all efficient, featureful word processor with co
ii abiword-plugin-gram 2.9.2+svn20120 i386 grammar checking plugin for AbiWord
ii abiword-plugin-math 2.9.2+svn20120 i386 equation editor plugin for AbiWord
In Beispiel zwei nutzen wir
apt-cache
mit dem Parameter
showpkg
, um
weitere Details zum Paket
abiword-common
zu erhalten. Neben der
Versionsnummer sind auch die Paketquelle, die Paketsignaturen sowie die
Abhängigkeiten zu weiteren Paketen genannt. Die Pakete stammen aus dem
main
-Zweig von Debian 7
Wheezy
, sind für die Architektur i386 kompiliert
und wurden vom deutschen FTP-Server des Debian-Projekts bezogen. Die
einzige Abhängigkeit besteht zum Paket
abiword
Auflistung der Paketdetails zum Paket
abiword-common
mittels
apt-cache
$ apt-cache showpkg abiword-common
Package: abiword-common
Versions:
2.9.2+svn20120603-8 (/var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages
MD5: 168081fc8391dc5eb8f29d63bb588273
Description Language: de
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-de
MD5: 168081fc8391dc5eb8f29d63bb588273
Description Language: en
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-en
MD5: 168081fc8391dc5eb8f29d63bb588273

Reverse Depends:
abiword,abiword-common 2.9.2+svn20120603-8
Dependencies:
2.9.2+svn20120603-8 -
Provides:
2.9.2+svn20120603-8 -
Reverse Provides:
2.2. Varianten und Formate für Softwarepakete
Auf Linux-Systemen herrscht in Bezug auf das Paketformat keine
Einheitlichkeit. Jede Linux-Distribution legt selbst fest, welches
Paketformat sie verwendet. Zwei dieser Formate haben eine sehr hohe
Verbreitung erlangt –
rpm
und
deb
. Slackware Linux nutzt hingegen
ein schlichtes
tar
-Archiv, welches entweder mit
gzip
oder ab Release
13 mit
xz
komprimiert wird (siehe
Tabelle 2.1, „Übersicht zu Paketformaten und deren Verbreitung“
).
Tabelle 2.1. Übersicht zu Paketformaten und deren Verbreitung
Abkürzung
Format
in Verwendung
Distribution
deb
Debian-Paketformat
seit 1993
Debian, Ubuntu, Grml, Knoppix, Linux Mint …
rpm
Redhat Package Manager
seit 1995
RedHat/Fedora, CentOS, Mandrake/Mandriva/Mageia, SuSE/openSUSE, …
apk
Android-Paketformat
seit 2003
Android
ipkg
Itsy Package Management System, Vorbild
deb
2001 bis 2006
Unslung, OpenWrt, OpenMoko, webOS, Gumstix, iPAQ, QNAP (als Plugin), Synology (als Zusatz)
opkg
OpenMoko Package Management System,
ipkg
-Fork
seit 2006
OpenMoko, OpenWrt, OpenZaurus, OpenEmbedded
pkg.tar.gz
Pacman
seit 2002
Arch Linux
tar.gz
tar.xz
mit
gzip
bzw.
xz
komprimiertes
tar
-Archiv
seit
1993 (2009)
Slackware
Seit 2007 bestehen Containerformate, die insbesondere mit VirtualBox und
Docker populär wurden. Ziel ist, in diesen Containern bereits fertig
installierte Anwendungen bereitzustellen. Dazu zählen bspw. die Formate
Flatpak, OpenContainers, Linux Containers (LXC), Snappy und VirtualBox
(VDI) (siehe
[Docker]
[Flatpak]
[OpenContainer]
[LXC]
[Ubuntu-Snappy-Projekt]
und
[VirtualBox]
).
Tabelle 2.2. Übersicht zu Containerformaten und deren Verbreitung
Abkürzung
in Verwendung
Distribution
Name des Debianpakets
Docker
seit 2014
Debian, Ubuntu, RedHat/Fedora, openSUSE, CentOS
docker
[Debian-Paket-docker]
Flatpak
seit 2015
RedHat/Fedora, Ubuntu, CentOS
flatpak
[Debian-Paket-flatpak]
Linux Containers (LXC)
seit 2008
Debian, Ubuntu, RedHat/Fedora, CentOS
lxc
[Debian-Paket-lxc]
OpenContainers
seit 2015
Debian, Ubuntu, RedHat/Fedora, CentOS
oci-image-tool
[Debian-Paket-oci-image-tool]
Snappy
seit 2015
Ubuntu
nicht vorhanden
VirtualBox (VDI)
seit 2007
Debian, Ubuntu, RedHat/Fedora, openSUSE, CentOS, Oracle Linux
virtualbox
(kein offizielles Debianpaket)
Ändern Sie den Paketbestand auf Ihrem System durch eine Installation,
Aktualisierung oder das Löschen eines oder mehrerer Pakete, ist in der
Regel kein Neustart des gesamten Systems erforderlich. Die Paketpflege
erfolgt bei laufendem System. Nach der Paketpflege ist üblicherweise
lediglich der dazugehörige Dienst neu zu starten. Im Normalfall passiert
dies heutzutage in den Maintainer-Skripten des Pakets und wird von der
Paketverwaltung automatisch angestoßen. Mehr Informationen zu den
Maintainer-Skripten finden Sie unter „Aufbau und Format eines
Debianpakets“ in
Abschnitt 4.2, „Aufbau und Format“
2.3. Softwarestapel und Ebenen
2.3.1. Ebenen
Die Paketverwaltung kann man leicht in zwei Ebenen aufteilen. Dabei wird
jede Ebene durch eine Reihe von Programmen und Bibliotheken
repräsentiert (siehe
Abbildung 2.1, „Schichtenmodell zur
deb
-basierten Paketverwaltung“
).
Abbildung 2.1. Schichtenmodell zur
deb
-basierten Paketverwaltung
2.3.2. Untere Ebene
Die Basis bildet
dpkg
. Dessen Aufgabe ist es a) ein bereits lokal
vorliegendes
deb
-Paket auszupacken und auf dem System einzuspielen und
b) die Inhalte eines bereits installierten
deb
-Pakets wieder aus dem
System zu entfernen. Ersteres entspricht dabei dem Kommandozeilenaufruf
dpkg -i
Paketdatei
, das zweite hingegen
dpkg -r
Paketdatei
(siehe
Abschnitt 8.38, „Pakete installieren“
und
Abschnitt 8.43, „Pakete deinstallieren“
).
Für Statusabfragen zu einem einzelnen Paket stützt sich
dpkg
auf die
beiden Hilfsprogramme
dpkg-deb
und
dpkg-query
. Dazu gehören bspw.
die Schalter
-c
und
-L
zum Anzeigen des Inhalts eines Pakets (siehe
Abschnitt 8.26, „Paketinhalte anzeigen“
) sowie
-l
zur Auflistung der
installierten Pakete (siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
),
-s
zum Erfragen des Paketstatus (siehe
Abschnitt 8.4, „Paketstatus erfragen“
) und
-S
, um das Paket zu finden, in dem eine bestimmte Datei vorkommt
(siehe
Abschnitt 8.24, „Paket zu Datei finden“
).
Mit
dpkg
können Sie Ihre Pakete verwalten und das System vollständig
pflegen. Jedoch müssen Sie sich dann aber selbst um alle
Komfortfunktionen kümmern.
dpkg
prüft nur, ob alle Abhängigkeiten zu
anderen Paketen erfüllt sind und beendet im Fehlerfall die Aktion. Es
nimmt Ihnen weder die automatische Auflösung von Paketabhängigkeiten,
noch die richtige Reihenfolge bei der Installation der Pakete ab. Diese
Mühe erleichtern Ihnen die Werkzeuge der oberen Ebene.
Paketverwaltung bei anderen Linux-Distributionen
Das Analogon zu
dpkg
bei
rpm
-basierten Distributionen ist
rpm
, bei
Arch Linux ist es Pacman und bei Gentoo erreichen Sie die Funktionalität
durch die beiden Programme
emerge
und
equery
. Eine komplette
Übersicht zu den verschiedenen Programmen finden Sie einerseits in der
Pacman-Rosetta (siehe
Abschnitt 9.7, „Pacman Rosetta“
) sowie in unserer
Übersicht im Anhang des Buches (siehe
Kapitel 51,
Kommandos zur Paketverwaltung im Vergleich
).
2.3.3. Obere Ebene
Bei
deb
-basierten Distributionen besteht die obere Ebene
typischerweise aus dem Werkzeug APT (siehe
Abschnitt 6.2.2, „APT“
). Häufig ist
mindestens eines der weiteren Programme wie
aptitude
(siehe
Abschnitt 6.3.2, „
aptitude
), Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
), Muon (siehe
Abschnitt 6.4.2, „Muon“
) oder
auch PackageKit (siehe
Abschnitt 6.4.4, „PackageKit“
) installiert. Die Auswahl
variiert und hängt von der von Ihnen gewählten Linux-Distribution und
ihren Vorlieben ab.
Alle diese Programme übernehmen die Aufgabe, Ihnen die Installation und
die Aktualisierung der einzelnen Programmpakete auf Ihrem System zu
vereinfachen und unter möglichst einer Benutzeroberfläche
zusammenzufassen. Konkret gehört dazu die Aktualisierung der Liste von
Paketen aus den Paketquellen, der Auflösung der Paketabhängigkeiten und
die Berechnung der Installationsreihenfolge der von Ihnen ausgewählten
Pakete.
Bei der Erfüllung ihrer Aufgaben stützen sich die Programme einerseits
auf die beiden Bibliotheken
libapt-inst
und
libapt-pkg
(siehe
Kapitel 5,
APT und Bibliotheken
) und andererseits auf die Werkzeuge aus der
unteren Ebene, d.h. vor allem auf
dpkg
. Es übernimmt die eigentliche
Installation, Entfernung oder Aktualisierung (siehe untere Ebene).
Sichtbar wird dies insbesondere, wenn Sie ein Paket mit
apt-get
oder
aptitude
installieren. Einen Teil der Ausgaben auf dem Terminal
steuern
dpkg
und die o.g. Bibliotheken bei.
2.3.4. Paketformate und -werkzeuge anderer Distributionen
Bei
rpm
-basierten Distributionen RedHat, Fedora und CentOS heißen die
Werkzeuge Yellowdog Updater Modified (YUM)
[YUM]
, bei SuSE und
openSUSE Zypper
[Zypper]
und Yet another Setup Tool (YaST). Mageia
Linux und Rosa Linux nutzen hingegen
urpmi
[Mageia-urpmi]
rpmdrake
[rpmdrake]
setzt auf
urpmi
auf und ist das Pendant zum
graphischen Werkzeug Synaptic. Aufgrund der einfachen Benutzbarkeit wird
es häufig Einsteigern empfohlen.
2.3.5. Werkzeuge, die verschiedene Paketformate unterstützen
Darüber hinaus gibt es Programme, die mit mehreren unterschiedlichen
Paketformaten umgehen können. Dazu zählen Muon (siehe
Abschnitt 6.4.2, „Muon“
), der
Smart Package Manager (SmartPM) (siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) und PackageKit
(siehe
Abschnitt 6.4.4, „PackageKit“
). Muon und SmartPM können die Paketformate
deb
rpm
und
tar.gz
(Slackware) verarbeiten sowie die bereits oben
genannten Verwaltungen APT, YUM und
urpmi
ansprechen. Weitere
Informationen dazu finden Sie unter „Frontends für das
Paketmanagement“ in
Abschnitt 6.1, „Frontends für das Paketmanagement“
2.4. Alternativen zu APT
APT mit
apt-get
und
apt-cache
ist erprobt, zuverlässig und daher
weit verbreitet. Dennoch gibt es Programme, die die gleichen
Funktionalitäten wie APT implementieren. Dabei gibt es verschiedene
Kategorien von Alternativen:
Alternative Benutzerschnittstellen
Hierzu zählen u.a. die im Buch vorgestellten Programme
aptitude
, Muon,
Synaptic und wajig (siehe
Abschnitt 6.3.2, „
aptitude
Abschnitt 6.4.2, „Muon“
Abschnitt 6.4.1, „Synaptic“
und
Abschnitt 6.2.3, „
wajig
). Diese setzen auf den APT-Bibliotheken auf und sind nur
Alternativen zu den Kommandozeilentools
apt-get
und
apt-cache
, nicht
aber zu APT als Ganzes.
Vorgänger
Bevor es APT gab und an Popularität gewann, wurden Paketlisten und
Pakete mit
dselect
heruntergeladen (Recherchen ergaben etwa das Jahr
1998).
dselect
ist Bestandteil des
dpkg
-Projekts und wird heute noch
aus den Quellen von
dpkg
gebaut. Allerdings benutzt es für viele
Funktionalitäten mittlerweile ebenfalls APT als Backend, insbesondere
für das Herunterladen von Paketen.
dselect
hat heute keine Relevanz
mehr (liegt quasi im Wachkoma) und wird daher im Buch nicht weiter
besprochen.
Potentielle Nachfolger
APT ist nicht mehr ganz jung, und es wurden in der Vergangenheit
Design-Entscheidungen getroffen, welche aus heutiger Sicht eher als
weniger gelungen gelten, sich aber nicht mehr oder zumindest nur mit
sehr viel Aufwand korrigieren lassen. Eugene V. Lyubimkin war einer der
APT-Entwickler und hat sich aus o.g. Grund aus der APT-Entwicklung
zurückgezogen und eine Re-Implementierung von APT namens
Cupt
[Debian-Wiki-cupt]
geschrieben (siehe
Abschnitt 6.2.5, „Cupt“
).
2.5. Zusammenspiel von dpkg und APT
Wie bisher gezeigt wurde, bauen
dpkg
, APT und Freunde aufeinander
auf. Dabei gibt es eine Reihe von Bibliotheken und weiteren Programmen,
die zur Nutzung dieser Werkzeuge ebenfalls notwendig sind.
APT hängt vor allem von der aus dem APT-Quellcode gebauten Bibliothek
libapt-pkg
, von
gnupg
und
debian-archive-keyring
ab.
libapt-pkg
stellt eine Schnittstelle für den Zugriff auf die Debianpakete bereit
(siehe „APT und Bibliotheken“ in
Kapitel 5,
APT und Bibliotheken
). Die beiden
anderen Pakete werden hingegen für die Validierung von digitalen
Signaturen benötigt (siehe „Bezogenes Paket verifizieren“ in
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
).
dpkg
ist ein sog.
essentielles
Paket (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
), hat also eher wenig
Abhängigkeiten. Die meisten davon sind selbst
essentielle
Pakete und
müssen daher nicht namentlich als Abhängigkeit in den Metadaten des
Pakets aufgeführt werden. Deshalb tauchen sie nur unter bestimmten
Umständen explizit in den Abhängigkeitslisten auf, z.B. wenn bestimmte
Einschränkungen bzgl. der Version bestehen.
Bei
aptitude
und den meisten anderen Frontends ist dies anders, denn
diese sind alle um eine ganze Spur komplexer. Bei
aptitude
kommt z.B.
noch die Benutzeroberfläche auf der Basis von Ncurses
[Ncurses]
hinzu.
Abbildung 2.2, „Paketabhängigkeiten von APT“
Abbildung 2.3, „Paketabhängigkeiten von
dpkg
und
Abbildung 2.4, „Paketabhängigkeiten von
aptitude
und APT“
zeigen die
minimalen Paketabhängigkeiten für APT,
dpkg
und
aptitude
in
graphischer Form.
Abbildung 2.2. Paketabhängigkeiten von APT
Abbildung 2.3. Paketabhängigkeiten von
dpkg
Abbildung 2.4. Paketabhängigkeiten von
aptitude
und APT
Die Grafiken in den drei obigen Abbildungen erzeugen Sie mit Hilfe der
beiden Programme
debtree
[Debian-Paket-debtree]
(siehe
[debtree-Projektseite]
) und
dot
[Graphviz]
. Ersteres berechnet
über die Metadaten in den Paketlisten die Abhängigkeiten zu anderen
Paketen und erzeugt daraus eine entsprechende Beschreibung des
Abhängigkeitsgraphen in der Sprache
dot
Erzeugung der Abhängigkeitsgraphen zu
dpkg
mittels
debtree
$ debtree dpkg
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
digraph "dpkg" {
rankdir=LR;
node [shape=box];
"dpkg" -> "libbz2-1.0" [color=purple,style=bold];
"dpkg" -> "liblzma5" [color=purple,style=bold,label="(>= 5.1.1alpha+20120614)"];
"dpkg" -> "libselinux1" [color=purple,style=bold,label="(>= 2.3)"];
"libselinux1" -> "libpcre3" [color=blue,label="(>= 8.10)"];
"dpkg" -> "tar" [color=purple,style=bold,label="(>= 1.23)"];
"tar" -> "libacl1" [color=purple,style=bold,label="(>= 2.2.51-8)"];
"libacl1" -> "libattr1" [color=blue,label="(>= 1:2.4.46-8)"];
"libacl1" -> "libacl1-kerberos4kth" [color=red];
"tar" -> "libselinux1" [color=purple,style=bold,label="(>= 1.32)"];
"dpkg" [style="setlinewidth(2)"]
"libacl1-kerberos4kth" [style=filled,fillcolor=oldlace];
I: The following dependencies have been excluded from the graph (skipped):
I: libc6 multiarch-support zlib1g
// Excluded dependencies:
// libc6 multiarch-support zlib1g
// total size of all shown packages: 11501568
// download size of all shown packages: 4358750
Das zweite Kommando
dot
wandelt diese Beschreibung über den Schalter
-T
Ausgabeformat
in eine hübsche Grafik um. Als Ausgabeformat
unterstützt
dot
derzeit bspw. PostScript, Structured Vector Graphics
(SVG), GIF, PNG und FIG (für die Verwendung in
xfig
). Beachten Sie
bitte, dass
dot
im Aufruf zwischen dem Schalter und dem von Ihnen
gewählten Ausgabeformat kein Leerzeichen erlaubt.
Für
dpkg
erhalten Sie die Abbildung im Bildformat
Portable Network
Graphics
(PNG) mit dem nachfolgend gezeigten Aufruf auf der
Kommandozeile. Dabei wird die Ausgabe des
debtree
-Kommandos nicht auf
dem Terminal sichtbar, sondern wird mit dem Pipe-Operator
direkt an
das Programm
dot
weitergegeben, welches es als Eingabe verarbeitet.
Die Ausgabe von
dot
– die erzeugte Bilddatei – wird danach mit dem
Umleitungsoperator
in die Datei
dpkg.png
im aktuellen Verzeichnis
umgeleitet.
Erzeugung der Abhängigkeitsgraphen und Speicherung als Rastergrafik.
$ debtree dpkg | dot -Tpng > dpkg.png
2.6. Vom monolithischen Programm zu Programmkomponenten
Computerprogramme sind vergleichbar mit Kochrezepten und umfassen eine
Folge von Anweisungen, die nacheinander abgearbeitet werden. Einfachere,
kleine Programme sind häufig noch überschaubar und somit monolithisch.
Sie beinhalten den gesamten Programmcode, der in einer einzigen Datei
bereitgestellt wird.
Während zu Beginn der Informationsverarbeitung noch eine Tontafel, ein
Holzstab mit Einkerbungen, ein Blatt Papier oder auch nur ein
Lochstreifen zur Erfassung einer Folge von Anweisungen ausreichte, passt
heutiger Programmcode nur noch selten auf eine einzige Bildschirmseite
[Naumann-Abakus-Internet]
. Ein Großteil der aktuell genutzten Software
ist daher mehrteilig und überaus komplex. Dabei spielen viele,
unterschiedliche Komponenten zusammen, erfüllen verschiedene Aufgaben
und bedingen einander. Dazu gehören kompilierte Programme, Skripte,
Bibliotheken, Daten und Konfigurationsdateien.
Die Paketierung der einzelnen Komponenten folgt eigenen Regeln, deren
Konventionen nur zum Teil festgeschrieben sind und sich auch von
Distribution zu Distribution etwas unterscheiden.
Tabelle 2.3, „Paketierung der Komponenten am Beispiel von APT“
zeigt die Zerlegung in einzelne Pakete am
Beispiel von APT. Dabei beinhaltet die linke Spalte den generischen
Paketnamen ohne Nennung von Versionsnummer und Architektur, die mittlere
Spalte die Kategorie, der das Paket zugeordnet ist (siehe „Sortierung
der Pakete nach Verwendungszweck“ in
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
) und die rechte Spalte
eine kurze Paketbeschreibung. Auf die genannten Bibliotheken gehen wir
genauer in „APT und Bibliotheken“ in
Kapitel 5,
APT und Bibliotheken
ein.
Tabelle 2.3. Paketierung der Komponenten am Beispiel von APT
Paketname
Paketkategorie
Komponente und Bedeutung
apt
Administration (
admin
Paketmanager für die Kommandozeile (siehe
Abschnitt 6.2.2, „APT“
apt-doc
Dokumentation (
doc
Dokumentation zum Paket
apt
apt-transport-https
Administration (
admin
APT-Plugin für HTTPS-Support (obsolet seit APT 1.5)
apt-utils
Administration (
admin
Hilfsprogramme für APT
libapt-instX.Y
Bibliotheken (
libs
Laufzeitbibliothek zum Paketformat
libapt-pkg.X.Y
Bibliotheken (
libs
Laufzeitbibliothek zur Paketverwaltung
libapt-pkg-dev
Bibliotheken zur Entwicklung (
libdevel
Entwicklerdateien zu
libapt-pkg
libapt-pkg-doc
Dokumentation (
doc
Dokumentation zur Laufzeitbibliothek
libapt-pkg
libapt-pkg-perl
Bibliotheken (
libs
Laufzeitbibliothek zur Paketverwaltung, Perl-Schnittstelle
Benennung eines Debianpakets und Paketkategorien
In
Abschnitt 2.11, „Benennung einer Paketdatei“
beleuchten wir die Benennung und
Abfolge der Komponenten in den Paketnamen. Eine genaue Auflistung und
zur Bedeutung der Paketkategorien lesen Sie in
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
nach.
Die Ideen hinter der Zerlegung in einzelne Komponenten sind ganz
unterschiedlich und ergeben sich aus der Entwicklung, dem Ausrollen und
der nachfolgenden Pflege einer Software. Hauptmotivation ist dabei
häufig, nicht das Rad jedes Mal neu erfinden zu müssen und stattdessen
bereits bestehende Komponenten zu integrieren, die etabliert sind und
bekanntermaßen einen gewissen Qualitätsstandard erfüllen. Im
Open-Source-Bereich erfolgt die Entwicklung weltweit verteilt, daher ist
hier eine Zerlegung in kleinere Einheiten und „Bausteine“ häufig von
großem Nutzen. Aufgaben und Komponenten können dadurch besser an kleine,
spezialisierte Teams verteilt werden.
2.7. Debian-Pakete (Varianten)
Wird von einem Debianpaket gesprochen, ist meist ein Binärpaket mit der
Dateiendung
deb
gemeint. Dieses beinhaltet Software oder Daten, welche
Sie sofort auf einem Computer mit Debian GNU/Linux installieren können.
Darüberhinaus gibt es aber auch noch andere Paketarten in Debian. Das
wichtigste davon sind die Sourcepakete (siehe
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
), die den
Quellcode enthalten, aus dem später eines oder mehrere Binärpakete
(siehe
Abschnitt 2.7.1, „Binärpakete (
deb
)“
) gebaut werden.
2.7.1. Binärpakete (
deb
Binärpakete beinhalten Programme in kompilierter Form, die vorher bspw.
in C oder einer ähnlichen Programmiersprache geschrieben wurden.
Weiterhin beinhaltet es häufig noch Konfigurationsdateien, Dokumentation
und weitere Daten in exakt dem Zustand, wie sie nachher auch auf der
Festplatte Ihres Rechners vorliegen.
Bei der Installation eines
deb
-Pakets entpackt das Programm
dpkg
zuerst das Archiv aus dem
deb
-Paket und kopiert danach die Inhalte des
Archivs an die vorbezeichnete Stelle in der Verzeichnishierarchie auf
dem Zielsystem. Alle im Archiv genannten Pfade und Berechtigungen werden
dabei übernommen.
Außerdem sind in den Binärpaketen Metadaten gespeichert, die solche
Informationen wie bspw. die Abhängigkeiten zu anderen Paketen
enthalten. Weitere Details dazu erfahren Sie unter „Konzepte und Ideen
dahinter“ (siehe
Abschnitt 4.1, „Konzepte und Ideen dahinter“
) sowie „Aufbau und
Format von Binärpaketen“ (siehe
Abschnitt 4.2.3, „Binärpakete“
).
Wie bereits oben benannt, hat ein Binärpaket üblicherweise die
Dateiendung
deb
und wird auch durch das UNIX-Kommando
file
entsprechend als solches erkannt. Nachfolgende Ausgabe zeigt
dieses Verhalten am Beispiel des Pakets
vnstat
, eines Programms zur
Analyse des Netzwerktraffics.
Das UNIX-Kommando
file
identifiziert die
deb
-Datei als Debianpaket.
$ file vnstat_1.10-1_i386.deb
vnstat_1.10-1_i386.deb: Debian binary package (format 2.0)
2.7.2. Übergangspakete, Metapakete und Tasks
Es gibt ein paar besondere Varianten von Binärpaketen –
Übergangspakete
und
Metapakete
. Vom Aufbau her unterscheiden sich diese nicht von normalen
Binärpaketen, aber vom Inhalt. Übergangspakete und Metapakete sind reguläre
Binärpakete, die jedoch im Normalfall keine eigenen Programme, Daten oder
ähnliches beinhalten. Stattdessen liefern diese Abhängigkeiten auf andere
Pakete.
Übergangspakete
werden bei Paketumbenennungen verwendet und dienen nur
dazu, Ihnen den Wechsel bei geänderten (Binär-)Paketnamen zu
erleichtern. Damit wird bei einer Aktualisierung eines bestehenden
Pakets das Paket mit dem neuen Namen nachgezogen. In den meisten Fällen
können Sie nach der Aktualisierung das Paket mit dem bisher verwendeten
Namen gefahrlos von ihrem System entfernen. Nicht selten passiert dies
bereits automatisch über die Paketverwaltung durch weitere, ggf.
negative Abhängigkeiten.
Übergangspakete hängen meist nur von einem einzigen anderen Paket ab.
Beispiele dafür sind:
git
gnuit
und dann später
git-core
git
chromium
chromium-bsu
und dann später
chromium-browser
chromium
diff
diffutils
ttf-mplus
fonts-mplus
Metapakete
sind hingegen bewusst installierte Pakete, die Ihnen die
Installation einer ganzen Gruppe von Paketen erleichtern. Als
Abhängigkeiten zieht ein Metapaket eine Gruppe von verwendeten Paketen
hinter sich her. Auf diese Art und Weise installieren Sie durch die
Auswahl eines einzelnen Pakets eine ganze Gruppe an weiteren Paketen,
die thematisch zusammengehören und sich häufig auch einander bedingen.
Das ist sehr nützlich, wenn Sie sich sicher sind, dass Sie eine bereits
vorbereitete Zusammenstellung von Programmen benötigen. Für die
Desktop-Umgebung XFCE genügt es beispielsweise, das dazugehörige
Metapaket namens
xfce4
auszuwählen. Andere Programmzusammenstellungen
wie
gnome
(GNOME-Window-Manager),
lxde
(LXDE-Window-Manager) und
kde-full
(K Desktop Environment) handhaben das ähnlich.
Sehr intensiv verwendet das Projekt Communtu diese Metapakete. Über die
Webseite des Projekts stellen Sie sich individuelle Paketkombinationen
(„Bündel“) zusammen und beziehen diese von dort. Ausführlicher gehen
wir darauf in
Abschnitt 6.5.3, „Communtu“
ein.
Tasks
– auf deutsch mit „Aufgaben“ übersetzbar – sind Metapakete,
die vom Debian Installer verwendet werden, um bestimmte Paketgruppen zu
installieren. Dabei geht es vor allem um Pakete für bestimmte Sprachen
und Lokalisierungen. Zum Beispiel hängt die Aufgabe
task-german-desktop
u.a. von den Paketen mit den deutschsprachigen
Hilfedateien und Wörterbüchern von LibreOffice ab. Ähnliches existiert
für Serverfunktionen, bspw.
task-dns-server
und
task-database-server
. Diese Funktionalität stammt vom Paket
tasksel
und wird ab Debian 7
Wheezy
vermehrt verwendet. Auf das angesprochene
Programm
tasksel
gehen wir in
Abschnitt 6.3.1, „tasksel“
ausführlicher ein.
Aufbau und Format von Übergangs- und Metapaketen
Mehr Informationen zum Aufbau dieser Pakete finden Sie unter „Aufbau
und Format von Übergangs- und Metapaketen“ in
Abschnitt 4.2.4, „Übergangs- und Metapakete“
Metapakete selber bauen
Wie Sie ihre eigenen Metapakete erstellen und diese dann auch zum Bezug in
einem Repository bereithalten, lernen Sie unter „Metapakete bauen“ in
Kapitel 22,
Metapakete bauen
2.7.3. Mikro-Binärpakete
Mikro-Binärpakete
tragen die Dateiendung
udeb
, wobei das
den
griechischen Buchstaben
Mu
(„µ“) repräsentiert. Sie sind technisch
keine gewöhnlichen Binärpakete, sondern aufs Kleinste heruntergestutzte
Pakete. Sie kennen nur eine einzige Art von Paketrelation namens „hängt
ab von“. Desweiteren beinhalten sie keine Maintainer-Skripte und führen
auch sonst kaum Metainformationen mit.
Einziger Einsatzzweck dieser Mikro-Debs ist im Debian Installer während
des Zeitpunkts der Installation. Deswegen gibt es auch nur solche Pakete
als
udeb
-Variante, die vom Debian Installer selbst gebraucht werden.
Darunter zählen bspw. Pakete mit den Programmen zum Anlegen von
Dateisystemen.
2.7.4. Source-Pakete (
dsc
und weitere Dateien)
Diese Pakete beinhalten den Quellcode von Programmen und tragen das
Suffix
dsc
als Abkürzung für
Debian Source Control
. Die Bestandteile
eines solchen Paketes sind:
der Originalquellcode als ein oder mehrere komprimierte
tar
-Archive.
Je nach verwendetem Komprimierungsverfahren lauten die Dateiendungen
orig.tar.gz
orig.tar.bz2
oder
orig.tar.xz
die Änderungen vom Original zum Debianpaket als komprimierter Patch.
Diese Dateien haben klassisch die Endung
diff.gz
und wurden mit
gzip
gepackt. Liegen die Änderungen wie bei moderneren Sourcepaketen
als komprimiertes
tar
-Archiv vor, wird als Dateiendung
debian.tar.gz
oder
debian.tar.xz
genutzt. Bei Letzterem kommt anstatt von
gzip
das Komprimierungswerkzeug
xz
zum Einsatz.
eine Datei mit den Metadaten (Größe, Hashsummen, etc.) über die
vorher genannten Dateien. Genutzt wird die Dateiendung
dsc
als
Abkürzung für
Debian Source Control
Alle diese genannten Dateien stellen in der Gesamtheit ein einzelnes
Debian-Source-Paket dar und beinhalten den Upstream-Quellcode plus
Paketierung.
Auspacken von Debian-Source-Paketen
Zum Auspacken von Debian-Source-Paketen benutzen Sie das Programm
dpkg-source
aus dem Paket
dpkg-dev
[Debian-Paket-dpkg-dev]
. Müssen
Sie das Source-Paket vorher noch herunterladen, so nutzen Sie besser den
Aufruf
apt-get source
Paketname
, welcher das Source-Paket zunächst
noch vom Repository herunterlädt und danach direkt mit
dpkg-source
auspackt. Mehr Informationen zu Source-Paketen finden Sie unter „Aufbau
und Format von Sourcepaketen“ in
Abschnitt 4.2.2, „Source-Pakete“
und
„Sourcepakete beziehen“ in
Abschnitt 8.36, „Sourcepakete beziehen“
2.7.5. Virtuelle Pakete
Reale Binärpakete können zusätzlich deklarieren, dass sie die
Funktionalität eines weiteren Pakets ebenfalls bereitstellen. Existiert
dieses weitere Paket nicht auch als reales Binärpaket, wird es als
virtuelles Paket bezeichnet. Das gleiche virtuelle Paket kann hierbei
von verschiedenen Binärpaketen zur Verfügung gestellt werden.
Andere Pakete können von einem solchen virtuellen Paket abhängen. Um
diese Abhängigkeit zu erfüllen, genügt es, wenn ein Paket installiert
ist, welches dieses virtuelle Paket bereitstellt.
In Debian gibt es bspw. die virtuellen Pakete
xserver
x-display-manager
und
x-window-manager
, die typische
Komponenten des X-Window-Systems zusammenfassen.
Abbildung 2.5, „Inhalt des Pakets x-display-manager in Aptitude“
zeigt beispielhaft die Auswahl für das
virtuelle Paket
x-display-manager
in
aptitude
. In der ersten Spalte
der Darstellung kennzeichnet dazu der Buchstabe
neben dem Namen des
virtuellen Pakets diese spezielle Variante.
Zur Auswahl aus dem Paket stehen u.a. der Displaymanager Slim (Paket
slim
), der Gnome Display Manager in Versionen 2 und 3 (Pakete
gdm
und
gdm3
), der KDE Display Manager (Paket
kdm
), der WINGs Display
Manager und der ursprüngliche X Display-Manager (Paket
xdm
). Der
Screenshot in
Abbildung 2.5, „Inhalt des Pakets x-display-manager in Aptitude“
stammt von einem
Debian-System, auf welchem GDM3 installiert ist. Das erkennen Sie an der
Hervorhebung durch fettgedruckten Text und der Markierung
für
„Paket ist installiert“ in der ersten Spalte der Darstellung (siehe
auch
Abschnitt 6.2.1, „
dpkg
für weitere Darstellungsvarianten).
Abbildung 2.5. Inhalt des Pakets x-display-manager in Aptitude
Eine Liste aller offiziell verwendeten virtuellen Pakete in Debian gibt
es im Paketierungshandbuch auf der Debian-Webseite
[Debian-Virtual-Packages-List]
. Andere Distributionen nutzen dieses
Konzept auch, jedoch in unterschiedlicher Intensität.
2.7.6. Pseudopakete im Debian Bug Tracking System
Eine weitere Art nicht real existierender Pakete sind die sogenannten
Pseudopakete
, die Sie bei der Rückmeldung von Fehlern verwenden
können. Diese Pakete dienen dazu, um Probleme mit der
Debian-Infrastruktur aufzufangen und über das Debian Bug Tracking System
(BTS) zu verfolgen.
Finden Sie bspw. einen Fehler auf den Webseiten von Debian, so können
Sie einen Fehlerbericht gegen das Pseudopaket
www.debian.org
schreiben. Paketentfernungen aus Debian werden über Fehlerberichte gegen
das Paket
ftp.debian.org
abgehandelt. Zukünftige Pakete sowie
verwaiste Pakete werden über das Pseudopaket
wnpp
verwaltet und
verfolgt.
wnpp
ist eine Abkürzung für „Work-needing and prospective
packages“ — auf deutsch: „Arbeit bedürfende und zukünftige Pakete“.
Möchten Sie einen Fehlerbericht schreiben, wissen aber nicht, welchem
konkreten Paket der Fehler zuzuordnen ist, so können Sie einen
Fehlerbericht gegen das Pseudopaket
general
schreiben. Die
Debian-Entwickler werden danach versuchen, herauszufinden, welches reale
Paket die Ursache für den von Ihnen berichteten Fehler ist.
Fehler zu einem Paket anzeigen
Unter „Bugreports anzeigen“ in
Abschnitt 37.3, „Bugreports anzeigen“
lernen Sie, wie
Sie die bestehenden Fehlermeldungen zu einem Paket anzeigen, deuten und
einen eigenen Bugreport an das Betreuerteam des Pakets
Paket-Maintainer
) übermitteln.
2.8. Sortierung der Pakete nach Verwendungszweck
Für Debian sind inzwischen sehr viele unterschiedliche Pakete verfügbar.
Um Ihnen die Orientierung in der Paketmenge sowie die Recherche und
Auswahl daraus zu erleichtern, ordnet der Paketbetreuer – der
Verantwortliche für das Paket – dieses Paket
genau einer
bestimmten
Kategorie zu. Die Auswahl der Kategorie basiert dabei auf dem
hauptsächlichen Einsatzbereich der Software.
Abbildung 2.6, „Auflistung der verschiedenen Paketkategorien in
aptitude
zeigt die Sichtbarkeit der Kategorien bei
der Paketauswahl in
aptitude
. In jeder Kategorie sind die Pakete
zusätzlich nach ihrem Distributionsbereich (siehe
Abschnitt 2.9, „Distributionsbereiche“
) –
main
contrib
und
non-free
gruppiert. Der jeweilige Entwicklungszweig (siehe
Abschnitt 2.10, „Veröffentlichungen“
) – bspw.
stable
unstable
oder
testing
wird in dieser Darstellung nicht angezeigt, lässt sich aber bei Bedarf
als weitere Ebene in der Anzeigehierarchie konfigurieren.
Abbildung 2.6. Auflistung der verschiedenen Paketkategorien in
aptitude
Nachfolgende Übersicht listet die derzeit verwendeten Kategorien mit
Beispielpaketen auf. Der Begriff in Klammern benennt die Kurzbezeichnung
der Kategorie. Diese Zusammenstellung basiert auf Frank Ronneburgs
Auflistung aus dem Debiananwenderhandbuch
[Debian-Anwenderhandbuch]
sowie der Übersicht auf der Debian-Webseite
[Debian-Paketliste]
. Die
Kategorien
introspection
Debian
tasks
education
und
metapackages
sind derzeit noch nicht in allen Übersichten eingepflegt.
Die einzige Referenz hierfür ist das Debian Policy Manual
[Debian-Policy-Subsections]
Administration (
admin
Programme zur Systemadministration (
dpkg
apt
aptitude
adduser
Alte Bibliotheken und Übergangspakete (
oldlibs
Versionen von Bibliotheken, die nicht mehr verwendet werden sollten
sowie Übergangspakete (
gcalctool
iproute
libgnome2-0
Amateurfunk/Ham Radio (
hamradio
Software für Amateurfunker (
ax25-tools
hamfax
Andere Betriebs- und Dateisysteme (
otherosfs
Software, um Programme zu benutzen, die für andere Betriebssysteme kompiliert wurden und um die Dateisysteme anderer Betriebssysteme zu benutzen (
avr-libc
bochs
cpmtools
dosemu
fatsort
Aufgaben (
Debian
tasks
Pakete, die Ihren Rechner für eine bestimmte Aufgabe vorbereiten (siehe
Abschnitt 2.7, „Debian-Pakete (Varianten)“
) (
task-german-desktop
task-xfce-desktop
Bibliotheken (
libs
Programmbibliotheken (Libraries) (
libc6
e2fslibs
Bildung (
education
Lern- und Schulprogramme (
auto-multiple-choice
gcompris
scratch
Datenbanken (
database
Datenbankserver und -clients (
sqlite
mysql-server
mongodb
Debug-Pakete (
debug
Pakete, die Debug-Informationen für Programme und Laufzeitbibliotheken bereitstellen (
cups-dbg
evolution-data-server-dbg
Dienstprogramme (
utils
verschiedene Werkzeuge (
clamav
coreutils
debian-goodies
Dokumentation (
doc
HOWTOs, FAQs und andere Dokumentation sowie Programme, um diese zu lesen (
aptitude-doc-en
debian-faq
debian-handbook
zsh-doc
Editoren (
editors
Textverarbeitungsprogramme, Editoren für Programmierer und Entwickler (
abiword
emacs
kate
vim
Elektronik (
electronics
Programme zur Entwicklung und Simulation elektronischer Schaltungen (
arduino
verilog
Embedded (
embedded
Software, die für die Benutzung in oder mit Embedded Systemen geeignet ist (
gpe
matchbox
usbprog
urjtag
Entwicklung (
devel
Entwicklungswerkzeuge und -umgebungen, Compiler, usw. (
automake
binutils
g++
Entwicklungsbibliotheken (
libdevel
Header-Dateien zu Bibliotheken (
libc6-dev
okular-dev
zathura-dev
E-Mail (
mail
alles rund um E-Mail; Mailserver, Mailprogramme, Spamfilter, etc. (
postfix
mutt
spamassassin
GNOME (
gnome
Programme zur GNOME-Desktop-Umgebung (
etherape
evince
gnome-control-center
gnome-media
GNU R (
gnu-r
Programme um die freie Implementierung der Statistik-Sprache R (
r-base
r-mathlib
GNUstep (
gnustep
Programme zur GNUstep-Umgebung (
gnustep
gnustep-icons
Grafik (
graphics
Programme zur Bildbearbeitung (
dia
epub-utils
giftrans
gimp
Haskell (
haskell
alles rund um die Programmiersprache Haskell (
haskell-platform
happy
GObject Introspection (
introspection
GObject Introspection Middleware, Schnittstellen zwischen GObject-C-Bibliotheken und anderen Programmiersprachen
[GObject-Introspection]
gir1.2-ebook-1.2
Interpreter (
interpreters
Interpretierte Programmiersprachen wie bspw. Tcl/Tk (
luajit
m4
tcl
Java (
java
alles rund um die Programmiersprache Java (
ant
tomcat8
openjdk-7-jre
KDE (
kde
Programme zum KDE-Desktop (
apper
kdm
knotes
Kernel (
kernel
Betriebssystem-Kernel und zugehörige Module und Programme (
dkms
firmware-atheros
firmware-linux
kernel-package
linux-image-amd64
Klang (
sound
alles für den guten Ton (
alsa-utils
audacious
playmidi
xmms2
Kommunikation (
comm
Kommunikationsprogramme für externe Schnittstellen, Modems und Telefonanlagen (
cu
asterisk
hylafax-server
wvdial
Lisp (
lisp
alles zur Programmiersprache Lisp und Dialekten davon (
lush
mit-scheme
picolisp
Mathematik (
math
mathematische und wissenschaftliche Programme (
bc
concalc
euler
freemath
Metapakete (
metapackages
Paketgruppen (siehe
Abschnitt 2.7, „Debian-Pakete (Varianten)“
) (
games-finest
gnome
kde-full
gis-devel
Mono/CLI (
cli-mono
alles rund um die C#-Implementierung Mono und die
Common Language Infrastructure
monodoc-browser
Netzwerk (
net
Netzwerkserver und Clientprogramme, Programme zur Netzwerkkonfiguration (
bind9
centerim
debmirror
isc-dhcp-client
Usenet News (
news
Software für Usenet-Newsgruppen (
slrn
nget
tin
OCaml (
ocaml
alles zur Programmiersprache OCaml (
cameleon
libcurl-ocaml
ocamlwc
Perl (
perl
alles zur Programmiersprache Perl, CPAN-Module (
libaudio-file-perl
perl
perl-doc
PHP (
php
alles zur Programmiersprache PHP (
icinga-web
php5
Python (
python
alles zur Programmiersprache Python (
python3
idle
Ruby (
ruby
alles zur Programmiersprache Ruby (
ruby
ruby-xmmsclient
Schriften (
fonts
Schriften und Programme zum Verarbeiten von Schriften (
fontforge
fontconfig
xfonts-cyrillic
Shells (
shells
verschiedene Shells (
bash
fish
zsh
Spiele (
games
Spiele und Unterhaltung (
freeciv-server
gcompris
openttd
Sprachpakete (
localization
Lokalisierungsunterstützung für große Softwarepakete (
firefox-l10n-all
kde-l10n-es
libreoffice-l10n-ar
TeX (
tex
alles zum Schriftsatzsystem TeX, inkl. LaTeX und XeTeX (
dvi2ps
biblatex
gummi
Textverarbeitung (
text
Werkzeuge zum Umgang mit Textdateien (
a2ps
xpdf
wordnet
wogerman
udeb-Pakete des Debian-Installers (
debian-installer
spezielle Pakete zur Verwendung im Debian-Installer, siehe
Abschnitt 2.7.3, „Mikro-Binärpakete“
archdetect
cdrom-detect
Verschiedenes (
misc
Diverses, was sonst nirgends hineinpasst (
bochsbios
cpuburn
screen
Versionskontrollsysteme (
vcs
Versionskontrollsysteme und zugehörige Hilfswerkzeuge (
bzr
cvs
git
Video (
video
Videobetrachter, -editoren, -rekorder, -sender (
dvb-apps
dvbstream
gnome-mplayer
mpv
Web (
web
Webbrowser, Download-Tools, HTML-Editoren, usw. (
bluefish
firefox
Webserver (
httpd
Webserver und ihre Module (
apache2
nginx
lighttpd
libapache2-mod-perl2
libapache2-mod-php5
Wissenschaft (
science
Programme zum wissenschaftlichen Arbeiten (
celestia
garlic
X Window (
x11
X-Server, Window-Manager und Anderes (
xterm
xsensors
xorg-xserver
XFCE (
xfce
Programme zum XFCE-Desktop (
thunar
xfwm4
xfwm4-themes
Zope/Plone (
zope
alles rund um das Zope-Framework (
zope-common
zope2.13
Erweiterung um Debtags
Das Kategorienkonzept hat eine Reihe von Limitierungen, insbesondere die
Einordnung eines Pakets in nur eine einzige Kategorie. Um diese Grenzen
aufzuheben, gibt es das Debtags-Projekt, welches jedes Paket um passende
Schlagworte ergänzt. Dieses Konzept und die dazugehörigen Werkzeuge
stehen unter „Erweiterte Paketklassifikation mit Debtags“ (siehe
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
) im Mittelpunkt.
2.9. Distributionsbereiche
Die verschiedenen Distributionsbereiche ordnen die einzelnen Pakete
anhand ihrer Lizenzen. Das hilft Ihnen dabei, die Kontrolle über die
verwendeten Lizenzen auf Ihrem System zu behalten. Mit der Auswahl von
Paketen aus bestimmten Distributionsbereichen legen Sie somit den
„Freiheitsgrad“ Ihrer Installation fest.
In Debian sind die Softwarepakete in die folgenden drei Bereiche
unterteilt:
main
Freie Software, die den Debian-Richtlinien für freie Software (DFSG) entspricht.
contrib
Freie Software, die von unfreier Software abhängt.
non-free
Software, die
nicht
den Debian-Richtlinien für freie Software (DFSG)
entspricht, aber frei verteilbar ist.
non-free-firmware
Firmware, die
nicht
den Debian-Richtlinien für freie Software (DFSG)
entspricht, aber frei verteilbar ist. (Diesen Bereich gibt es erst ab
Debian 12
Bookworm
. Er wurde nach einer Abstimmung innerhalb von
Debian im Jahre 2022 von
non-free
abgetrennt
[gr-non-free-firmware]
. In vorherigen Veröffentlichungen waren
unfreie Firmware-Pakete im Bereich
non-free
untergebracht.)
2.9.1. Einordnung der Distributionsbereiche in Debian
Obwohl vielfach von außen anders wahrgenommen, zählt zur
Debian-Distribution nur der Bereich
main
. Die anderen drei Bereiche
sind lediglich Ergänzungen, die zusätzlich bereitgestellt werden. Wir
empfehlen Ihnen daher, soweit möglich nur Pakete aus
main
zu
verwenden, und nur wenn dies nicht ausreicht (z.B. wegen nicht-freier
Firmware für bestimmte Hardwarekomponenten), die drei anderen Bereiche
contrib
non-free
und/oder
non-free-firmware
dazuzunehmen.
Pakete, die in
main
eingeordnet sind, unterliegen einer Lizenz, die
den Debian-Richtlinien für Freie Software – kurz
Debian Free Software
Guidelines (DFSG)
[DFSG]
– entsprechen. Diese Richtlinien sind im
Debian-Gesellschaftsvertrag festgelegt
[Debian-Social-Contract]
und
weisen starke inhaltliche Gemeinsamkeiten zur Free Software Foundation
(FSF) und zum GNU-Projekt auf.
Pakete im Bereich
contrib
stehen zwar genauso unter einer freien
Lizenz wie die Pakete in
main
, bedingen jedoch weitere Software oder
Inhalte, die nicht frei gemäß obiger Festlegung ist. Typische Gründe,
warum ein Paket im Bereich
contrib
einsortiert wurde, sind:
Eine freie Spiele-Engine braucht die Spieldaten eines kommerziellen
Spiels.
Ein Emulator braucht Software für die zu emulierende Hardware, um zu
funktionieren.
Die Software ist nur zum Herunterladen (und ggf. installieren
und/oder paketieren) von nicht-freier Software da.
Die Software muss mit einem nicht-freien Compiler übersetzt werden.
In den beiden Bereichen
non-free
und
non-free-firmware
finden sich
Pakete, die nicht den Debian-Richtlinien für Freie Software (DFSG)
entsprechen, aber trotzdem immer noch frei verteilbar sind. Typische
Gründe für die Nichterfüllung der DFSG sind:
Der Quellcode liegt nicht (komplett) vor.
Die Software oder einzelne Teile davon – z.B. Teile der Dokumentation – dürfen nicht modifiziert werden.
Die Software darf nur für nicht-kommerzielle Zwecke genutzt werden.
Die Software darf nur für „Gutes“ verwendet werden.
Die Software darf nicht in kompilierter Form verteilt werden.
Vor der Nutzung von Software aus diesen Bereichen ist es ratsam, immer
erst anhand der Lizenz zu überprüfen, ob Sie diese Software überhaupt
für Ihre gewünschten Zwecke einsetzen dürfen.
Für Software aus den beiden Bereichen
non-free
und
non-free-firmware
gilt außerdem, dass keine Unterstützung seitens Debian für diese Pakete
möglich ist. Das trifft insbesondere dann zu, wenn der Quellcode nicht
veröffentlicht wurde, wie das bspw. bei der Firmware zu bestimmten
WLAN-Chipsätzen der Fall ist.
Abbildung 2.7, „Paketliste mit Skype als unfreies Paket in Aptitude“
zeigt die Paketliste in Aptitude mit
einem unfreien Paket aus dem Bereich Netzwerk –
skype
. Im abgebildeten
Fall wurde es zudem nicht aus einem offiziellen Debian-Repository
heruntergeladen, sondern aus einer anderen Quelle und danach manuell auf
dem System eingepflegt.
Abbildung 2.7. Paketliste mit Skype als unfreies Paket in Aptitude
Eine vollständige Übersicht zu allen nicht-freien Paketen, die auf ihrem
System installiert sind, gibt Ihnen das Programm
check-dfsg-status
(vormals
vrms
) aus dem gleichnamigen Debianpaket
[Debian-Paket-check-dfsg-status]
. Darauf gehen wir unter
„Liste der installierten, nicht-freien Pakete anzeigen“ in
Abschnitt 8.7, „Liste der installierten, nicht-freien Pakete anzeigen“
) ausführlicher ein.
2.9.2. Einordnung der Distributionsbereiche bei anderen Distributionen
Im Vergleich zu Debian sind bei Ubuntu die Distributionsbereiche etwas
anders eingeteilt. Dort kommt neben den Lizenzen auch noch der
Supportstatus zum Tragen. Dafür ist die Unterscheidung nach
Softwarelizenzen auf frei oder unfrei reduziert: Es gibt
main
(frei,
von Canonical unterstützt),
restricted
(unfrei, von Canonical
unterstützt),
universe
(frei, nur Community-Unterstützung) und
multiverse
(unfrei, nur Community-Unterstützung). Zusätzlich existiert
der Distributionsbereich
partner
, welcher für die Bereitstellung
kommerzieller Software gedacht ist, deren Quellcode nicht offen liegt.
Andere Derivate von Debian bzw. Ubuntu (siehe „Paketformat im Einsatz“
unter
Kapitel 52,
Paketformat im Einsatz
) oder nicht-offizielle Paketquellen
(siehe „Paketquellen“ in
Abschnitt 3.1, „Paketquellen“
) können ebenfalls ihre
eigenen Distributionsbereiche haben. Auf diese gehen wir hier nicht
weiter ein.
2.9.3. Handhabung von geschützten Namen und Logos
Der Begriff „Software“ wird bei Debian recht weit gefasst und
beinhaltet neben Programmcode auch Firmware, Dokumentation oder
künstlerische Elemente wie beispielsweise Grafiken und Logos. Letztere
stehen in manchen Fällen unter anderen Lizenzen als der Rest der
Software und dürfen aus markenrechtlichen Gründen nicht für abgeänderte
Programme verwendet werden.
Aus diesem Grund wurden 2006 einige Programme abgewandelt, bspw. der
Webbrowser Iceweasel und das Mailprogramm Icedove, die im Original die
Namen Firefox und Thunderbird tragen. Neben den beiden anderen Namen
werden in Debian auch alternative Logos genutzt. Nach einer
markenrechtlichen Einigung im Frühjahr 2016 sind seit Debian 9
Stretch
Firefox und Thunderbird wieder zu Debian zurückgekehrt und
lösen Iceweasel und Icedove wieder ab.
2.9.4. Softwareverteilung
Bezogen auf die Anzahl der verfügbaren Softwarepakete findet sich der
überwiegende Teil der Pakete im Bereich
main
, danach folgen
contrib
non-free
und
non-free-firmware
Für die Architektur
amd64
in Debian 8
Jessie
ist das Verhältnis
42987 (
main
) zu 250 (
contrib
) zu 470 (
non-free
). Damit sind das
fast genau ein Prozent unfreie Pakete. Für die Plattform i386 ist die
Verteilung ähnlich.
2.9.5. Hintergrund der Einteilung in Distributionsbereiche
In der Klassifikation spiegelt sich die Offenheit und Vielfalt der
Debian-Nutzer und -Entwickler sowie deren Weltbild wieder. Es zeugt von
dem Verständnis dahingehend, welche Software Sie tatsächlich verwenden
und nach welchen Kriterien Sie Ihre Pakete auswählen.
Je mehr Nutzer von Debian einbezogen werden, umso vielschichtiger sind
die Varianten der Verwendung. Jeder Nutzer pendelt sich bei der
Paketauswahl irgendwo zwischen den beiden Polen „nur freie Software“
und „freie und unfreie Software gemischt“ ein.
Erstere Gruppe versucht, ausschließlich freie Software zu verwenden und
dazu auch unfreie in freie Software zu überführen, bspw. durch Nachbau,
Neuentwicklung oder Anregen eines Lizenzwechsels. Dieser Schritt kann
auch mit einem Funktionsverzicht einhergehen und ist vergleichbar mit
der Überzeugung „so lange eine Technologie nur kommerziell/unfrei zur
Verfügung steht, verwende ich diese nicht und nutze stattdessen
Alternativen“. Die zweite Gruppe ist deutlich pragmatischer und folgt
dem Gedanken „ich nutze die unfreie Variante, bis eine freie zur
Verfügung steht, und steige dann um, wenn sie das kann, wie ich es
brauche“. Dazwischen gibt es unendlich viele Abstufungen, die wiederum
persönlichen Schwankungen unterliegen können.
Die Nutzung der Software hängt von den Bedürfnissen und dem Einsatzzweck
ab. Viele Prozesse und Arbeitsabläufe bedingen eine bestimmte Menge von
Eigenschaften („Featureset“), welche sich nicht immer adäquat und
vollständig mit bestehender freier Software bzw. deren aktuellem
Entwicklungsstand abbilden lässt. Dabei spielen die Faktoren
Produktivität, Anbindung an bereits bestehende Software, Schnittstellen
und unterstützte Hardware oder Protokolle eine große Rolle. Desweiteren sind das
Budget, der Zeitrahmen und die Dokumentation bzw. der Support
entscheidend. Über die Auswahl einer Lösung entscheidet häufig, welcher
finanzielle Rahmen für eine Lösung zur Verfügung steht, welcher Zeitraum
zur Inbetriebnahme gesetzt ist und wie gut die Dokumentation und der
Support zur ausgewählten Software ist. Eine Software, die frei ist, aber
nicht oder nur ungenügend zum tatsächlichen Einsatzzweck passt, ist an
dieser Stelle zu hinterfragen und muss sich mit einer passenden
Alternative messen lassen, auch wenn diese als unfrei eingestuft ist,
aber damit im Nutzungszeitraum eine funktionierende und stabile Lösung
erreicht wird.
2.10. Veröffentlichungen
Debian GNU/Linux wird in verschiedenen Veröffentlichungen angeboten, die
jeweils als „Releases“ bezeichnet werden. Eine solche Veröffentlichung
kann wie folgt referenziert werden:
nach ihrer Versionsnummer, z.B.
Debian 7
oder
Debian 8
nach dem aktuellen Entwicklungsstand der Veröffentlichung (siehe
Abschnitt 2.10.1, „Bedeutung der verschiedenen Entwicklungsstände“
), z.B.
oldstable
stable
testing
oder
unstable
nach ihrem Alias-Namen (siehe
Abschnitt 2.10.2, „Alias-Namen“
), z.B.
Wheezy
Jessie
oder
Stretch
Welche Veröffentlichung Sie auf ihrem System verwenden, entnehmen Sie
der Datei
/etc/debian_version
wie folgt:
Die genutzte Debian-Version anzeigen.
$ cat /etc/debian_version
9.6
Ausführlichere Informationen erhalten Sie mit Hilfe des Kommandos
lsb_release -a
(Langform
--all
) aus dem Debianpaket
lsb-release
[Debian-Paket-lsb-release]
Ausführliche Informationen zur genutzen Debian-Version mit Hilfe von
lsb_release
anzeigen.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch
Alternativen dazu sind bspw.
linuxinfo
inxi
und
sosreport
aus den
gleichnamigen Paketen. Mögen Sie es bunt, ist
neofetch
[Debian-Paket-neofetch]
vielleicht das richtige Werkzeug für Sie.
Abbildung 2.8.
neofetch
im Einsatz auf Debian 11
Bullseye
2.10.1. Bedeutung der verschiedenen Entwicklungsstände
Jedes aktuelle Debian-Paket gehört zu mindestens einem der nachfolgend beschriebenen
Entwicklungsstände:
unstable
Hier findet die aktive Entwicklung von Debian statt. Neue Pakete und
Versionen landen fast immer zuerst hier. Dieser Entwicklungszustand kann
inkonsistent sein und beispielsweise unerfüllte Abhängigkeiten
beinhalten. Er ist primär für Entwickler gedacht.
testing
Pakete, die in
unstable
für eine gewisse Zeit keine schwerwiegenden
Fehler aufweisen und deren Abhängigkeiten bereits ebenfalls in
testing
erfüllt werden können, wandern automatisch von
unstable
hierher. Dieser
Entwicklungsstand sollte konsistent sein und alle Paketabhängigkeiten
erfüllt sein.
stable
Das ist die jeweils aktuelle stabile Veröffentlichung. Dieser
Entwicklungsstand ist für die normale Nutzung von Debian empfohlen. Eine
neue stabile Veröffentlichung wird ca. alle zwei Jahre auf Basis von
testing
erstellt. Pakete werden nur aktualisiert, um
sicherheitskritische oder sonstige schwerwiegende Fehler zu
beheben. Dabei werden (mit sehr wenigen Ausnahmen) ausschließlich die
entsprechenden Fehler durch Patches behoben, anstatt neuere Versionen
der Programme auszuliefern.
oldstable
Das ist die jeweils vorherige stabile Veröffentlichung. Bevor eine neue
stabile Veröffentlichung freigegeben wird, erfolgt eine Umbenennung der
aktuellen stabilen Veröffentlichung in
oldstable
. Diese wird von da an
im Normalfall noch für ein Jahr weiter gepflegt und mit
Sicherheitsaktualisierungen versehen.
oldoldstable
Wenn vorhanden, ist dies die jeweils vorvorherige stabile
Veröffentlichung. Zum ersten Mal trat dieser Entwicklungsstand auf, als im
Frühjahr 2015 Debian 8
Jessie
zur stabilen Veröffentlichung erklärt
wurde. Gleichzeitig wurde Debian 6
Squeeze
zur neuen Suite
oldoldstable
und wurde seitdem per Long Term Support (LTS) weiterhin
noch für 5 Jahre eingeschränkt unterstützt.
experimental
Dies ist der einzige Entwicklungsstand, der keine alleinstehende
Veröffentlichung ist, sondern nur ein Zusatz-Repository. Es fungiert als
Erweiterung zu
unstable
und beinhaltet Pakete, bei denen der
Paketbetreuer davon ausgeht, dass sie noch und ggf. sogar grobe Fehler
beinhalten.
experimental
wird genutzt, um Pakete im größeren Umfeld zu
testen, bevor diese nach
unstable
hochgeladen werden.
Darüberhinaus existiert der Paketbereich
backports
. Das beinhaltet
Rückportierungen neuerer oder aktualisierter Pakete aus dem
Entwicklungszweig
testing
nach
stable
, teilweise auch aus
unstable
. Das ist spannend, aber auch mit gewissen Risiken verbunden.
Im Detail gehen wir darauf unter „Debian Backports“ in
Kapitel 19,
Backports
ein.
2.10.2. Alias-Namen
Jede Veröffentlichung von Debian GNU/Linux hat einen Alias-Namen, der
nach einer Figur aus Pixars Filmreihe
Toy Story
benannt ist. Bruce
Perens — der Projektleiter für die Version 1.x — arbeitete zu dieser
Zeit bei Pixar
[Pixar]
und legte das bis heute genutzte Namenschema
fest. Für die bisherigen Veröffentlichungen von Debian standen die
folgenden Figuren aus der Filmserie Pate:
Debian 1.0 wurde nie offiziell veröffentlicht, da ein CD-Verteiler
bedauerlicherweise eine Entwicklungsversion als Version 1.0 bezeichnet
hatte
[Debian-Project-History]
. Daher entschlossen sich Debian und der
CD-Verteiler zur gemeinsamen Bekanntmachung, dass die beigefügte Version
fehlerhaft war ("this release was screwed") und das Projekt
veröffentlichte die Version 1.1 ein halbes Jahr später.
Debian 1.1
Buzz
(17. Juni 1996; benannt nach Buzz Lightyear, dem Astronauten)
Debian 1.2
Rex
(12. Dezember 1996; benannt nach dem Plastikdinosaurier)
Debian 1.3
Bo
(5. Juni 1997; benannt nach Bo Peep, der Schäferin)
Debian 2.0
Hamm
(24. Juli 1998; benannt nach dem Sparschwein)
Debian 2.1
Slink
(9. März 1999; benannt nach dem Hund Slinky Dog)
Debian 2.2
Potato
(15. August 2000; benannt nach der Puppe Mr. Potato Head)
Debian 3.0
Woody
(19. Juli 2002; benannt nach dem Cowboy Woody Pride, der Hauptfigur der Filme)
Debian 3.1
Sarge
(6. Juni 2005; benannt nach dem Feldwebel der grünen Plastiksoldaten)
Debian 4.0
Etch
(8. April 2007; benannt nach der Zeichentafel Etch-A-Sketch)
Debian 5.0
Lenny
(14. Februar 2009; benannt nach dem aufziehbaren Fernglas)
Debian 6.0
Squeeze
(6. Februar 2011; benannt nach den grünen dreiäugigen Aliens)
Debian 7
Wheezy
(4. Mai 2013; benannt nach Wheezy the Penguin, dem Gummi-Spielzeugpinguin mit der roten Fliege)
Debian 8
Jessie
(25. April 2015; benannt nach der jodelnden Kuhhirtinnen-Puppe Jessica Jane „Jessie“ Pride)
Debian 9
Stretch
(17. Juni 2017; benannt nach dem lila Kraken)
Debian 10
Buster
(6. Juli 2019; benannt nach dem Welpen aus
Toy Story 2
Debian 11
Bullseye
(14. August 2021; benannt nach dem Pferd von
Woody Pride
Debian 12
Bookworm
(Sommer 2023; benannt nach dem intelligenten Bücherwurm, einem Spielzeug mit eingebauter Leuchte aus
Toy Story 3
Es stehen bereits ebenfalls die Namen von zwei zukünftigen Veröffentlichungen fest:
Debian 13
Trixie
— benannt nach dem blauen Dinosaurier
Debian 14
Forky
— benannt nach dem aus Müll zusammengebauten
Hauptcharakter aus
Toy Story 4
Mehr Details zu den einzelnen Veröffentlichungen finden sich in der
Debian-Geschichte
[Debian-History]
. Die Figuren aus den verschiedenen
Toy Story
-Filmen und insbesondere deren Charakterzüge sind ausführlich
im Disney Wiki
[ToyStory]
dokumentiert (siehe
Abbildung 2.9, „Beschreibung der Filmserie
Toy Story
im Disney Wiki“
).
Abbildung 2.9. Beschreibung der Filmserie
Toy Story
im Disney Wiki
Auch bei der Bezeichnung der Aktualisierungen zur stabilen
Veröffentlichung ergeben sich über die Jahre hinweg kleine Unterschiede.
Anfangs erfolgte die Kennzeichnung durch Anhängen des Buchstabens
und der Nummer der Aktualisierung, z.B.
4.0r8
für die 8.
Aktualisierung von Debian 4.0
Etch
. Seit Debian 5.0
Lenny
wird
stattdessen ein Punkt verwendet, so z.B.
5.0.3
für die dritte
Aktualisierung.
Seit Debian 4.0
Etch
bekamen stabile Veröffentlichungen immer eine
neue Nummer an erster Stelle. Seit Debian 7
Wheezy
ist die Null an
zweiter Stelle verschwunden. Stattdessen wird die Nummer der
Aktualisierung genutzt, so z.B.
7.3
für die dritte Aktualisierung von
Debian 7
Wheezy
2.10.3. Zusammenhang von Alias-Namen und Entwicklungsständen
Neben den o.g. Entwicklungsständen haben alle Veröffentlichungen auch
noch Alias-Namen, die eine Veröffentlichung stets unverändert beibehält.
Jede neue Veröffentlichung startet nach einer stabilen Veröffentlichung
als
testing
, wird dann bei der nächsten stabilen Veröffentlichung zu
stable
, bei der übernächsten zum
oldstable
und danach zu
oldoldstable
Ist eine Veröffentlichung — sei es als
oldstable
oder als
oldoldstable
— am Ende ihrer Unterstützung angelangt, wird sie in das
Debian-Archiv
[Debian-Archive]
übertragen. Dieses Archiv beinhaltet
alle nicht mehr unterstützten Veröffentlichungen.
Eine weitere Ausnahme bildet die Veröffentlichung zu
unstable
. Sie
besitzt stets den gleichen Alias-Namen
Sid
. In der Filmreihe Toy Story
ist das passenderweise der Name des bösen Nachbarkinds, welches immer
alle Spielzeuge kaputt macht.
Sid
ist auch gleichzeitig ein Akronym für
still in development
– zu deutsch „noch in Entwicklung“ –, was den
Status der Veröffentlichung der zukünftigen Distribution sehr treffend
umschreibt.
Experimental
trägt – analog zu
unstable
– immer den Alias-Namen
rc-buggy
, was im Debian-Jargon eine Kurzform für „contains
release-critcal bugs“ darstellt. Das lässt sich sinngemäß als „in
dieser Form ungeeignet zur Aufnahme in eine Veröffentlichung“
übersetzen.
2.10.4. Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
Sieht man von Uploads nach
experimental
ab, fängt das Leben einer
neuen Version eines Debianpakets mit dem Hochladen nach
unstable
an.
Das Paket wird automatisch in
testing
übernommen, sobald einige
Bedingungen erfüllt sind:
Die Version des Pakets in
unstable
führt keine neuen
veröffentlichungskritischen Fehler in
testing
ein.
Alle notwendigen Abhängigkeiten des Pakets sind in
testing
verfügbar oder werden gleichzeitig nach
testing
migriert.
Es darf keine Abhängigkeiten von Paketen zerstören, die bereits in
testing
enthalten sind und damit deren Installation verhindern.
Das Paket hat ein Mindestalter an Tagen erreicht. Dieses
Mindestalter hängt vom Wert des Felds
urgency
(engl. für
Dringlichkeit) im aktuellen Changelog-Eintrag ab und beträgt entweder
10, 5 oder 2 Tage. Die Dringlichkeit wird dabei vom Paketmaintainer
entschieden. Bei Korrekturen von sicherheitsrelevanten Fehlern ist es
durchaus üblich, dass die Dringlichkeit auf „hoch“ gesetzt wird und
damit nur 2 Tage beträgt.
Das Paket muss auf allen Architekturen, auf denen es gebaut wird, in
der aktuellsten Version verfügbar sein.
Das Paket muss auf allen Architekturen bereitstehen, auf denen es
vorher bereits gebaut wurde. Für Ausnahmen muss zuerst das alte
Paket aus dem Archiv manuell entfernt werden.
Das Debian-Release-Team kann allerdings diese Bedingungen individuell
übersteuern und kürzere oder längere Fristen für den Übergang in die
testing
-Veröffentlichung setzen.
Zu einem bestimmten Zeitpunkt im Entwicklungszyklus einer neuen
stabilen Veröffentlichung friert das Release-Team die
testing
-Veröffentlichung ein – auch genannt
Freeze
(engl. für
Einfrieren). Ab diesem Moment wandern keine Pakete mehr automatisch von
unstable
nach
testing
und das Debian-Release-Team muss jeden
einzelnen, weiteren Übergang eines Pakets explizit abnicken. Je länger
der Freeze andauert, desto schärfer werden die Bedingungen, unter denen
das Debian-Release-Team einen Übergang nach
testing
akzeptiert. Im
Normalfall werden nur noch Paketversionen akzeptiert, die ausschließlich
Fehler korrigieren und keine neuen Features einführen. Daher wird für
diesen Zustand auch der Begriff
Feature Freeze
verwendet.
Auf diese Weise wird versucht, sämtliche veröffentlichungskritischen
Fehler in der
testing
-Veröffentlichung zu beheben. Sobald es dort
keinen dieser Fehler mehr gibt, geschehen die folgenden Dinge:
Die bisherige Veröffentlichung
stable
wird zu
oldstable
. Sie
behält dabei ihren Alias-Namen bei.
Eine Kopie des aktuellen Zweigs
testing
wird zum neuen Zweig
stable
. Der Alias-Name zieht mit um.
testing
bekommt einen neuen Alias-Namen.
Der Freeze wird aufgehoben und die Pakete propagieren wieder
automatisch von
unstable
nach
testing
2.10.5. Organisation der Pakete im Paketpool
Wenn eine Paketversion von
unstable
nach
testing
wandert oder aus
testing
das neue
stable
wird, werden allerdings nicht wirklich
Pakete kopiert. Stattdessen werden vielmehr nur die Metadaten des
betreffenden Pakets von einer Paketliste in eine andere umgetragen. Das
Paket selbst liegt immer noch an gleicher Stelle und nur einmal im
sogenannten Paketpool.
So kann es vorkommen, dass ein Paket, welches nur selten aktualisiert
wird, in allen aktuellen Veröffentlichungen in der gleichen Version
vorkommt und dafür auch nur einmal auf jedem Spiegel des
Debian-APT-Archivs liegt. Welches Paket dann aus den verschiedenen
Entwicklungsständen bei einer Installation ausgewählt wird, erfahren Sie
unter „Aus welchem Repo kommen die Pakete“ (siehe
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
) genauer.
2.10.6. Sicherheitsaktualisierungen
Für unterstützte Veröffentlichungen, d.h. die aktuelle stabile
Veröffentlichung ("stable release"), sowie mindestens ein Jahr nach
einer Veröffentlichung für die vorherige stabile Veröffentlichung
bietet Debian Sicherheitsaktualisierungen durch das Debian Security
Teams
[Debian-Security]
an.
2.10.7. Long Term Support (LTS)
Im Frühjahr 2014 wurden zusätzlich sogenannte
Long Term
Support
-Varianten
[Debian-LTS]
— auf Deutsch "Langzeitunterstützung"
und kurz
LTS
— eingeführt. Diese verlängern den Zeitraum der weiteren
Verfügbarkeit und Pflege einer Veröffentlichung von den typischerweise
drei Jahren auf bis zu fünf Jahre.
In Folge wurde die im Jahr 2011 freigegebene und 2013 durch Debian 7
Wheezy
abgelöste Veröffentlichung von Debian 6
Squeeze
bis 2016
mit Aktualisierungen versorgt. Seither wurde jede weitere stabile
Veröffentlichung nach ihrem offiziellen Lebensende ebenfalls als
LTS
mit Einschränkungen — z.B. nur noch die beliebtesten Architekturen —
weitergeführt. Anfangs waren dies nur die beiden x86-basierten
Architekturen
i386
und
amd64
, momentan beinhaltet das zusätzlich
auch noch alle drei ARM-basierten Architekturen (
armel
armhf
und
arm64
).
Debian LTS wird nicht wie die normalen Sicherheitsaktualisierungen vom
Debian-Security-Team gehandhabt, sondern von einer Gruppe Freiwilliger
wie auch Firmen, die daran interessiert sind, daß Debian LTS ein
Erfolg wird — oft auch aus Eigenbedarf heraus. Dementsprechend übernimmt
das Debian-LTS-Team das Bereitsstellen von Sicherheitsaktualisierungen
vom Debian-Security-Team am Ende der normalen Unterstützungsdauer der
Veröffentlichung.
Zur Nutzung von Debian LTS nach Ablauf des normalen
Unterstützungszeitraumes muß an der Konfiguration des Systems nichts
geändert werden. (Historisch galt diese Regel nicht für die allererste
Debian Veröffentlichung mit LTS, Debian 6
Squeeze
, welche eine Art
Machbarkeitstest war. Aber da deren Langzeitunterstützung bereits
abgelaufen ist, ist das heute von keiner Relevanz mehr.)
2.10.8. Extended Long Term Support (ELTS)
Da manchen Anwendern — vor allem aus dem professionellen Umfeld — auch
die LTS-Varianten nicht lange genug Unterstützung anboten, gibt seit
2018 eine weitere Stufe der Verlängerung. Seit dem Auslaufen von LTS für
Debian 7
Wheezy
besteht das Projekt "Extended LTS", auf deutsch
"Erweiterte Langzeitunterstützung" und kurz "ELTS", die die
Unterstützung von Debian-Veröffentlichungen um weitere zwei Jahre auf
ca. sieben Jahre verlängert. Im Gegensatz zu Debian LTS, welches immer
noch ein Projekt unter dem Dach von Debian ist, ist Extended LTS ein
kommerzielles Angebot, dessen Aktualisierungen jedoch trotzdem jeder
nutzen kann.
Für welche Pakete es Aktualisierungen gibt, hängt jedoch davon ab, ob
ein Paket jemandem wichtig genug ist, um sich am Arbeitsaufwand für
dessen Sicherheitsaktualisierungen zu beteiligen. Interessieren sich
mehrere Personen oder Organisationen für die
Sicherheitsaktualisierungen desselben Paketes, so werden die Kosten
entsprechend aufgeteilt. Die Koordination erfolgt über die französische
Firma Freexian
[Freexian]
Desweiteren gibt es im Vergleich zu LTS weitere Einschränkungen:
Es werden nur Pakete unterstützt, für die sich Sponsoren finden. Die
aktuelle Liste unterstützter Pakete findet sich unter
[Debian-ELTS-Packages]
Es werden ggf. noch weniger Architekturen unterstützt. Im Falle von
Debian 8
Jessie
sind dies nur noch
i386
amd64
und
armel
Der Linux-Kernel wird ggf. nicht unterstützt. Es wird jedoch ein Backport
des Kernels von der darauffolgenden stabilen Debian-Veröffentlichung
(die dann typischerweise zu diesem Zeitpunkt bereits unter Debian
LTS gepflegt wird) angeboten. Im Falle von Debian 8
Jessie
ist
dies der Linux-Kernel 4.9 aus Debian 9
Stretch
Für bestimmte Pakete können keine Sicherheitsaktualisierungen
angeboten werden, selbst wenn sich ein Sponsor finden würde, weil
von den Entwicklern der Software der Unterstützungszeitraum
abgelaufen ist. So z.B. für MariaDB 10.0. Für andere Pakete wird die
Unterstützung vor Ende der erweiterten Langzeitunterstützung enden,
so z.B. Tomcat 7 und OpenJDK 7.
Die aktuellen Details zu den Einschränkungen als auch wie man Sponsor von
Debian ELTS werden kann, ist auf der ELTS-Webseite von Freexian
[Freexian-ELTS]
erklärt.
Um die von der erweiterten Langzeitunterstützung bereitgestellten
Paketaktualisierungen nutzen zu können, müssen Sie im Gegensatz zu
Debian LTS zwei Dinge tun — 1.) ein weiteres APT-Repository zu Ihrer
/etc/apt/sources.list
(oder einer Datei im Verzeichnis
/etc/apt/sources.list.d/
) hinzufügen, und 2.) den PGP-Schlüssel des
Extended-LTS-Projektes importieren. Wie das erfolgt, ist im 'Debian
ELTS-HowTo
[Debian-ELTS-HowTo]
beschrieben. Im Folgenden dazu eine
kurze Zusammenfassung:
Der erste Schritt ist das Herunterladen des aktuellen Schlüsselrings des
Projektes als
.deb
-Paket von
. Das Vertrauen liegt hierbei nur auf dem HTTPS-Zertifikat des Webservers.
Danach wird das heruntergeladene Paket mit Administrator-Rechten (d.h. als
root
oder z.B. mittels
sudo
) über den Aufruf
dpkg -i
freexian-archive-keyring*.deb
installiert. Nun wird das APT-Repository
durch das Hinzufügen der folgenden Zeile aktiviert:
sources.list
-Eintrag für Extended LTS.
# Generisch (passende Veröffentlichung und Archiv-Bereiche anpassen)
deb http://deb.freexian.com/extended-lts veröffentlichung-lts sektionen

# Beispiel für Debian 8 Jessie mit allen Archiv-Bereichen
deb http://deb.freexian.com/extended-lts jessie-lts main contrib non-free

# Beispiel für Debian 9 Stretch mit allen Archiv-Bereichen
deb http://deb.freexian.com/extended-lts stretch-lts main contrib non-free
Abschließend ist noch
apt update
oder ein Äquivalent aufzurufen, um
die ELTS-Paketlisten herunterzuladen. Sind bereits Aktualisierungen
verfügbar, so kann man diese direkt auch mit
apt upgrade
oder ggf.
apt full-upgrade
einspielen.
2.11. Benennung einer Paketdatei
Während der Benutzung von
dpkg
, APT oder
aptitude
sind Sie sicher
schon mit den etwas langen und auf den ersten Blick kurios anmutenden
Dateinamen der einzelnen Pakete in Berührung gekommen. Die Benennung
einer Paketdatei folgt einem ausgeklügelten Schema
[Krafft-Debian-System144]
. Dieses Schema ist eine Konvention, die
leider bei Paketen aus Drittquellen oft nicht eingehalten wird.
Der Dateinamen besteht aus den drei Feldern
Paketname
Version
und
Architektur
, welche durch einen Unterstrich
voneinander
abgegrenzt werden, plus einem Punkt und der Dateiendung
.deb
. Gemäß
den Debian-Richtlinien
[Debian-Policy-Manual]
sind in o.g. Feldern nur
ASCII-Zeichen zulässig. Unterstriche, Leerzeichen und Umlaute sind nicht
gestattet. Das hilft dabei, Missverständnissen vorzubeugen und die
Paketenamen mit allen Zeichensätzen anzeigen zu können.
2.11.1. Paketname
Feld 1
bezeichnet den Namen des Pakets, welches durch die Paketdatei
bereitgestellt wird. Die Paketdatei
iceweasel_3.5.16-12_i386.deb
ist
ein Binärpaket (Dateiendung
.deb
) und beinhaltet den Webbrowser
Iceweasel in der Version 3.5.16 für die Architektur i386.
Darüberhinaus existieren bei der Benennung eine Reihe von
Gepflogenheiten in Form von Präfixen und Suffixen. Diese stellen kein
„muss“ dar, vereinfachen aber die Handhabung insgesamt sowie die
Paketklassifikation und die spätere Recherche nach Paketen.
Beginnt der Paketname mit der Zeichenkette
lib
, handelt es sich meist
um eine Bibliothek, auf englisch
library
. Als Beispiel seien hier die
beiden XML-Bibliotheken
libxml2-utils
und
libxml2
genannt. Aus dem
Schema fallen allerdings die Komponenten zu LibreOffice wie
libreoffice-writer
(Textverarbeitung
Writer
) und
libreoffice-calc
(Tabellenkalkulation
Calc
) heraus.
Endet der Paketname mit dem Suffix
-dev
wie bspw. in
libxslt1-dev
beinhaltet das Paket Kopfdateien (engl.
header files
), die nur
notwendig sind, wenn Sie Programme unter Nutzung der dazugehörigen
Bibliothek entwickeln.
dev
ist die gebräuchliche englische Abkürzung
für
development
. Im Paket
libxslt1-dev
befinden sich beispielsweise
die Kopfdateien zur XSLT-1-Bibliothek.
Das Suffix
-doc
weist auf Dokumentation hin, welches häufig noch von
einer Abkürzung für die jeweilige Sprache gefolgt wird. Der Paketname
aptitude-doc-es
beinhaltet bspw. die spanische Übersetzung der
Dokumentation zu
aptitude
Die Suffixe
-common
und
-data
deuten an, dass das Paket Dateien
beinhaltet, die von mehreren Teilen eines Programms gemeinsam genutzt
werden. Als Beispiel sei hier
wireshark-common
genannt, welches sowohl
die Daten für die graphische Variante des Netzwerktools
wireshark
, als
auch für die textbasierte Version
tshark
beinhaltet.
2.11.2. Versionsnummer
Feld 2
spiegelt eine Reihe unterschiedlicher Informationen und
Zustände wieder, aus dem Sie den Versionsstand und -verlauf
eines Pakets erkennen. Die Versionsangabe kann sowohl numerische
Zeichen (Ziffern), als auch nichtnumerische Zeichen wie Punkte, Tilden
und Buchstaben beinhalten.
Handelt es sich um ein
nicht-natives Debian-Paket
, besteht die
Versionsnummer aus der Upstream-Version und der Debian-Revision. Bei
dem Paket
smartpm_1.4-2_all.deb
für
smartpm
(siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) ist die Angabe 1.4 die Upstream-Version und die
darauffolgende mit einem Minus
abgetrennte
steht für die
zweite Debian-Revision. Hier liegt also das zweite Debianpaket vor,
welches auf der Upstream-Version 1.4 basiert. Beinhaltet die
Versionsnummer mehrere Bindestriche, ist immer der letzte Bindestrich
der Trenner zwischen der Upstream-Version und der
Debian-Revisionsnummer.
Handelt es sich hingegen um ein
natives Debian-Paket
, d.h. eine
Software, die ausschließlich als Debian-Paket vertrieben wird, gibt es
keine Debian-Revisionsnummer und die Versionsnummer des Pakets ist
identisch mit der Versionsnummer der Software. Für das Paket
dpkg_1.17.25_i386.deb
zu
dpkg
ist das 1.17.25.
Ändert sich bei der Aktualisierung (Upstream) die Versionsangabe so
grundlegend, dass die neuere Version eine kleinere Versionsnummer hat
als die vorherige Version, so muss der Paketversion die Angabe einer
mit einem Doppelpunkt abgetrennten
Epoche
hinzugefügt werden. Ist
bspw. die vorhergehende Versionsnummer 2013.06.06-4 (Upstream-Version
2013.06.06 Revision 4), entspricht das der Epoche 0 und ist identisch zu
0:2013.06.06-4. Die Folgeversion wird dann 1:1.0-1, d.h. Epoche 1,
Upstream-Version 1.0 und Revision 1.
Um eine spätere
alphanumerisch korrekte Sortierung anhand des
Releasestatus
zu ermöglichen, sind eine bzw. mehrere
aufeinanderfolgende Tilden
zulässig. Damit wird bspw. die Version
1.0~beta1
vor der Version
1.0
einsortiert. Diese Schreibweise kam
zuerst bei Debian auf, wurde mittlerweile aber auch von anderen
Open-Source-Projekten übernommen.
Zudem sind eine Reihe von
Suffixen
gebräuchlich. Diese gelten zwar nur
als Konvention, werden aber auch an einigen Stellen erwartet.
+nmu
Non-Maintainer-Upload (NMU) eines nativen Pakets. Das bezeichnet eine
Paketversion, die nicht vom Verantwortlichen (Maintainer) des Pakets
stammt. Bspw. bezeichnet die Datei
adduser_3.113+nmu3_all.deb
das
Paket
adduser
als dritten Non-Maintainer-Upload basierend auf der
Version 3.113 des Maintainers.
-.
Debian-Revisionsnummer eines Non-Maintainer-Upload (NMU) eines
nicht-nativen Pakets. Dabei bezeichnet

die letzte Revision des
Maintainers (oder
, falls es keine solche gab) und

die Nummer
des NMU basierend auf dieser Revision des Maintainers. So ist z.B.
die Datei
bash_4.2+dfsg-0.1_i386.deb
das Debianpaket
bash
als
Non-Maintainer-Upload einer neuen Upstreamversion basierend auf der
Veröffentlichung 4.2. Hingegen bezeichnet die Angabe 4.2-2.1 den ersten
Non-Maintainer-Upload, welcher auf der Basis der Maintainer-Version
4.2-2 erstellt wurde.
+b
Kennzeichnung eines Binären Non-Maintainer-Uploads (
BinNMU
). Das
bezeichnet eine Übersetzung des Pakets ohne vorherige Änderung des
Quellcodes. Das tritt bspw. dann auf, wenn sich die Abhängigkeiten zum
Bauen des Pakets geändert haben (sogenannte
build-dependencies
). Die
Angabe
123-4+b2
steht dabei für den zweiten Erstellungsdurchlauf des
Pakets aus den Quellen der Version
123-4
. Ubuntu verwendet dafür
stattdessen die Syntax
123-4build2
~bpo+
Backports (siehe
Kapitel 19,
Backports
) bezeichnen eine Rückportierung
einer neueren Version auf die aktuelle Veröffentlichung. Dabei steht
das Kürzel
bpo
für
backports.org
, dem Namen des
Backports-Projektes, bevor es in Debian integriert wurde. Die Angabe
123-3~bpo8+2
steht bspw. für eine Rückportierung der Upstream-Version
123-3 auf Debian 8
Jessie
. Die Ziffer 2 deklariert das Paket die
zweite Backports-Revision des Paket.
+debu
stabiles Update. Die Angabe
121-3+deb7u2
steht für das zweite stabile
Update des Pakets mit der Version 121-3 in Debian 7
Wheezy
(=7 und
=2).
ubuntu
ein Debianpaket, welches für Ubuntu angepasst wurde.

bezeichnet die
Ubuntu-Revisionsnummer, so bspw.
121-3ubuntu4
für die vierte
Ubuntu-Revision des Debian-Pakets mit der Versionsnummer
121-3
2.11.3. Architektur oder Plattform
Feld 3
in der Versionsangabe gibt an, für welche Architektur das
vorliegende Paket übersetzt wurde. Die Benennung entspricht den
Bezeichnungen, wie sie unter Debian-Architekturen in
Abschnitt 1.2, „Debian-Architekturen“
aufgelistet sind. Die Angabe
asterisk_1.8.13.1~dfsg-3+deb7u1_armhf.deb
beschreibt die Paketierung
der Telefoniesoftware Asterisk für die ARM-Plattform mit
Hardware-Floating-Point-Unterstützung. Im Gegensatz dazu ist das Paket
asciidoc_8.5.2-1_all.deb
plattformunabhängig einsetzbar.
2.12. Multiarch einsetzen
dpkg
führt eine Liste mit allen Architekturen, für die es Pakete
installiert bzw. installieren darf. Diese Liste befindet sich in der
Datei
/var/lib/dpkg/arch
und existiert allerdings nur, sofern Sie
zuvor auch Fremdarchitekturen ergänzt haben. Das nachfolgende Beispiel
stammt von einem System mit
amd64
als Basisarchitektur und
i386
als
Fremdarchitektur.
Inhalt der Liste der Architekturen.
$ cat /var/lib/dpkg/arch
amd64
i386
Die erste Architektur in dieser Datei ist die Basisarchitektur. Diese
geben Sie mit der
dpkg
-Option
--print-architecture
aus. Früher bzw.
bei älteren
dpkg
-Versionen heißt die Option
--print-installation-architecture
. Die Fremdarchitekturen zeigen Sie
mit
dpkg --print-foreign-architectures
an.
Über die beiden
dpkg
-Optionen
--add-architecture
und
--remove-architecture
erweitern bzw. reduzieren Sie die Liste
entsprechend. Beim Aufruf geben Sie dazu jeweils noch die gewünschte
Architektur als Parameter an, bspw.
dpkg --add-architecture i386
wenn Sie zusätzlich die Architektur für 32-Bit-PCs nutzen wollen, weil
es die von Ihnen gewünschte Software nur für 32-Bit-Systeme gibt.
Während des Vorgangs schreibt
dpkg
diese Änderung zuerst in eine
temporäre Datei namens
/var/lib/dpkg/arch-new
. Wurden alle anderen
Änderungen erfolgreich vorgenommen, benennt
dpkg
diese Datei in
/var/lib/dpkg/arch
um.
Installation von Paketen für fremde Architekturen
Bitte berücksichtigen Sie bei Ihrer Softwareplanung, dass nicht jedes
Paket für alle Plattformen verfügbar ist. Wenn es verfügbar ist und Sie
es erfolgreich auf Ihrem System installieren konnten, heißt das nicht
automatisch, dass es auch auf Ihrer Architektur funktioniert, sondern
nur, dass die Paketverwaltung alle benannten Paketabhängigkeiten erfüllen
konnte.
Löschen einer Fremdarchitektur
Das Entfernen einer Fremdarchitektur gelingt Ihnen nur dann, wenn keine
Pakete (mehr) für diese Architektur auf Ihrem System installiert sind.
Wie Sie Pakete architekturbezogen deinstallieren, lesen Sie in
Abschnitt 8.43, „Pakete deinstallieren“
nach.
2.12.1. Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
Ein
vollständiges Beispiel
für den Einsatz von
multiarch
ist die
Nutzung des Forth-Interpreters
pforth
auf einem 64-bittigen Debian
(Architektur
amd64
).
pforth
ist über das gleichnamige Paket bislang
nur nativ für 32-Bit-Betriebssysteme verfügbar. Gleiches betrifft das
recht weit verbreitete, aber nicht-quelloffene Kommunikationsprogramm
Skype
[Skype]
. Eine passende Schritt-für-Schritt-Anleitung finden Sie
im Debian Wiki
[Debian-Wiki-Skype]
Im Folgenden zeigen wir Ihnen anhand des vorgenannten Pakets
pforth
wie eine solche Installation abläuft und insbesondere, welche
Einzelschritte wir dabei für beachtenswert halten. Zunächst überprüfen
Sie mittels
dpkg
und dessen Option
--print-architecture
die derzeit
benutzte Architektur Ihres Systems – im hier betrachteten Fall ist es
amd64
. Danach ergänzen Sie die Liste der Architekturen via
dpkg
--add-architecture i386
um
i386
als weitere Plattform, für die Ihr
System Pakete akzeptiert. Ob der Vorgang erfolgreich war, zeigt Ihnen
der Parameter
--print-foreign-architectures
von
dpkg
an. Damit
erhalten Sie eine Übersicht zu allen „Fremdarchitekturen“, die ihr
Debiansystem derzeit akzeptiert.
Hinzufügen einer weiteren genutzten Paketarchitektur mittels
dpkg
# dpkg --print-architecture
amd64
# dpkg --add-architecture i386
# dpkg --print-foreign-architectures
i386
Nun aktualisieren Sie die lokale Liste der verfügbaren Pakete
mittels
apt-get update
, wobei APT nun auch die Informationen
zu den Paketen der neu hinzugefügten Architektur herunterlädt.
Aktualisieren der Paketlisten.
# apt-get update
Ign http://ftp.ch.debian.org jessie InRelease
Hit http://ftp.ch.debian.org jessie Release.gpg
Hit http://ftp.ch.debian.org jessie Release
Hit http://ftp.ch.debian.org jessie/main amd64 Packages
Get:1 http://ftp.ch.debian.org jessie/main i386 Packages [6769 kB]
Hit http://ftp.ch.debian.org jessie/main Translation-en
Fetched 6769 kB in 6s (1005 kB/s)
Reading package lists... Done
Als nächsten Schritt prüfen Sie mit dem Aufruf
apt-cache policy
, für
welche akzeptierte Architektur das von Ihnen gewünschte Paket
bereitsteht. Die Details zum Aufruf von
apt-cache
finden Sie unter
„Aus welchem Repo kommen die Pakete“ in
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
Prüfung auf Verfügbarkeit für eine Architektur mittels
apt-cache
# apt-cache policy pforth
pforth:i386:
Installed: (none)
Candidate: 21-12
Version table:
21-12 0
990 http://ftp.ch.debian.org/debian/ jessie/main i386 Packages
Sie ersehen aus der obigen Ausgabe, dass das Paket bislang noch nicht
auf Ihrem System installiert ist. Es steht für die Architektur
i386
und die Veröffentlichung Debian 8
Jessie
bereit. Nun können Sie das
Paket
pforth
installieren. Das zieht u.a. das essentielle Paket
libc6
für die Architektur
i386
nach sich, um die Abhängigkeiten zum
Paket
pforth
zu erfüllen.
Installation des
i386
-Pakets
pforth
auf
amd64
-Debian.
# apt-get install pforth
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gcc-4.9-base:i386 libc6:i386 libgcc1:i386
Suggested packages:
glibc-doc:i386
Recommended packages:
libc6-i686:i386
The following NEW packages will be installed:
gcc-4.9-base:i386 libc6:i386 libgcc1:i386 pforth:i386
0 upgraded, 4 newly installed, 0 to remove and 27 not upgraded.
Need to get 4,252 kB of archives.
After this operation, 9,727 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.ch.debian.org/debian/ jessie/main gcc-4.9-base i386 4.9.1-15 [158 kB]
Get:2 http://ftp.ch.debian.org/debian/ jessie/main libc6 i386 2.19-11 [3,977 kB]
Get:3 http://ftp.ch.debian.org/debian/ jessie/main libgcc1 i386 1:4.9.1-15 [48.2 kB]
Get:4 http://ftp.ch.debian.org/debian/ jessie/main pforth i386 21-12 [69.1 kB]
Fetched 4,252 kB in 0s (20.5 MB/s)
Preconfiguring packages ...
Selecting previously unselected package gcc-4.9-base:i386.
(Reading database ... 474485 files and directories currently installed.)
Preparing to unpack .../gcc-4.9-base_4.9.1-15_i386.deb ...
Unpacking gcc-4.9-base:i386 (4.9.1-15) ...
Selecting previously unselected package libc6:i386.
Preparing to unpack .../libc6_2.19-11_i386.deb ...
Unpacking libc6:i386 (2.19-11) ...
Replacing files in old package libc6-i386 (2.19-11) ...
Selecting previously unselected package libgcc1:i386.
Preparing to unpack .../libgcc1_1%3a4.9.1-15_i386.deb ...
Unpacking libgcc1:i386 (1:4.9.1-15) ...
Selecting previously unselected package pforth.
Preparing to unpack .../archives/pforth_21-12_i386.deb ...
Unpacking pforth (21-12) ...
Processing triggers for man-db (2.7.0-1) ...
Setting up gcc-4.9-base:i386 (4.9.1-15) ...
Setting up libc6:i386 (2.19-11) ...
Setting up libgcc1:i386 (1:4.9.1-15) ...
Setting up pforth (21-12) ...
Processing triggers for libc-bin (2.19-11) ...
In o.g. Fall wurde das Paket
libc6
als Abhängigkeit auch für die
Architektur
i386
installiert. Sie erkennen das daran, dass neben dem
Namen des Pakets auch die Architektur angegeben wird. Als Trennzeichen
in der Ausgabe fungiert hier ein Doppelpunkt.
Abschließend überprüfen Sie mittels
dpkg
, für welche Architekturen
die Pakete
pforth
und
libc6
auf Ihrem System installiert sind.
Installationsstatus für das Paket
libc6
# dpkg -l pforth libc6
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii libc6:amd64 2.19-11 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.19-11 i386 GNU C Library: Shared libraries
ii pforth 21-12 i386 portable Forth interpreter
Im letzten Schritt probieren Sie aus, ob das frisch installierte
32-Bit-Programm auch unter Ihrem 64-Bit-Betriebssystem funktioniert.
Dazu rufen Sie das Programm auf.
Ausführung von
pforth
$ pforth
PForth V21
pForth loading dictionary from file /usr/lib/pforth/pforth.dic
File format version is 8
Name space size = 120000
Code space size = 300000
Entry Point = 0
Little Endian Dictionary
Begin AUTO.INIT ------
...
2.13. Paket-Priorität und essentielle Pakete
Jedes Paket beinhaltet ein Feld namens
Priority
– englisch
für „Priorität“. Dabei geht es aber weniger um eine Rangfolge von
Paketen, sondern um die Wichtigkeit eines Pakets bzw. um die
Wahrscheinlichkeit, dass Sie dieses Paket installieren möchten.
Debian kennt die folgenden fünf Prioritätsstufen:
erforderlich (
required
wichtig (
important
standard (
standard
optional (
optional
extra (
extra
Die Begriffe in Klammern geben die Schlüsselworte wieder, die in der
Paketbeschreibung genutzt werden. Jede dieser o.g. Stufen hat eine
bestimmte Bedeutung.
Auflistung der Pakete mit einer festgelegten Priorität
In
Abschnitt 8.9, „Pakete nach Prioritäten finden“
lesen Sie, wie Sie mit
aptitude
Pakete mit einer spezifischen Priorität finden.
2.13.1. Prioritätsstufe „erforderlich“ (
required
Dieser Prioritätsstufe sind Pakete zugeordnet, die für die korrekte
Funktion des Betriebssystem unbedingt erforderlich sind. Dazu gehören
beispielsweise
dpkg
coreutils
für die GNU Core Utilities mit den
Befehlen wie
ls
rm
cp
mv
, das Init-System (seit Debian 8
Jessie
das Metapaket
init
) und die C-Standard-Bibliotheken (
libc6
auf den meisten Architekturen).
Entfernen Sie eines oder mehrere Pakete mit dieser Prioritätsstufe, kann
das Ihre Installation so stark beschädigen, dass selbst das Werkzeug
dpkg
nicht mehr funktioniert.
Systeme, die nur aus Paketen der Prioritätsstufe „erforderlich“
bestehen, sind zwar lauffähig, aber im Normalfall nahezu unbenutzbar, da
z.B. Pakete wie APT,
less
oder ein Texteditor fehlen. Die
letztgenannten sind zum Betrieb nicht zwingend
erforderlich
[5]
2.13.2. Prioritätsstufe „wichtig“ (
important
In diese Prioritätsstufe gehören alle Pakete, die auf jedem UNIX- bzw.
Debian-System zu erwarten sind oder ohne die das System nur sehr
schwierig zu warten wäre. Das schließt auch Server ohne Monitor mit ein.
Als Pakete gehören neben
apt
u.a.
gnupg
und
debian-archive-keyring
für den Debian-Archiv-Schlüsselring zum Überprüfen der Signaturen von
Paketlisten (siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
) dazu, ebenso
OpenSSL, ein DHCP-Client, zwei Texteditoren (eine abgespeckte Variante
von Vim sowie Nano), Kommandozeilenwerkzeuge zur Prozessverwaltung
ps
kill
free
top
uptime
aus dem Paket
procps
), ein
Syslog-Daemon, ein Cron-Daemon, Man-Pages, Netzwerk-Programme wie
ping
traceroute
und
iptables
sowie das
Netzwerkschnittstellenverwaltungssystem
ifupdown
Diese Prioritätsstufe beinhaltet weder große Applikationen noch
graphische Programme. Insbesondere gehören weder GNU Emacs noch TeX
noch das X Window System oder das
xterm
in diese Kategorie.
2.13.3. Prioritätsstufe „standard“ (
standard
Haben Sie alle Pakete dieser Prioritätsstufe installiert, verfügen Sie
über ein nicht allzu großes, aber auch nicht zu unkomfortables System
ohne graphische Bedienoberfläche. Ein solches System wird im Debian
Installer ausgewählt, wenn Sie als Administrator bei der Installation
nicht explizit etwas anderes festlegen. Es enthält nur wenige größere
Anwendungen und Daemons.
Dazu gehören u.a. ein abgespeckter Exim als lokales
Mail-Server-Programm, die E-Mail-Programme
mutt
und
mailx
, eine
vollständige Perl-Installation (d.h. Perl mitsamt allen
„Core“-Modulen
[6]
),
Python, Client-Anwendungen für SSH, FTP, Telnet, NFS und Whois, ein
Text-Modus-Webbrowser (
w3m
) und der allgegenwärtige
Textdateien-Betrachter
less
. Außerdem ist
reportbug
enthalten, ein
Programm zum Melden von Fehlern in Debian (siehe dazu „Bugreports
anzeigen“ in
Abschnitt 37.3, „Bugreports anzeigen“
).
2.13.4. Prioritätsstufe „optional“ (
optional
Dies ist in gewisser Weise der Standardwert für die Priorisierung eines
Pakets. Alle Pakete, die in keine der anderen Stufen gehören, werden
dieser Prioritätsstufe zugeordnet. Sie enthält deswegen auch den
Großteil aller Pakete in Debian. Optional bedeutet in diesem Kontext,
dass diese Pakete nicht von jedermann benötigt werden.
2.13.5. Prioritätsstufe „extra“ (
extra
In dieser Prioritätsstufe sind einerseits Pakete, die im Konflikt mit
Paketen aus den anderen Prioritätsstufen stehen. Dazu zählen z.B.
alternative Mail-Transport-Agents wie Postfix, alternative Cron-Daemons
wie Cronie oder alternative Syslog-Daemons wie Syslog-NG oder die
Syslog-Implementation aus Busybox.
Andererseits enthält sie aber auch Pakete, die nur in ganz bestimmten
Fällen gebraucht werden, z.B. Programme zur Nutzung exotischer
Hardware oder nur in bestimmten Umfeldern vorkommenden Daten, Pakete
mit Debug-Symbolen für andere Pakete, Übergangspakete, etc.
Beispielsweise sind viele Pakete aus dem Bereich „Wissenschaft“ mit
dieser Priorisierung versehen.
2.13.6. Markierung „essentiell“ (
essential
Zusätzlich zu den bereits oben vorgestellten Prioritäten gibt es noch
die Markierung
essential
. Diese Markierung tragen nur sehr grundlegende
Pakete.
Eintrag in der Paketbeschreibung.
Essential: yes
Pakete mit dieser Markierung müssen nicht explizit als Abhängigkeit bei
anderen Paketen deklariert werden. In der Regel sind alle Pakete der
Prioritätsstufe „erforderlich“ in dieser Form markiert, von denen kein
anderes Paket dieser Stufe abhängt. Somit wird auch bei der Entfernung
eines nicht-essentiellen Pakets der Stufe „erforderlich“ gewarnt. Das
passiert jedoch nicht, wenn bei einer Umbenennung eines solchen Pakets
das alte Paket entfernt wird, um für das neue Paket Platz zu machen oder
weil es nicht mehr gebraucht wird (d.h. irgendwann nicht mehr notwendig
ist).
Unter „Pakete nach Prioritäten finden“ in
Abschnitt 8.9, „Pakete nach Prioritäten finden“
lesen Sie, wie Sie auflisten, welche
Pakete genau auf Ihrer Version von Debian als essentiell markiert sind.
Weiterhin hat die Markierung „essentiell“ den Effekt, dass sich
beispielsweise auch
dpkg
weigert, solche Pakete zu entfernen. Mit dem
zusätzlichen Parameter
--force-remove-essential
übergehen Sie diese
Voreinstellung und können die Aktion trotzdem durchführen (siehe dazu
„Paketoperationen erzwingen“ in
Abschnitt 8.45, „Paketoperationen erzwingen“
).
apt-get
und
aptitude
entfernen diese Pakete nur nach Eingabe des
vollständigen Satzes „Ja, tue was ich sage!“ (
apt-get
) bzw. „Mir ist
klar, dass das eine sehr schlechte Idee ist.“ (
aptitude
). Diese Sätze
werden jeweils in der eingestellten Sprache Ihres Debiansystems
angezeigt (Lokalisierung), sofern eine Übersetzung vorhanden ist.
Nachfolgendes Beispiel zeigt die Bildschirmausgabe vor der Entfernung
des Pakets
init
[Debian-Paket-init]
Eingabeaufforderung von
apt-get
vor der Entfernung des essentiellen Pakets
init
# apt-get remove init
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
init
WARNUNG: Die folgenden essentiellen Pakete werden entfernt.
Dies sollte NICHT geschehen, außer Sie wissen genau, was Sie tun!
init
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 29,7 kB Plattenplatz freigegeben.
Sie sind im Begriff, etwas potentiell Schädliches zu tun.
Zum Fortfahren geben Sie bitte »Ja, tue was ich sage!« ein.
?]
2.14. Verbreitungsgrad von Paketen
Wie bereits deutlich wurde, besteht die Distribution Debian GNU/Linux
aus einer sehr großen Anzahl Paketen. In dieser Vielfalt spiegeln sich
die Interessen der Benutzer sehr deutlich wieder.
Das
Debian Quality Assurance Team
(kurz QA Team)
[DebianQA]
sorgt
dafür, dass eine möglichst hohe Softwarequalität in Debian gehalten
wird. Neben den Werkzeugen zur Qualitätssicherung (siehe
„Qualitätskontrolle“ in
Kapitel 37,
Qualitätskontrolle
) gehören dazu die
Trendforschung, die Bestandsaufnahme und eine Auswertung darüber, ob und
vor allem wie häufig ein Paket installiert wird. Das sagt zwar nicht
unbedingt etwas darüber aus, ob es tatsächlich verwendet wird, aber es
zeigt, ob an einem Softwarepaket prinzipiell Interesse besteht. Dieser
Aspekt fließt mit ein, um zu entscheiden, ob ein Paket weiterhin
Bestandteil des Softwareumfangs von Debian bleibt.
Diese Analyse geht direkt auf den Ursprung von Debian zurück und
versucht eine Antwort darauf zu geben, welche Software die Benutzer
verwenden. Unmittelbare Ergebnisse sind die Auswahl der Softwarepakete,
die in Debian bereitstehen und für diese Distribution gepflegt werden,
weiterhin die Einordnung in die entsprechenden Kategorien (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
) und die Priorisierung
(siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
). Für die
Zusammenstellung von Installationsimages spielt der Nutzungsgrad eine
große Rolle – Pakete, die häufiger genutzt werden, haben eine größere
Chance, auf die ersten Installationsimages zu gelangen.
Grundlage für die erfassten Daten ist das Projekt Popcon – der
Debian
Popularity Contest
[Debian-Popularity-Contest]
. Die Benutzung ist
freiwillig und über dessen Teilnahme entscheiden Sie als Benutzer
selbst. Voraussetzung dafür ist die Installation des Pakets
popularity-contest
und dessen Aktivierung.
Danach wird in regelmäßigen Abständen — i.d.R. wöchentlich — der
Softwarebestand (d.h. die installierten Pakete) erfasst, an das
Popcon-Projekt übertragen und danach anonymisiert ausgewertet. Über die
Projektwebseite erfolgt eine tabellarische Übersicht und eine graphische
Auswertung.
Abbildung 2.10, „Erfasster Verbreitungsgrad für das Paket
nginx
zeigt beispielhaft das Ergebnis für das
Paket
nginx
Abbildung 2.10. Erfasster Verbreitungsgrad für das Paket
nginx
2.14.1. Verschiedene Metriken
Neben der Architektur der Installation und welche Pakete installiert
sind, erfasst Popcon anhand der Zeitstempel im Dateisystem außerdem
noch folgende Daten für jedes installierte Paket:
Wann wurde das Paket zuletzt aktualisiert oder installiert? Dies
wird für den Graphen
recent
(kürzlich) verwendet und anhand des
Zeitstempels der Dateien des Pakets unter
/var/lib/dpkg/info
eruiert.
Wann wurde zuletzt auf ausführbare Dateien des Pakets zugegriffen?
Dies wird für die Graphen
vote
(dafür stimmen) und
old
(alt)
verwendet und anhand der Zeitstempel des Zugriffs (
atime
) von
Programmdateien des Paketes eruiert.
Werden weder Änderungszeitstempel noch Zugriffszeitstempel beim
Projekt mitgeliefert, wird das Paket im Graphen
no-files
(keine
Dateien) aufgelistet.
2.14.2. Vergleichen von Paketen
Unter dem Debian Popcon Graph
[Debian-Popcon-Graph]
können Sie dies
sogar benutzen, um den Verlauf der Beliebtheit von Paketen
gegenüberzustellen.
Abbildung 2.11, „Vergleich Installationen und Nutzung der Pakete
screen
und
tmux
zeigt beispielhaft
einen Vergleich zwischen
screen
und
tmux
in den beiden Metriken
installed
und
vote
Abbildung 2.11. Vergleich Installationen und Nutzung der Pakete
screen
und
tmux
2.15. Lokale Paketmarkierungen
Ein installiertes Debianpaket kann zusätzliche, lokale Markierungen
besitzen. Diese beeinflussen z.B. dessen Aktualisierung oder — wenn
kein anderes Paket mehr von ihm abhängt — veranlassen oder verhindern
auch seine automatische Deinstallation.
2.15.1. Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Diese Markierungen werden teilweise bereits automatisch von APT und
aptitude
gesetzt, wenn es Pakete installiert, entfernt oder
aktualisiert. Als Systembetreuer können Sie jederzeit eingreifen und die
Markierungen eigenhändig setzen und entfernen.
Die folgenden Paketmarkierungen sind in Benutzung:
automatisch installiert (
automatic
das Paket wurde automatisch installiert, i.d.R. als Abhängigkeit
eines anderen Pakets (siehe „Paketabhängigkeiten anzeigen“ in
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
). Diese Markierung veranlasst, dass
dieses Paket wieder entfernt wird, wenn keine weiteren, installierten
Pakete mehr von diesem abhängen.
manuell installiert (
manual
das Paket wurde manuell, d.h. explizit installiert. Diese Markierung
verhindert, dass dieses Paket automatisch mit entfernt wird, wenn kein
weiteres Paket mehr von ihm abhängt (siehe „Umgang mit Waisen“ in
Abschnitt 8.44, „Umgang mit Waisen“
).
halten (
hold
das Paket wird in der vorliegenden, installierten Version auf dem System
gehalten und nicht aktualisiert (
upgrade
) oder deinstalliert
(siehe „Pakete aktualisieren“ in
Abschnitt 8.41, „Pakete aktualisieren“
und „Pakete
deinstallieren“ in
Abschnitt 8.43, „Pakete deinstallieren“
).
Die Markierung
manuell installiert
entspricht defacto dem
Nicht-Vorhandensein der Markierung
automatisch installiert
. Ein Paket
hat jeweils immer genau eine der beiden Markierungen
manuell
installiert
oder
automatisch installiert
Die vorgenannten Paketmarkierungen werden von
dpkg
(nur
hold
), APT und
aptitude
ausgewertet. Die Unterscheidung
automatisch/manuell
installiert
wird dazu in der Datei
/var/lib/apt/extended_states
gespeichert, die
hold
-Markierungen in
/var/lib/dpkg/status
[7]
Informationen zu jedem Paket in der Datei
/var/lib/apt/extended_states
(Ausschnitt).
...

Package: gnome-menus
Auto-Installed: 0
Architecture: i386

Package: libfont-afm-perl
Auto-Installed: 1
Architecture: i386

Package: libhtml-parser-perl
Auto-Installed: 1
Architecture: i386

...
Ein Paket "auf hold" in der Datei
/var/lib/dpkg/status
(Ausschnitt).
...

Package: awesome
Status: hold ok installed
Priority: optional
Section: x11
Installed-Size: ...
...
2.15.2. Aptitude-spezifische Paketmarkierungen
aptitude
speichert weitere Informationen zu den Paketen eigenständig
in der Datei
/var/lib/aptitude/pkgstates
. Dazu gehören:
Verbotene Versionen (
forbid-version
ForbidVer
Von Ihnen als lokaler Administrator nicht erwünschte Version, die nicht
installiert wird, auf die nicht aktualisiert wird bzw. die beim
Aktualisieren übersprungen wird.
Neue Pakete (
New Packages
Unseen
aptitude
pflegt eine Liste mit neuen Paketen, die in den Paketlisten
der abonnierten APT-Repositories aufgetaucht sind. Diese Markierung
können Sie mit dem Aufruf
aptitude forget-new
zurücksetzen.
Entfernungsgrund (
Remove-Reason
aptitude
zeigt an, warum ein Paket entfernt wird: wegen nicht (mehr)
erfüllter Abhängigkeiten, wegen Konflikten mit anderen Paketen, oder
weil es nicht mehr gebraucht wird (sprich: kein Paket mehr davon
abhängt). Wird solch eine Paketentfernung nur vorgemerkt, so speichert
aptitude
bis zur Entfernung auch den Grund für diese.
Benutzerspezifische Markierungen (
User Tags
Sie als Benutzer dürfen für Pakete mit dem Unterkommando
add-user-tag
eigene Markierungen setzen. Nach diesen suchen Sie im Paketbestand mit
dem Muster
?user-tag(Muster)
. Muster bezeichnet hier einen Regulären
Ausdruck, mit dem Sie die Markierung spezifizieren.
aptitude
-spezifische Zusatzinformationen zu Paketen (Ausschnitt).
...

Package: python3-pkg-resources
Architecture: amd64
Unseen: no
State: 1
Dselect-State: 1
Remove-Reason: 0
ForbidVer: 18.8-1
User-Tags: broken-by-807773

...
Diese benutzerspezifischen Markierungen werden auch in der Textoberfläche
(text-based user interface, kurz TUI) von
aptitude
angezeigt, jedoch
können Sie diese dort nicht ändern.
2.15.3. Lesen und Anzeigen einer Markierung mit
aptitude
Sichtbar werden alle Markierungen zu einem Paket, wenn Sie die Details
dazu erfragen – entweder direkt über die Kommandozeile oder in der
Textoberfläche zu
aptitude
. Wir verdeutlichen Ihnen das hier anhand
des installierten und gehaltenen Pakets
python-pkg-resources
Auf der Kommandozeile rufen Sie hierfür
aptitude
mit dem Unterkommando
show
gefolgt vom Paketnamen auf. In den Zeilen 2 und 3 der
nachfolgenden Ausgabe erfahren Sie einerseits, dass das Paket
python-pkg-resources
automatisch installiert wurde und die Version 18.8-1
nicht lokal eingespielt werden darf. Darüberhinaus wurde eine manuelle
Markierung vergeben (
broken-by-807773
), die kennzeichnet, dass das
Paket defekt ist (
broken
). Die Ziffernfolge referenziert die Nummer
des Bugs im Debian Bug Tracking System (BTS) und ermöglicht Ihnen,
nachzulesen, warum der Eintrag da ist.
Darstellung der Markierungen zum Paket
python-pkg-resources
mittels
aptitude
$ aptitude show python-pkg-resources
Paket: python-pkg-resources
Zustand: Installiert
Verbotene Version: 18.8-1
Automatisch installiert: ja
Version: 18.7-1
Benutzermarkierungen: broken-by-807773

...
In der Textoberfläche von
aptitude
bekommt jeder Eintrag in der
Paketliste zusätzliche Buchstaben. Dabei stehen die Buchstaben
für
hold
und
für
automatic
(siehe
Abbildung 2.12, „Ausgabe der Paketmarkierungen in der Textoberfläche von
aptitude
).
Abbildung 2.12. Ausgabe der Paketmarkierungen in der Textoberfläche von
aptitude
aptitude
kann ebenfalls nach allen Paketen fahnden, die automatisch
installiert wurden und somit das Flag
automatic
tragen. Es kennt dazu
das spezielle Muster
?automatic
(Kurzform
~M
) zum Unterkommando
. Ausführlicher besprechen wir das in „Automatisch installierte
Pakete mit
aptitude
anzeigen“ in
Abschnitt 8.10.2, „
aptitude
benutzen“
2.15.4. Lesen und Anzeigen einer Markierung mit
apt-mark
Das Werkzeug
apt-mark
ist spezialisiert auf die Paketmarkierungen und
kann Ihnen die Pakete ausgeben, bei denen nur ein bestimmtes Paketflag
gesetzt ist. Es kennt dazu die folgenden sechs Unterkommandos
showauto
alle automatisch installierten Pakete
showmanual
alle manuell installierten Pakete
showinstall
alle Pakete, die zur Installation vorgemerkt sind
showhold
alle Pakete, deren Zustand beibehalten wird
showremove
alle Pakete, die zur Entfernung vorgemerkt sind
showpurge
alle Pakete, die zur Entfernung inklusive der Konfiguration vorgemerkt sind
Nachfolgend sehen Sie beispielhaft nur das Ergebnis des Aufrufs für die
manuell installierten Pakete. Auf automatisch installierte Pakete gehen wir
genauer in
Abschnitt 8.10, „Automatisch installierte Pakete anzeigen“
ein. Dem Umgang mit
dem Unterkommando
showhold
für die Verwendung des
hold
-Flags in der
Praxis ist der Abschnitt „Ausgewählte Pakete nicht aktualisieren“ in
Kapitel 16,
Ausgewählte Pakete nicht aktualisieren
gewidmet.
Auflistung aller manuell installierten Pakete mittels
apt-mark
# apt-mark showmanual
abiword
acpi
acpi-support
acpi-support-base
...
apt-mark
erlaubt keine Eingrenzung, welche Pakete überprüft werden. Es
validiert stets den gesamten Paketbestand.
2.15.5. Setzen und Entfernen einer Markierung mit
apt-mark
Die Markierungen
automatic
und
manual
werden von den Programmen zur
Paketverwaltung eigenständig gesetzt, wenn Sie Pakete installieren.
Grundlage sind die ausgewerteten Paketabhängigkeiten. Trotzdem können
Sie stets eigenhändig eingreifen, sofern dazu Ihrerseits Bedarf besteht.
apt-mark
kennt dafür diese sechs Schalter:
auto
automatisch installiert
install
Paket wird installiert
manual
Paket wird manuell installiert
hold
Paket wird beibehalten
purge
Paket inklusive Konfiguration löschen
remove
Paket löschen
Damit setzen Sie die entsprechende Markierung für ein angegebenes Paket
explizit. Dazu erwartet
apt-mark
als Parameter ein einzelnes Paket oder
eine Paketliste. Die nachfolgende Ausgabe zeigt das Setzen der
Markierung
manual
für das Paket
wireshark
Setzen der Paketmarkierungen
manual
für das Paket
wireshark
# apt-mark manual wireshark
wireshark wurde als manuell installiert festgelegt.
Für das Halten eines Pakets existieren die Unterkommandos
hold
und
unhold
. Welchen konkreten Nutzen das haben kann, erfahren Sie unter
„Ausgewählte Pakete nicht aktualisieren“ in
Kapitel 16,
Ausgewählte Pakete nicht aktualisieren
Liste der Pakete eingrenzen, deren Markierung geändert wird
Um nur eine Auswahl an Paketen zu markieren, erlaubt
apt-mark
eine
Paketliste in Form einer Datei, die Sie beim Aufruf mit übergeben:
apt-mark -f=paketliste manual
Die Datei ist eine Textdatei, in der pro Zeile ein Paketname steht. Mit
obigem Aufruf werden alle Pakete auf „manuell installiert“ gesetzt,
die in der übermittelten Paketliste angegeben sind.
2.15.6. Was passiert, wenn Paketmarkierungen geändert werden?
Durch das Setzen von Paketmarkierungen verändert sich die Art und Weise,
wie die Paketabhängigkeiten bewertet werden.
dpkg
apt
apt-get
und
aptitude
respektieren die von Ihnen gesetzten Markierungen.
apt
apt-get
und
aptitude
empfehlen Ihnen bei einer Änderung des
Paketbestands beispielsweise andere Pakete als sonst, um die
Paketabhängigkeiten nicht zu verletzen. Oder sie schlagen vor, bestimmte
Pakete zu entfernen, da sie neu als nicht mehr gebraucht angesehen
werden.
Setzen oder Entfernen Sie bewusst das
hold
-Flag und legen somit eine
Version explizit fest, nehmen Sie Einfluss auf den Zustand Ihres Systems.
Wobei Ihnen das von Nutzen sein kann, erklären wir unter „Ausgewählte
Pakete nicht aktualisieren“ (
Kapitel 16,
Ausgewählte Pakete nicht aktualisieren
ausführlicher.
2.15.7. Setzen und Entfernen einer Markierung mit
aptitude
Alternativ zu
apt-mark
bietet sich auch
aptitude
an. Dort heißen
die Unterkommandos etwas anders, ebenso agiert
aptitude
vielleicht
ungewohnt. In der Standardeinstellung will es Pakete entfernen, die
mangels geänderter Abhängigkeiten nicht mehr benötigt werden. Im u.g.
Beispiel gibt es z.B. Pakete, die eine Abhängigkeit auf das Paket
wireshark
haben, aber keine, die eine Abhängigkeit auf
zshdb
haben.
Entsprechend will
aptitude
es auch direkt entfernen.
Setzen von Paketmarkierungen mit
aptitude
# aptitude markauto wireshark zshdb
Die folgenden Pakete werden ENTFERNT:
zshdb{u}
0 Pakete aktualisiert, 0 zusätzlich installiert, 1 werden entfernt und 26 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 451 kB frei werden.
Möchten Sie fortsetzen? [Y/n/?] n
Abbruch.
Möchten Sie eine Markierung wieder aufheben, kennt
aptitude
den
Schalter
unmarkauto
. Das nachfolgende Beispiel demonstriert das
Vorgehen.
Aufheben von Paketmarkierungen mit
aptitude
# aptitude unmarkauto wireshark zshdb
Es werden keine Pakete installiert, aktualisiert oder entfernt.
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 26 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
Dabei fällt auf, das
aptitude
im Gegensatz zu
apt-mark
nicht angibt,
dass sich eine Markierung geändert oder nicht geändert hat. Stattdessen
informiert es Sie darüber, dass es keine Pakete entfernt oder
aktualisiert. Kurioserweise aktualisiert es (in der Standardeinstellung)
nicht automatisch die Pakete, bei denen die
hold
-Markierung entfernt
wurde:
Setzen eines Paketes auf
hold
mit
aptitude
# aptitude search '~U'
i A awesome - Hochkonfigurierbarer Fenstermanager für X
# aptitude hold awesome
Es werden keine Pakete installiert, aktualisiert oder entfernt.
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 26 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
# aptitude search '~U'
ihA awesome - Hochkonfigurierbarer Fenstermanager für X
# aptitude unhold awesome
Es werden keine Pakete installiert, aktualisiert oder entfernt.
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 26 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
# aptitude search '~U'
i A awesome - Hochkonfigurierbarer Fenstermanager für X
2.16. Wie finde ich passende Pakete
2.16.1. Paketquellen
Debianpakete sind von verschiedenen Orten und Medien verfügbar. Dazu
zählen sowohl Online- als auch Offline-Quellen, bspw. offizielle,
private und unternehmenseigene Repositories und Spiegelserver
Mirrors
). Für die Recherche und Installation ohne Internetanbindung
stehen bspw. vorbereitete Distributionsimages in unterschiedlichen
Größen und Zusammenstellungen für CD, DVD, Blu-ray und USB-Stick über
die Webseite des Debian-Projekts bereit
[Debian-besorgen]
Je nach den persönlichen Vorlieben sowie der Bandbreite der lokalen
Internetanbindung ist jeweils die eine oder andere Variante zur
Installation empfehlenswert – eine pauschale Empfehlung können wir
Ihnen an dieser Stelle leider nicht geben. Für eine Erstinstallation hat
sich bei uns die Reihenfolge
Bezug und Installation über ein kleines
Installationsimage
(genannt
Netinst-ISO
) und die nachfolgende,
individuelle Auswahl der zusätzlich noch benötigten Programme über eine
Netzwerkinstallation vielfach bewährt. Damit bleiben die eingerichteten
Debian-Systeme von Beginn an überschaubar und pflegeleicht und enthalten
möglichst wenig Ballast.
Die Auswahl eines Spiegelservers, der zu Ihren technischen Gegebenheiten
und Gewohnheiten in der Benutzung Ihres Debian-Systems passt, ist eine
Philosophie für sich. Auf die unterschiedlichen Varianten für bereits
bestehende Spiegelserver gehen wir genauer in „Geeigneten Paketmirror
auswählen“ in
Abschnitt 3.5, „Geeigneten Paketmirror auswählen“
ein. Was Sie tun
müssen, um hingegen einen eigenen Spiegelserver aufzusetzen und zu
betreiben, geht über das Basiswissen deutlich hinaus. Wir erklären Ihnen
die Vorgehensweise dazu in
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
2.16.2. Paketnamen
Ist Ihnen der Name eines Pakets oder ein Fragment daraus bekannt, stehen
Ihnen alle Möglichkeiten offen. Einerseits helfen Ihnen die Werkzeuge
dpkg
apt-cache
sowie
aptitude
auf der Kommandozeile weiter.
Desweiteren verfügen die graphischen Programme wie beispielsweise
Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
), SmartPM (siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) oder
auch PackageKit (siehe
Abschnitt 6.4.4, „PackageKit“
) über eine entsprechende
Suchfunktion. Für eine Recherche über das Internet hilft Ihnen nicht nur
die Webseite des Debian-Projekts weiter, sondern auch spezielle
Suchmaschinen und Verzeichnisdienste. Alle genannten Varianten stellen
wir Ihnen unter „Pakete über den Namen finden“ in
Abschnitt 8.20, „Pakete über den Namen finden“
genauer vor.
2.16.3. Paketeigenschaften und Einordnung
Bei den oben angesprochenen Varianten können Sie neben der Einordnung in
die jeweilige Paketkategorie (siehe dazu „Sortierung der Pakete nach
Verwendungszweck“ in
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
bspw. auch über die Veröffentlichungen (siehe
Abschnitt 2.10, „Veröffentlichungen“
),
den Maintainer (siehe
Abschnitt 8.22, „Paket nach Maintainer finden“
), den Paketinhalt
(siehe
Abschnitt 8.24, „Paket zu Datei finden“
) oder ein Fragment aus dem Paket (siehe
Abschnitt 8.27, „Nach Muster in einem Paket suchen“
) suchen. Darüber hinaus gibt es
eine konzept- und facettenbasierte Suche mit Hilfe von Debtags.
Letzteres besprechen wir detailliert unter „Erweiterte
Paketklassifikation mit Debtags“ in
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
[5]
Hat z.B. ein System keine Netzwerkanbindung
und wird deswegen nur sehr selten aktualisiert, ist APT nicht notwendig.
Aktualisierungen können auch auf anderen Wegen, bspw. via USB-Stick oder
SD-Karte mittels
dpkg
eingepflegt werden. Allerdings sind dann
Abhängigkeiten ggf. manuell aufzulösen. Bei reinen Paketaktualisierungen
ist dies nur sehr selten ein Problem, da die Abhängigkeiten im
Normalfall auch schon von der vorherigen Paketversion gebraucht
wurden.
[6]
Perl selbst und ein paar wenige
Perl-Module sind im Paket
perl-base
welches „essentiell“ ist.
[7]
In früheren
Debian-Veröffentlichungen wurden die
hold
-Markierungen von
aptitude
und
dpkg
getrennt gespeichert und
apt-get
wusste nichts
von der
hold
-Markierung. Auch wurde die
automatisch
installiert
-Markierung zuerst von
aptitude
eingeführt und
dementsprechend anfangs nur in
/var/lib/aptitude/pkgstates
gespeichert.
Teil II. Werkzeuge
Kapitel 3. Paketquellen und Werkzeuge
3.1. Paketquellen
3.1.1. Begriff und Hintergrund
Eine Paketquelle bezeichnet einen Ort, von dem aus Softwarepakete zur
Verfügung stehen. Alternativ und gleichbedeutend werden dafür auch die
Begriffe
APT-Repository
Repository
oder ganz kurz nur
Repo
benutzt. Der Begriff
Paketmirror
– oder auch komplett eingedeutscht
als
Paketspiegel
– wird ebenfalls gerne verwendet. Letzteres
impliziert aber zusätzlich, dass es sich dabei um eine vollständige Kopie
einer offiziellen Paketquelle handelt, also z.B. um einen Spiegelserver
von Debian oder Ubuntu.
Eine Paketquelle kann dabei aber auch ein externes Speichermedium wie eine
CD, DVD, Blu-ray, eine Speicherkarte oder ein USB-Stick sein, aber ebenso
ein lokales oder über das Netzwerk angebundenes Verzeichnis auf einer
Festplatte. Waren noch vor wenigen Jahren die erstgenannten, festen
Installationsmedien üblich, werden heute als Paketquelle aufgrund der
weitestgehend flächendeckenden Verfügbarkeit des Internets stattdessen
FTP- und HTTP-Server bevorzugt. Damit sind die von Ihnen genutzten
Paketquellen stets aktuell.
3.1.2. Benutzte Paketquellen
Welche Paketquellen Sie verwenden, legen Sie bei Debian an zwei Stellen
im Verzeichnisbaum fest:
in der Datei
/etc/apt/sources.list
für primäre Paketquellen
in den Dateien im Verzeichnis
/etc/apt/sources.list.d/
für sekundäre,
zusätzliche Paketquellen. Die Paketverwaltung berücksichtigt alle Dateien
in diesem Verzeichnis, die auf
*.list
enden. In der Standardinstallation
ist dieses Verzeichnis leer.
Diese Dateien zählen zu den zentralen Komponenten des Debian-Paketsystems.
An diesen Einträgen orientieren sich die Werkzeuge zur Paketverwaltung, wenn
es um Änderungen im lokalen Paketbestand und entsprechende Aktualisierungen
der Pakete auf Ihrem System geht.
Bei der Auswahl der Paketquellen sind Sie nicht auf lediglich eine
dieser o.g. Ressourcen beschränkt. Sie können diese beliebig mischen und
somit auch Konzepte zur Ausfallsicherung umsetzen. Diese Konstellation
kommt genau dann zum Tragen, wenn Ihre primäre Paketquelle nicht in der
gewohnten Art und Weise zur Verfügung steht, bspw. bei einem Ausfall des
Internetzugangs oder der Wartung des von Ihnen bevorzugten Paketspiegels.
3.1.3. Aufbau und Struktur einer Paketquelle
Jede Paketquelle folgt einer festgelegten Verzeichnisstruktur
[Aoki-Debian-Referenz]
, auf die sich die einzelnen Programme zur
Paketverwaltung stützen. Interessant wird diese Struktur genau dann,
wenn Sie eine Paketquelle mit selbsterstellten Paketen oder einen
eigenen Paketmirror aufsetzen und betreiben möchten (siehe
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
).
3.2. Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Wie bereits in
Abschnitt 3.1.2, „Benutzte Paketquellen“
ausgeführt, sind die
darin benannten Einträge Dreh- und Angelpunkt für alle verwendeten
Paketquellen. Erfolgen von Ihnen oder einem Programm Änderungen darin, muss
die Paketverwaltung anschließend noch über diese Modifikation informiert
werden, damit sie den Paketcache anhand der aktualisierten Liste von
Repositories auf den neuesten Stand bringt. Die Paketverwaltung erkennt die
vorgenommenen Änderungen nicht von sich aus und wartet auf ihren „Anstoß“.
Danach synchronisiert sie die lokal vorliegenden Informationen über die
verfügbaren Pakete und deren Abhängigkeiten (siehe
Kapitel 7,
Paketcache
) mit den
konfigurierten Paketquellen.
Wir empfehlen Ihnen zur Aktualisierung den folgenden Ablauf:
Erstellen Sie zuerst eine Sicherheitskopie der entsprechenden Datei,
z.B. mit
cp -pv /etc/apt/sources.list /etc/apt/sources.list.backup
Gegebenenfalls macht das auch Ihr Texteditor automatisch.
Tragen Sie die neuen oder veränderten Paketquellen nach (siehe
Abschnitt 3.3, „Paketquellen eintragen und ändern“
) und speichern diese Änderungen
ab. Wenn Sie lediglich eine neue Paketquelle hinzufügen, bietet sich dazu
das Verzeichnis
/etc/apt/sources.list.d/
an. Der Name dieser Datei muss
dann auf
.list
enden, bspw.
skype.list
für die Paketquelle zum
Kommunikationsprogramm
Skype
Sofern dies
keine
offiziellen Debian-Repositories sind, verifizieren
Sie zusätzlich die Paketquelle, die Sie hinzugefügt oder geändert
haben. Unter „Paketquelle auf Echtheit überprüfen“ in
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
erfahren Sie, wie das zu
erfolgen hat. Offizielle Paketquellen verifizieren Sie mit den bereits
mitgelieferten Schlüsseln ihrer Debian-Installation.
Aktualisieren Sie die lokalen Paketlisten mit einem der Kommandos
namens
apt-get update
apt update
oder
aptitude update
. Bitte
beachten Sie dazu auch unsere Anmerkungen unter
„Liste der verfügbaren Pakete aktualisieren“ in
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
. Handelt es sich um ein
Upgrade auf eine neue Version Ihrer Distribution, lesen Sie bitte dazu
zusätzlich unter „Distribution aktualisieren“ in
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
nach.
Mit dieser Vorgehensweise ist sichergestellt, dass die Paketverwaltung
Ihre Veränderungen in der Liste der Paketquellen beachtet hat. Nun
können Sie die Pakete aus den geänderten oder neuen Paketquellen zu
Ihrem System hinzufügen.
Mit etwas Automatisierung den Ablauf vereinfachen
Möchten Sie diese Schrittfolge automatisieren, hilft Ihnen das
Kommando
add-apt-repository
weiter. Dessen Möglichkeiten besprechen
wir genauer in
Abschnitt 3.10, „Einträge mit
add-apt-repository
im Griff behalten“
Im Bedarfsfall können Sie auch auf den Stand vor Ihren Veränderungen
zurückgreifen. Sollte dies erforderlich sein, restaurieren Sie die im
ersten Schritt angelegte Sicherheitskopie oder löschen die zusätzliche,
zuvor angelegte Datei im Verzeichnis
/etc/apt/sources.list.d/
Anschließend führen Sie das Kommando
apt-get update
apt update
oder
aptitude update
erneut aus und gelangen somit auf den vorherigen
Stand zurück.
Versionierung statt manuellem Backup
Anstatt manuell Backups zu machen, können Sie auch das Verzeichnis
/etc/apt/
mit einer Versionsverwaltung wie z.B. Git versionieren. Das
Debian-Paket
etckeeper
[Debian-Paket-etckeeper]
bietet dies sogar
automatisiert bei jeder Paketinstallation, -Aktualisierung oder
-Entfernung an, versioniert dann aber gleich das ganze Verzeichnis
/etc/
3.3. Paketquellen eintragen und ändern
Alle in
Abschnitt 3.1.2, „Benutzte Paketquellen“
benannten Dateien sind
Textdateien, die Sie als Benutzer
root
mit Hilfe eines Texteditors
direkt bearbeiten, bspw. mit Nano, Vim oder Emacs (siehe
Abbildung 3.1, „Editieren der Datei
/etc/apt/sources.list
im Texteditor Vim“
für Vim).
Abbildung 3.1. Editieren der Datei
/etc/apt/sources.list
im Texteditor Vim
Das Werkzeug
APT
kennt ein Unterkommando
edit-sources
# apt edit-sources
Es öffnet die Datei
/etc/apt/sources.list
wiederum in einem Texteditor
ihrer Wahl zur weiteren Bearbeitung. Speichern Sie ihre Änderungen,
erfolgt noch ein zusätzlicher Schritt: die Inhalte der Datei werden auf
syntaktische Korrektheit hin überprüft. Damit vermeiden Sie fehlerhafte
Einträge für Paketquellen.
Wie Sie die Liste der Paketquellen selbst auf Korrektheit prüfen, erklären
wir in
Abschnitt 3.4.9, „Einen Eintrag auf syntaktische Korrektheit prüfen“
genauer.
3.4. Die Datei
/etc/apt/sources.list
verstehen
3.4.1. Format der Paketliste
Wie auf UNIX/Linux-Systemen üblich, ist die Konfigurationsdatei
/etc/apt/sources.list
eine reine Textdatei. Die Einträge darin
erfolgen zeilenweise. Jede einzelne Paketquelle beschreiben Sie
vollständig in einer separaten Zeile.
Abbildung 3.2.
/etc/apt/sources.list
im Texteditor
nano
Sie fügen eine weitere Paketquelle hinzu, indem Sie die Liste um eine
weitere Zeile ergänzen. Tragen Sie dazu in einer freien oder
zusätzlichen Zeile die gewünschte Paketquelle nach. Um eine bereits
erfasste Paketquelle zu modifizieren, ändern Sie den Listeneintrag in
der entsprechenden Zeile. Mit Hilfe des
-Zeichens zu Beginn einer
Zeile kommentieren Sie den jeweiligen Eintrag aus. Eine Paketquelle
entfernen Sie endgültig aus der Liste, indem Sie die betreffende Zeile
löschen.
Anzahl der Einträge
Es gibt keine Begrenzung für die Anzahl der Einträge. Bitte beachten Sie
aber, dass die Zeit und das Übertragungsvolumen für die Aktualisierung
der Paketlisten umso größer wird, je mehr Einträge vorhanden sind.
Bei der späteren Aktualisierung der lokalen Paketliste mittels
apt-get
update
aptitude update
oder
apt update
(siehe
Abschnitt 8.41, „Pakete aktualisieren“
) werden die Paketquellen in der Reihenfolge
abgearbeitet, wie sie in der Datei
/etc/apt/sources.list
aufgeführt
sind. Ignoriert werden dabei Leerzeilen und die Einträge, die mit einem
Hashzeichen
beginnen und somit auskommentiert sind.
Empfehlung zur Abfolge
Für das Hinzufügen und Ändern der Paketquellen empfehlen wir Ihnen eine
bestimmte Reihenfolge (siehe
Abschnitt 3.2, „Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen“
).
Damit erleben Sie zukünftig keine bösen Überraschungen mehr.
Zur Automatisierung des Vorgangs wurden ebenfalls eine Reihe von
Programmen entwickelt. Dazu zählen
apt-cdrom
(siehe dazu
Abschnitt 3.9, „Physische Installationsmedien mit
apt-cdrom
einbinden“
) und
add-apt-repository
(siehe dazu
Abschnitt 3.10, „Einträge mit
add-apt-repository
im Griff behalten“
)). Sind Sie
hingegen weniger tastaturaffin, bieten sich als weitere Möglichkeiten
sowohl Synaptic sowie der Sources List Generator für Debian und Ubuntu
an. Diese Programme stellen wir Ihnen in
Abschnitt 3.11, „Einstellungen mit Synaptic“
und
Abschnitt 3.12, „Debian und Ubuntu Sources List Generator“
ausführlicher vor.
3.4.2. Format eines Eintrags
Jeder Eintrag in der Datei
/etc/apt/sources.list
folgt einem
festen Muster mit einer genauen Abfolge von definierten Feldern:
Art_der_Quelle URI Distribution [Komponente 1] [Komponente 2] [...]
Jedes dieser Felder hat eine bestimmte Funktion und erlaubt nur
ausgewählte Inhalte:
Art der Quelle
bezeichnet den verwendeten Pakettyp. Zulässig sind entweder
deb
für
Debian-Binärpakete und
deb-src
für Debian-Quellpakete. Genauer gehen
wir dazu unter „Debians Paketvarianten“ in
Abschnitt 2.7, „Debian-Pakete (Varianten)“
und „Debian-Paketformat“ im Detail in
Kapitel 4,
Debian-Paketformat im Detail
ein.
URI
legt die Art der Installationsquelle fest. Hierbei sind diese Angaben
zulässig:
file
: die Installationsquelle ist ein Verzeichnis. Dieses kann
sowohl lokal vorliegen, als auch von extern eingebunden sein, bspw. über
ein Netzwerkdateisystem wie AFS, NFS oder SMB
cdrom
: genutzt wird eine CD, eine DVD oder eine Blu-ray als Installationsmedium
http
: die Installationsquelle ist ein HTTP-Server
https
: die Installationsquelle ist ein HTTPS-Server
ftp
: die Installationsquelle ist ein FTP-Server
copy
: identisch zum Eintrag
file
, aber die bezogenen Debianpakete
werden zusätzlich im Paketcache abgelegt, der sich unter
/var/cache/apt/archives/
befindet
mirror
: Auswahl einer Installationsquelle anhand der GeoIP des
Servers (siehe
Abschnitt 3.7.2, „Paketquellen über GeoIP auswählen“
Distribution
benennt die Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
), aus der
Pakete installiert werden sollen. Typisch ist hier die Angabe des
Entwicklungsstands (siehe
Abschnitt 2.10.1, „Bedeutung der verschiedenen Entwicklungsstände“
) wie bspw.
stable
unstable
oder
testing
sowie die Nennung des alternativen
Distributionsnamens wie bspw.
Bullseye
Bookworm
oder
Sid
(siehe
Abschnitt 2.10.2, „Alias-Namen“
).
Bitte beachten Sie bei Debian und Ubuntu die vollständige
Kleinschreibung des Namens. Nicht-offizielle Paketquellen können an
dieser Stelle jedoch auch sonstige Zeichenketten bis hin zu einem
verlangen.
Komponente
bestimmt den Distributionsbereich, d.h. bspw. bei Debian
main
contrib
non-free
oder
non-free-firmware
. Ausführlicher gehen
wir darauf in
Abschnitt 2.9, „Distributionsbereiche“
ein.
3.4.3. Beispieleinträge für offizielle Pakete
Der Standardeintrag für den Bezug von stabilen Debianpaketen aus dem
Bereich
main
mit dem deutschen Spiegelserver als Paketquelle sieht
folgendermaßen aus:
deb http://ftp.de.debian.org/debian/ stable main
Mit diesem Eintrag beziehen Sie stets nur Pakete aus der aktuellen,
stabilen Veröffentlichung. Erscheint eine neue Veröffentlichung, sind
Sie damit auf der sicheren Seite und wechseln automatisch zum
Nachfolger.
Tragen Sie hingegen anstatt von
stable
den entsprechenden Aliasnamen
der Veröffentlichung in Kleinbuchstaben wie bspw.
bullseye
oder
bookworm
ein, nutzen Sie ausschließlich Pakete aus der damit spezifizierten
Veröffentlichung, die diesen Aliasnamen trägt. Möchten Sie später von
dieser auf eine andere Veröffentlichung wechseln, passen Sie zunächst
den Aliasnamen im Eintrag entsprechend an und aktualisieren nachfolgend
die lokale Paketdatenbank (siehe „Distribution aktualisieren“ in
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
).
Um hingegen zusätzlich die Pakete aus weiteren Paketbereichen wie bspw.
contrib
non-free
und
non-free-firmware
zu verwenden, ändern Sie
den Eintrag auf das Folgende, hier wiederum mit expliziter Angabe des
Aliasnamens
bookworm
deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware
In welcher Reihenfolge Sie die einzelnen, gewünschten Paketbereiche
angeben, spielt keine Rolle. Üblich ist jedoch die Abfolge anhand des
Freiheitsgrades der Softwarelizenz in der Form von
main contrib
non-free non-free-firmware
Auswahl eines Paketmirrors
Mehr Informationen zur Auswahl eines für Sie am besten geeigneten
Paketmirrors erfahren Sie unter „Geeigneten Paketmirror auswählen“ in
Abschnitt 3.5, „Geeigneten Paketmirror auswählen“
. Mit dieser Angabe beeinflussen
Sie die Bezugszeiten für Aktualisierungen der Paketlisten und der Pakete
erheblich zu ihren Gunsten.
3.4.4. Verzeichnis als Paketquelle
Pakete können Sie auch aus einem Verzeichnis ihres Debian-Systems
integrieren. Dabei sind Sie nicht auf lokale Einträge beschränkt,
sondern können auch auf entfernte Ressourcen zugreifen, bspw. ein NFS-
oder SMB-Share. Voraussetzung ist allerdings, dass die angegebene
Ressource vorab in den Verzeichnisbaum eingehängt wurde (auf engl.
mounted
) und APT darauf zugreifen darf. Eine lokale Ressource geben
Sie über das Schlüsselwort
file
an, hier am Beispiel des
Verzeichnisses
/home/benutzer/debian
deb file:/home/benutzer/debian stable main contrib non-free
Ein Eintrag für einen externen Datenträger, bspw. eine CD, DVD oder
Blu-ray, sieht ähnlich wie die vorhergehenden Beispiele aus. Nach dem
Schlüsselwort
deb
folgt der Wert
cdrom
mit der Kennung des
Datenträgers zur Installation. Am Schluss des Eintrags finden Sie die
Veröffentlichung und den Distributionsbereich. Nachfolgend sehen Sie
einen Eintrag für eine CD, auf dem Ubuntu 12.04 LTS
Precise Pangolin
enthalten ist:
deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120423)]/ precise main restricted
Automatisierung der Eintragung
Obige Einträge können Sie von Hand vornehmen. Das Werkzeug
apt-cdrom
vereinfacht den Vorgang jedoch erheblich. Unter „Physische
Installationsmedien mit
apt-cdrom
einbinden“ in
Abschnitt 3.9, „Physische Installationsmedien mit
apt-cdrom
einbinden“
besprechen wir
das Programm genauer.
3.4.5. Einträge für Sicherheitsaktualisierungen
Häufig, aber in unregelmäßigen Abständen – d.h. wenn es erforderlich
ist – kündigt das Debian Security-Team
[Debian-Security]
Sicherheitsaktualisierungen an und stellt diese bereit. Um von diesen
Aktualisierungen zu profitieren, braucht es einen entsprechenden
Eintrag in der Datei
/etc/apt/sources.list
Typischerweise wird dieser bereits zum Installationzeitpunkt vom
Debian Installer angelegt, falls die entsprechende Frage mit "Ja"
beantwortet haben.
Hatten Sie während der Installation bei der Frage nach
Sicherheitsaktualisierungen "Nein" ausgewählt, oder fehlt der Eintrag
aus sonstigen Gründen, so können Sie diesen manuell nachtragen.
Allerdings ist an dieser Stelle darauf zu achten, dass sich das Format
des Eintrages zwischen Debian 10
Buster
und Debian 11
Bullseye
leicht geändert hat.
sources.list
-Eintrag für Sicherheitsaktualisierungen bis Debian 10.
deb http://security.debian.org/ /updates
sources.list
-Eintrag für Sicherheitsaktualisierungen ab Debian 11.
deb http://security.debian.org/ -security
Entsprechend hier Beispiele für Debian 10
Buster
, Debian 11
Bullseye
und Debian 12
Bookworm
sources.list
-Eintrag für Sicherheitsaktualisierungen in Debian 10
Buster
deb http://security.debian.org/ buster/updates main contrib non-free
sources.list
-Eintrag für Sicherheitsaktualisierungen in Debian 11
Bullseye
deb http://security.debian.org/ bullseye-security main contrib non-free
sources.list
-Eintrag für Sicherheitsaktualisierungen in Debian 12
Bookworm
deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware
Obige Angaben beinhalten wiederum die empfohlene explizite Verwendung
des Aliasnamens der Veröffentlichung anstatt des Suite-Namens. Dieser
Name wird gefolgt vom Unterverzeichnis
updates
und den daraus
gewünschten Distributionsbereichen
main
contrib
und
non-free
sowie ab Debian 12
Bookworm
auch
non-free-firmware
. Je nach System
nicht benötigte Archiv-Bereiche (z.B.
non-free
oder
non-free-firmware
) können Sie einfach weglassen.
3.4.6. Einträge für zusätzliche, nicht-offizielle Pakete
Nicht alle verfügbaren Softwareveröffentlichungen werden in die
offiziellen Paketquellen von Debian aufgenommen. Viele Projekte stellen
Programmversionen als
deb
-Pakete bereit, die sich von der Version her
von der stabilen Veröffentlichung von Debian unterscheiden.
Im folgenden Beispiel sehen Sie die Einbindung der Paketquellen des
PostgreSQL-Projekts
[APT-Repo-PostgreSQL]
und des X2Go-Projekts
[APT-Repo-X2Go]
für Debian 10
Buster
deb https://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
deb https://packages.x2go.org/debian buster main
Ähnliches gilt für Unternehmen, die erfreulicherweise inzwischen
vielfach eigene
deb
-Pakete für ihre Produkte zur Verfügung stellen.
Die exakte Bezugsquelle finden Sie zumeist auf der Webseite des
jeweiligen Unternehmens. Um bspw. die Pakete für den Webbrowser Opera
des gleichnamigen skandinavischen Herstellers einzubinden, hilft Ihnen
folgender Verweis
[8]
auf den Bereich
non-free
auf dessen Paketserver:
deb http://deb.opera.com/opera stable non-free
Ergänzung der Signatur der Paketquelle
Damit Debian dieser zusätzlichen Paketquelle auch vertraut, überprüft es
dazu eine entsprechende digitale Signatur. Wie dieses Konzept
funktioniert und Sie einen passenden Schlüssel beziehen, lesen Sie unter
„Paketquelle auf Echtheit überprüfen“ in
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
Eigene
.list
-Datei für fremde Paketquellen.
Anstatt alle Einträge direkt in die Datei
/etc/apt/sources.list
zu
schreiben, können Sie einen oder mehrere Einträge auch in separate
Dateien unter
/etc/apt/sources.list.d/
ablegen. Dateien in diesem
Verzeichnis bedürfen der Endung
.list
, um von APT beachtet zu werden.
So könnten Sie z.B. die Beispiele in diesem Abschnitt in den Dateien
/etc/apt/sources.list.d/postgresql.list
/etc/apt/sources.list.d/x2go.list
und
/etc/apt/sources.list.d/opera.list
speichern. Damit behalten
Sie bereits anhand des Dateinamens den Überblick, aus welchen
Fremdquellen weitere Pakete bezogen werden.
3.4.7. Einträge für Quellpakete
Um Debian-Quellpakete (siehe
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
) zu nutzen, benötigen Sie
eine weitere Zeile in ihrer Paketliste. Im Vergleich zu Binärpaketen
ändert sich lediglich das Schlüsselwort am Anfang eines Eintrags von
deb
auf
deb-src
. Danach erwartet APT wie gewohnt den Eintrag der
Paketquelle. Für die offiziellen Quellpakete sieht der Eintrag wie folgt
aus, hier am Beispiel des deutschen Paketmirrors für Debian 12
Bookworm
deb-src http://ftp.de.debian.org/debian/ bookworm main
3.4.8. Einträge für Deutschland
Liegt ihr Lebens- und Arbeitsmittelpunkt in Deutschland oder Sie
beziehen die Pakete von einem Paketmirror, der in Deutschland steht,
enthält die Datei typischerweise die folgenden Einträge:
deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware
Mit den ersten beiden Zeilen beziehen Sie alle Binär- und Sourcepakete
für die Distributionsbereiche
main
contrib
und
non-free
für die
Veröffentlichung Debian 12
Bookworm
vom primären deutschen
Debian-Spiegelserver. Mit den Zeilen drei und vier beziehen Sie
zusätzlich die dazugehörigen Sicherheitsaktualisierungen für alle
Distributionsbereiche der gleichen Veröffentlichung von der zentralen
Stelle
security.debian.org
Für Veröffentlichungen vor Debian 12
Bookworm
müssen Sie allerdings
den Distributionsbereich
non-free-firmware
weglassen. Dieser kam
erst mit Debian 12
Bookworm
hinzu. Paket aus diesem Bereich waren
bei vorherigen Veröffentlichungen im Bereich
non-free
mit dabei.
3.4.9. Einen Eintrag auf syntaktische Korrektheit prüfen
Beim Ergänzen oder Ändern von Einträgen von Paketquellen können uns Fehler
unterlaufen, die dazu führen, dass die lokalen Paketlisten nicht mehr sauber
mit den Listen vom Paketmirror abgeglichen und aktualisiert werden.
Üblicherweise sind das simple Schreibfehler — fehlende Leerzeichen oder auch
falsche Namen der genutzten Veröffentlichung. Um diesen Fehlern auf die Spur
zu kommen, verfügen bislang weder APT, noch
apt-get
und
aptitude
über ein
spezifisches Unterkommando, mit dem sich die einzelnen Einträge auf korrekte
Schreibweise prüfen lassen.
Daher bleiben nur die folgenden Workarounds:
apt update
und
apt-get update
Führe die Aktualisierung der lokalen Paketlisten durch. Geben
apt
und
apt-get
dabei keine Fehler aus, sind die Einträge fehlerfrei.
apt-get --no-download update
Führe die Aktualisierung der lokalen Paketlisten durch, lade aber keine
Paketlisten herunter. Gibt
apt-get
dabei keine Fehler aus, sind die
Einträge fehlerfrei. Einen fehlerhaften Eintrag in Form eines fehlenden
Leerzeichens bemängelt
apt-get
wie folgt:
Fehler in der Datei
/etc/apt/sources.list
aufspüren.
# apt-get --no-download update
E: Typ »debhttp://deb.debian.org/debian/« in Zeile 1 der Quellliste /etc/apt/sources.list ist unbekannt.
E: Die Liste der Quellen konnte nicht gelesen werden.
apt-get indextargets
Gedacht ist das Unterkommando als Schnittstelle für externe Werkzeuge, die
mit APT arbeiten. Gemäß Manpage zu
apt-get
zeigt es damit "eine Liste im
Deb822-Format mit Informationen über alle Datendateien (auch als Indexziele
bekannt) an, die
apt-get
update herunterladen würde." Das gelingt nur,
wenn die Datei keine groben Fehler beinhaltet, bspw. fehlende Leerzeichen
zwischen dem Pakettyp und dem Paketmirror. Fehlerhafte Angaben in
Distributionsbereichen kann es nicht aufspüren, ignoriert dann aber den
gesamten Eintrag.
Zusätzlich "unterstützt [
apt-get
] eine
--format
-Option, um das
Ausgabeformat zu ändern und auch um Zeilen der Standardausgabe zum Filtern
der Datensätze zu akzeptieren."
Informationen zu den Paketquellen anzeigen (Auszug).
# apt-get indextargets

MetaKey: contrib/binary-amd64/Packages
ShortDesc: Packages
Description: http://deb.debian.org/debian bookworm-updates/contrib amd64 Packages
URI: http://deb.debian.org/debian/dists/bookworm-updates/contrib/binary-amd64/Packages
Filename: /var/lib/apt/lists/deb.debian.org_debian_dists_bookworm-updates_contrib_binary-amd64_Packages
Optional: no
KeepCompressed: no
Codename: bookworm-updates
Label: Debian
Origin: Debian
Suite: stable-updates
Trusted: yes
Version: 12-updates
Architecture: amd64
Base-URI: http://deb.debian.org/debian/dists/bookworm-updates/
By-Hash: yes
Component: contrib
CompressionTypes: xz bz2 lzma gz lz4 zst uncompressed
Created-By: Packages
DefaultEnabled: yes
Fallback-Of:
Identifier: Packages
KeepCompressedAs: lz4 zst gz xz bz2 lzma uncompressed
PDiffs: yes
Release: bookworm-updates
Repo-URI: http://deb.debian.org/debian/
Site: http://deb.debian.org/debian
Sourcesentry: /etc/apt/sources.list:9
Target-Of: deb

...
Um aus der Ausgabe die berücksichtigten Ressourcen herauszufiltern, bietet
sich eine Kombination aus
apt-get
und
grep
wie folgt an:
Genutzte Paketquellen herausfiltern.
# apt-get indextargets | grep Description
Description: http://deb.debian.org/debian bookworm/main Sources
Description: http://deb.debian.org/debian bookworm/contrib Sources
Description: http://deb.debian.org/debian bookworm/non-free-firmware Sources
Description: http://deb.debian.org/debian bookworm/main amd64 Packages
Description: http://deb.debian.org/debian bookworm/main i386 Packages
Description: http://deb.debian.org/debian bookworm/main Translation-de_DE
Description: http://deb.debian.org/debian bookworm/main Translation-de
Description: http://deb.debian.org/debian bookworm/main Translation-en
Description: http://deb.debian.org/debian bookworm/main amd64 Contents (deb)
Description: http://deb.debian.org/debian bookworm/main i386 Contents (deb)
...
3.5. Geeigneten Paketmirror auswählen
Zentraler Anlaufpunkt für netzbasierte Installationen sind die
offiziellen Paketmirrors – auf deutsch auch Spiegelserver genannt –
welche die Debianpakete für Sie bereithalten. Diese Paketmirrors sind
weltweit verteilt und werden meist ehrenamtlich von einem
Verantwortlichen für den jeweiligen Standort oder im Rahmen seiner
administrativen Aufgaben vor Ort betreut. Viele Spiegelserver werden
automatisch über neue Pakete informiert und abgeglichen und verfügen
somit stets über den aktuellen Paketbestand.
Wir empfehlen Ihnen, bei der Auswahl eines Paketmirrors einen solchen zu
bevorzugen, der eine möglichst kurze Entfernung zu ihrem Standort hat,
mit hoher Verfügbarkeit glänzt und über eine gute Netzanbindung verfügt.
Damit erhöht sich die Zuverlässigkeit ihrer Infrastruktur und
insbesondere auch der Komponenten, die von externen Bestandteilen und
Diensten abhängig sind.
Mit der oben beschriebenen, dezentralen Verteilung ist gewährleistet,
dass Sie bei einem Ausfall oder der Nichtverfügbarkeit des von ihnen
gewählten Paketmirrors problemlos auf eine adäquate Alternative
zurückgreifen können, auch wenn diese netztechnisch etwas weiter von
ihrem aktuellen Standort entfernt ist. Für die Infrastruktur des
Debian-Projekts heißt das außerdem, dass sich die Anfrage- oder Netzlast
auf unterschiedliche Mirrors und deren Standorte verteilt.
Für Sie bedeutet das im Alltag, dass sich neben der Verringerung der
Ausfallwahrscheinlichkeit insbesondere die Bezugszeiten für Debianpakete
erheblich verringern, da Sie nicht auf einen einzigen Spiegelserver
angewiesen sind. Verwenden Sie einen Spiegelserver in ihrer Nähe, merken
Sie das insbesondere dann, wenn größere Aktualisierungen erfolgen, bspw.
bei einem Distributionswechsel oder -upgrade (siehe
Abschnitt 8.41.4, „
dist-upgrade
und
full-upgrade
).
Jeder Interessierte kann einen solchen Paketmirror betreiben. Wie Sie
diesen einrichten, erfahren Sie unter „Einen eigenen APT-Mirror aufsetzen“
in
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
3.5.1. Paketmirror bei Debian
Das Debian-Projekt pflegt eine offizielle Liste seiner Paketmirrors
[Debian-Spiegel-Liste]
. Diese Liste ist in
primäre
und
sekundäre
Mirrors gegliedert.
Primäre Mirrors
sind dabei als zentrale, stets aktuelle Bezugspunkte
mit hoher Last ausgelegt. Neben einer guten Netzanbindung bieten diese
auch eine hohe Verfügbarkeit. Sie werden automatisch aktualisiert,
sofern es Änderungen im Debian-Projekt bzw. dessen Paketarchiv gibt. Ein
Mirror dieser Kategorie ist nach dem folgenden Namensschema erreichbar:
ftp.Länderkennung.debian.org
Die Länderkennung richtet sich nach dem ISO-Namensschema. Für
Deutschland ist das
de
, für Österreich
at
und für die Schweiz
ch
Der deutsche primäre Paketmirror ist somit unter
ftp.de.debian.org
erreichbar, der österreichische unter
ftp.at.debian.org
und der
schweizerische unter
ftp.ch.debian.org
Primäre Debian-Mirrors stehen häufig bei Internetprovidern oder Lehr-
und Forschungseinrichtungen. Beispielsweise steht der primäre Schweizer
Debian-Paketmirror
ftp.ch.debian.org
an der ETH Zürich und einer der
Debian-Paketmirrors für Deutschland an der TU Dresden.
Sekundäre Mirrors
unterscheiden sich dahingehend von primären Mirrors,
dass nicht garantiert ist, dass das volle Spektrum an Debianpaketen und
Architekturen (siehe
Abschnitt 1.2, „Debian-Architekturen“
) geboten wird. Hintergrund
kann bspw. eine Begrenzung des verfügbaren Speicherplatzes auf dem
Server sein. Das bedeutet jedoch nicht zwangsläufig, dass dieser Mirror
schlechter erreichbar sein muss. Im deutschsprachigen Raum betreiben
entsprechende Paketmirrors bspw. die Uni Erlangen, die TU Graz und
SWITCH, das Schweizer Hochleistungsnetzwerk für die Wissenschaft
[SWITCH]
Für jeden Paketmirror existiert eine Beschreibung, die diesen genauer
klassifiziert. Dazu gehört z.B. die URL, der Aliasname, der Typ des
Paketmirrors, die darüber verfügbaren Architekturen (siehe
Abschnitt 1.2, „Debian-Architekturen“
) sowie die Informationen zum genauen Standort,
zum Betreuer bzw. Betreiber und der Anbindung (IPv4 oder IPv6).
Nachfolgender Auszug zeigt die Details für den Paketmirror
ftp.de.debian.org
, der an der TU Dresden beheimatet ist. Die Auswahl
des Mirrors erfolgte daher, weil dieser den vollen Leistungsumfang
bietet — von diesem Mirror bekommen Sie das ganze Debian-Spektrum.
Informationen zum Paketmirror ftp.de.debian.org (TU Dresden).
Site: ftp.de.debian.org
Alias: ftp1.de.debian.org
Alias: debian.inf.tu-dresden.de
Type: Push-Primary
Archive-architecture: amd64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Archive-ftp: /debian/
Archive-http: /debian/
Archive-rsync: debian/
Archive-upstream: ftp-master.debian.org
Archive-method: push
Backports-ftp: /debian-backports/
Backports-http: /debian-backports/
Backports-rsync: debian-backports/
Backports-upstream: syncproxy3.eu.debian.org
Backports-method: push
CDImage-ftp: /debian-cd/
CDImage-http: /debian-cd/
CDImage-rsync: debian-cd/
Old-ftp: /debian-archive/
Old-http: /debian-archive/
Old-rsync: debian-archive/
Volatile-ftp: /debian-volatile/
Volatile-http: /debian-volatile/
Volatile-rsync: debian-volatile/
Volatile-upstream: kassia.debian.org
Ports-architecture: alpha arm64 hppa m68k powerpcspe ppc64 sh4 sparc64 x32
Ports-ftp: /debian-ports/
Ports-http: /debian-ports/
Ports-rsync: debian-ports/
Ports-upstream: ftp.debian-ports.org
Country: DE Germany
Location: Dresden
Sponsor: Technical University of Dresden, Dept. of Computer Science http://www.inf.tu-dresden.de/
Comment: DFN
IPv6: no
3.5.2. Paketmirror für andere Distributionen
Für die anderen
deb
-basierten Distributionen sieht das ähnlich wie bei
Debian aus. Eine aktuelle Liste finden Sie auf der Webseite der
jeweiligen Distribution, bei Ubuntu hingegen im Entwicklerportal
[Ubuntu-Mirrors]
. In
Abbildung 3.3, „Auswahl der Paketmirror für Linux Mint“
sehen Sie die
Zusammenstellung für die Distribution Linux Mint.
Abbildung 3.3. Auswahl der Paketmirror für Linux Mint
3.5.3. Pakete ohne Paketmirror beziehen
Steht Ihnen lediglich ein Zugang über einen Webbrowser zur Verfügung,
sind Sie trotzdem nicht vom Paketarchiv abgeschnitten. Unter dem
Abschnitt „Browserbasierte Suche“ in
Abschnitt 8.20.2, „Browserbasierte Suche“
erfahren Sie, wie Sie die benötigten Pakete mit Hilfe ihres Webbrowsers
recherchieren, vom Paketmirror beziehen und sauber unter Beachtung der
Paketabhängigkeiten auf ihrem System installieren. Unter „Webbasierte
Programme“ in
Abschnitt 6.5, „Webbasierte Programme“
stellen wir Ihnen weitere
clevere Lösungen zur webbasierten Paketverwaltung für verschiedene
Linux-Distributionen vor.
3.6. Am besten erreichbaren Paketmirror finden
Jeder Paketmirror hat eine spezifische Leistungsfähigkeit, die sich an
den drei Kriterien Netzanbindung, Hardwareausstattung und Grundlast
messen lässt. Auf die ersten beiden Merkmale haben Sie von außen als
Nutzer keinen Einfluss, auf den dritten nur bedingt. Leistungsfähigere
Paketmirror werden in der Regel auch häufiger nachgefragt.
Über die Einträge in der Datei
/etc/apt/sources.list
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
) steuern Sie, welchen verfügbaren
Paketmirror Sie benutzen, um den Softwarebestand auf ihrem System
aktuell zu halten. Je leistungsfähiger der von Ihnen gewählte
Paketmirror ist, umso weniger Zeit benötigen Sie im Endeffekt, um die
lokale Aktualisierung vorzubereiten und durchzuführen.
Anstatt diese Schritte aufwendig über die Kombination einzelner
Werkzeuge wie
ping
oder
traceroute
zu ermitteln, sind hier die
beiden Programme
netselect
[Debian-Paket-netselect]
und
netselect-apt
[Debian-Paket-netselect-apt]
die besseren Mittel der
Wahl. Damit finden Sie den Paketmirror heraus, der netztechnisch von
ihrem aktuellen Standort aus am besten erreichbar ist, sprich: Ihnen die
geringste Bezugszeit für Pakete ermöglicht.
3.6.1.
netselect
und
netselect-apt
Die beiden Programme
netselect
und
netselect-apt
überprüfen den von
Ihnen benannten Spiegelserver anhand von mehreren Kriterien. Dazu gehört
primär die grundsätzliche Erreichbarkeit über das Netzwerk, die Pingzeit
– d.h. wieviel Zeit benötigt ein Netzwerkpaket vom Paketmirror zu Ihrem
Computer – , sowie die Verlustrate der Netzwerkpakete vom Spiegelserver
zu Ihnen. Gleichzeitig wird die Anzahl der Zwischenknoten von Ihrem
Computer zum Spiegelserver gezählt, auch genannt
Hops
. Bevorzugt
werden lokale Paketmirrors, was sich auch im daraus errechneten
Zahlenwert niederschlägt. Je kleiner der ermittelte Wert ist, umso
besser ist das für Sie.
Zwischen
netselect
und
netselect-apt
bestehen die folgenden
Unterschiede:
netselect
gibt nur den ermittelten Zahlenwert für den evaluierten
Spiegelserver aus.
netselect-apt
erzeugt eine Datei namens
sources.list
in dem
Verzeichnis, in welchem Sie
netselect-apt
aufrufen.
netselect-apt
überschreibt dabei die Datei
/etc/apt/sources.list
nicht von sich aus.
Die generierte Datei beinhaltet die besten gefundenen Spiegelserver und
kann von Ihnen danach als neue Liste der Paketquellen benutzt werden.
Dazu kopieren Sie die generierte Datei
sources.list
in das Verzeichnis
/etc/apt/
netselect-apt
ist nicht (mehr) für Ubuntu paketiert
[netselect-apt-ubuntu]
. Es steht für Debian zur Verfügung und
funktioniert zuverlässig in allen Debian-Versionen.
Aktualisierung der Liste der Paketquellen
Zu Änderungen an den Paketquellen beachten Sie bitte auch unsere
Hinweise unter „
/etc/apt/sources.list
verstehen“ in
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
. Wir raten Ihnen dazu, die neue Liste
der Paketquellen zuerst lokal zu erstellen und danach manuell in das
Verzeichnis
/etc/apt/
zu verschieben.
Paketquellen nach Pingzeiten und Entfernung auswählen
netselect
und
netselect-apt
akzeptieren beim Aufruf eine Menge
verschiedener Schalter und Parameter. Stets anzugeben ist mindestens ein
Spiegelserver, der zu testen ist. Geben Sie hingegen eine ganze Liste
an, werden alle daraus nacheinander überprüft. Die nachfolgende Ausgabe
zeigt das Ergebnis für fünf angefragte Paketmirrors.
Aufruf von
netselect
mit fünf verschiedenen Paketmirrors.
# netselect -v ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
netselect: unknown host ftp.debian.org.br
Running netselect to choose 1 out of 8 addresses.
...............................................................
73 ftp.debian.org
Mit dem zusätzlichen Schalter
-v
regeln Sie die Ausführlichkeit der
Ausgabe. Ohne den Schalter geben beide Programme nur den Paketmirror
aus, der den besten Wert hat, mit
-vv
bzw.
-vvv
oder sogar
-vvvv
entsprechend mehr Details.
Etwas ausführlichere Ausgabe zu den Paketmirrors.
# netselect -vv ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
netselect: unknown host ftp.debian.org.br
Running netselect to choose 1 out of 8 addresses.
...............................................................
128.61.240.89 141 ms 8 hops 88% ok ( 8/ 9) [ 284]
ftp.debian.org 41 ms 8 hops 100% ok (10/10) [ 73]
128.30.2.36 118 ms 19 hops 100% ok (10/10) [ 342]
64.50.233.100 112 ms 14 hops 66% ok ( 2/ 3) [ 403]
64.50.236.52 133 ms 15 hops 100% ok (10/10) [ 332]
ftp.at.debian.org 47 ms 13 hops 100% ok (10/10) [ 108]
download.unesp.br 314 ms 10 hops 75% ok ( 3/ 4) [ 836]
ftp.debian.org.br 9999 ms 30 hops 0% ok
73 ftp.debian.org
In der Ausgabe erscheinen die IP-Adresse bzw. der Hostname (Spalte 1),
nachdem aufgelöst wird, die durchschnittliche Paketlaufzeit (Spalte 2),
die Anzahl der Zwischenknoten (Spalte 3) sowie die Verlustrate der
Pakete auf dem Transportweg (Spalte 4 bis 6). Die Angabe
ok
besagt
dabei, dass der Paketmirror über das Netz erreichbar ist. Die Angabe
9999ms
für die Paketlaufzeit besagt hingegen, dass der Paketmirror zum
Testzeitpunkt leider nicht erreichbar war.
Die Werte in den runden Klammern in Spalte 6 zeigen, wie der Prozentwert
der Verlustrate der Pakete in Spalte 4 zustandekam. Dieser basiert auf
der Anzahl Pakete, die der Paketmirror als empfangen bestätigt hat,
jeweils gegenübergestellt der Anzahl gesendeter Pakete. Die Zahl in den
eckigen Klammern am Ende jeder ausgegebenen Zeile (Spalte 7) ist der
Wert, den
netselect
für den jeweiligen Paketmirror ermittelt hat.
Noch mehr Informationen zu den Paketmirrors.
# netselect -vvv ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
netselect: unknown host ftp.debian.org.br
Running netselect to choose 1 out of 8 addresses.
128.30.2.36 122 ms 15 hops - HIGHER
64.50.233.100 112 ms 15 hops - OK
ftp.at.debian.org 49 ms 15 hops - OK
min_lag is now 49
64.50.236.52 140 ms 15 hops - OK
ftp.debian.org 42 ms 15 hops - OK
min_lag is now 42
ftp.at.debian.org 48 ms 8 hops - HIGHER
128.30.2.36 117 ms 23 hops - OK
ftp.debian.org 41 ms 8 hops - OK
min_lag is now 41
64.50.233.100 112 ms 8 hops - HIGHER
64.50.236.52 112 ms 8 hops - HIGHER
ftp.debian.org 28 ms 4 hops - HIGHER
ftp.at.debian.org 49 ms 12 hops - HIGHER
ftp.debian.org 38 ms 6 hops - HIGHER
ftp.at.debian.org 48 ms 14 hops - OK
128.30.2.36 119 ms 19 hops - OK
64.50.233.100 113 ms 12 hops - HIGHER
ftp.debian.org 53 ms 7 hops - HIGHER
ftp.at.debian.org 49 ms 13 hops - OK
64.50.236.52 114 ms 12 hops - HIGHER
ftp.debian.org 42 ms 8 hops - OK
download.unesp.br 306 ms 15 hops - OK
ftp.at.debian.org 48 ms 13 hops - OK
ftp.debian.org 42 ms 8 hops - OK
ftp.at.debian.org 49 ms 13 hops - OK
64.50.233.100 114 ms 14 hops - OK
128.30.2.36 118 ms 17 hops - HIGHER
ftp.debian.org 42 ms 8 hops - OK
64.50.236.52 138 ms 14 hops - HIGHER
ftp.at.debian.org 49 ms 13 hops - OK
ftp.debian.org 41 ms 8 hops - OK
ftp.at.debian.org 49 ms 13 hops - OK
ftp.debian.org 41 ms 8 hops - OK
128.30.2.36 119 ms 18 hops - HIGHER
ftp.debian.org 43 ms 8 hops - OK
ftp.at.debian.org 48 ms 13 hops - OK
64.50.236.52 132 ms 15 hops - OK
ftp.debian.org 43 ms 8 hops - OK
ftp.at.debian.org 48 ms 13 hops - OK
ftp.debian.org 42 ms 8 hops - OK
128.30.2.36 118 ms 19 hops - OK
ftp.at.debian.org 48 ms 13 hops - OK
download.unesp.br 313 ms 8 hops - HIGHER
64.50.236.52 134 ms 15 hops - OK
128.30.2.36 122 ms 19 hops - OK
64.50.236.52 133 ms 15 hops - OK
128.30.2.36 129 ms 19 hops - OK
download.unesp.br 307 ms 12 hops - OK
64.50.236.52 140 ms 15 hops - OK
128.30.2.36 124 ms 19 hops - OK
64.50.236.52 133 ms 15 hops - OK
128.30.2.36 117 ms 19 hops - OK
128.30.2.36 117 ms 19 hops - OK
64.50.236.52 134 ms 15 hops - OK
download.unesp.br 308 ms 10 hops - OK
128.30.2.36 118 ms 19 hops - OK
64.50.236.52 134 ms 15 hops - OK
128.30.2.36 118 ms 19 hops - OK
64.50.236.52 133 ms 15 hops - OK
download.unesp.br 305 ms 9 hops - HIGHER
64.50.236.52 131 ms 15 hops - OK

download.unesp.br 307 ms 10 hops 75% ok ( 3/ 4) [ 818]
128.30.2.36 119 ms 19 hops 100% ok (10/10) [ 345]
64.50.233.100 113 ms 14 hops 66% ok ( 2/ 3) [ 405]
64.50.236.52 134 ms 15 hops 100% ok (10/10) [ 335]
128.61.240.89 9999 ms 30 hops 0% ok
ftp.at.debian.org 48 ms 13 hops 100% ok (10/10) [ 110]
ftp.debian.org 41 ms 8 hops 100% ok (10/10) [ 73]
ftp.debian.org.br 9999 ms 30 hops 0% ok
73 ftp.debian.org
Ergebnis des obigen Aufrufs ist eine Empfehlung für einen der
Paketmirrors, die Sie im Aufruf benannt haben. Dieser Paketmirror ist von
ihrem Standort aus derzeit am besten erreichbar. Das ermittelte Ergebnis
schwankt und hängt stets von der aktuellen Netzauslastung ab.
Die Empfehlung und der ermittelte Zahlenwert stehen in der letzten Zeile
der Ausgabe und zeigen hier den Wert 73 für den Server
ftp.debian.org
Die angegebene Zahl errechnet sich aus den bereits zu Beginn genannten
Kriterien und ist vergleichbar mit einem Punktwert, hat jedoch offiziell
keine Einheit. Je höher der Wert ist, umso schlechter ist der
Paketmirror von Ihrem aktuellen Standort im Netz zu erreichen.
Anzahl der Hops begrenzen
Die Auswahl des Paketmirrors läßt sich auch von der Anzahl der
Zwischenknoten (Hops) abhängig machen.
netselect
kennt dazu den
Schalter
-m
gefolgt von der Anzahl der Zwischenknoten. Nachfolgende
Ausgabe zeigt das für den Server
ftp.at.debian.org
. Die Ausgabe ist
sortiert, d.h. der Paketmirror mit den wenigsten Hops steht ganz oben in
der Liste.
Paketmirror mit den wenigsten Zwischenknoten.
# netselect -m 10 -vvv ftp.at.debian.org
Running netselect to choose 1 out of 1 address.
ftp.at.debian.org 33 ms 5 hops - HIGHER
ftp.at.debian.org 51 ms 8 hops - HIGHER
ftp.at.debian.org 51 ms 9 hops - HIGHER
ftp.at.debian.org 47 ms 10 hops - OK
min_lag is now 47
ftp.at.debian.org 49 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK
ftp.at.debian.org 56 ms 10 hops - OK
ftp.at.debian.org 49 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK
ftp.at.debian.org 48 ms 10 hops - OK

ftp.at.debian.org 48 ms 10 hops 100% ok (10/10) [ 96]
96 ftp.at.debian.org
Einen geschützten Paketmirror abfragen
Ist der Paketmirror beispielweise von einer Firewall geschützt und diese
blockiert UDP-Pakete, kann die Option
-I
von größerem Nutzen sein.
Damit sendet
netselect
zur Abfrage stattdessen ICMP-Pakete und umgeht
das Hindernis. Das Ergebnis sehen Sie in der nachfolgenden Ausgabe:
Paketmirror mit ICMP-Paketen abfragen.
# netselect -I -vvv ftp.de.debian.org
Running netselect to choose 1 out of 1 address.
ftp.de.debian.org 37 ms 15 hops - OK
min_lag is now 37
ftp.de.debian.org 36 ms 8 hops - OK
min_lag is now 36
ftp.de.debian.org 27 ms 4 hops - HIGHER
ftp.de.debian.org 36 ms 6 hops - HIGHER
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 36 ms 7 hops - OK
ftp.de.debian.org 37 ms 7 hops - OK
ftp.de.debian.org 38 ms 7 hops - OK

ftp.de.debian.org 36 ms 7 hops 100% ok (10/10) [ 61]
61 ftp.de.debian.org
Liste der Paketquellen mit
netselect-apt
generieren lassen
Wie bereits in
Abschnitt 3.6.1, „
netselect
und
netselect-apt
angesprochen, erzeugt
netselect-apt
eine Datei
sources.list
im aktuellen Verzeichnis. Es
verfügt zudem über den Schalter
-o
(Langform
--outfile
), mit dem Sie
die entsprechende Ausgabedatei angeben und eine passende Liste darin
generieren lassen.
netselect-apt
akzeptiert für die Wahl der
Veröffentlichung auch Angaben wie
stable
oder
unstable
, aber auch
die Alternativnamen der Veröffentlichung wie
Bookworm
oder
Sid
(siehe
„Veröffentlichungen“ in
Abschnitt 2.10, „Veröffentlichungen“
).
Insgesamt kennt
netselect-apt
diese Schalter zur Steuerung der Liste:
-a
(Langform
--arch
Erzeugung der Liste für die angegebene
Prozessorarchitektur. Eine Übersicht zu den von Debian unterstützten
Architekturen finden Sie unter „Debian-Architekturen“ in
Kapitel 50,
Debian-Architekturen
. Geben Sie keinen Wert an, benutzt
netselect-apt
den Wert, den
dpkg
als Architektur zurückliefert.
-c
(Langform
--country
Die Einträge kommen nur aus dem
angegebenen Land.
-f
(Langform
--ftp
Benutze FTP-Quellen anstatt von HTTP-Quellen.
-n
(Langform
--nonfree
Ergänzung der Einträge um den
Distributionsbereich
nonfree
(siehe „Distributionsbereiche“ in
Abschnitt 2.9, „Distributionsbereiche“
).
-o
(Langform
--outfile
Speichere die erzeugte Liste in der
angegebenen Datei.
-s
(Langform
--sources
zusätzliche Erzeugung von Einträgen für
den Bezug von Quellpaketen (siehe „Sourcepakete“ in
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
und „Einträge für Quellpakete“ in
Abschnitt 3.4.7, „Einträge für Quellpakete“
).
Im nachfolgenden Beispiel kommt zunächst lediglich der Schalter
-o
test.list
zum Einsatz.
netselect-apt
erzeugt die Liste der
ermittelten Paketmirrors in der Datei
test.list
im lokalen
Verzeichnis.
Speicherung der ermittelten Paketmirrors in einer separaten Datei.
# netselect-apt stable -o test.list
Using distribution stable.
Retrieving the list of mirrors from www.debian.org...

--2014-02-13 14:55:02-- http://www.debian.org/mirror/mirrors_full
Auflösen des Hostnamen »www.debian.org (www.debian.org)«... 5.153.231.4, 130.89.148.14, 2001:610:1908:b000::148:14, ...
Verbindungsaufbau zu www.debian.org (www.debian.org)|5.153.231.4|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 338381 (330K) [text/html]
In »»/tmp/netselect-apt.WrCIoS«« speichern.

100%[============================================================>] 338.381 959K/s in 0,3s

2014-02-13 14:55:03 (959 KB/s) - »»/tmp/netselect-apt.WrCIoS«« gespeichert [338381/338381]

Choosing a main Debian mirror using netselect.
netselect: 347 (23 active) nameserver request(s)...
Duplicate address 218.100.43.30 (http://ftp.au.debian.org/debian/, http://mirror.waia.asn.au/debian/); keeping only under first name.
netselect: 343 (23 active) nameserver request(s)...
Duplicate address 195.222.33.229 (http://ftp.ba.debian.org/debian/, http://mirror.debian.com.ba/debian/); keeping only under first name.
...
Running netselect to choose 10 out of 333 addresses.
...
The fastest 10 servers seem to be:

Of the hosts tested we choose the fastest valid for HTTP:

Writing test.list.
Done.
Das zweite Beispiel kommt aus dem Alltag. Wir kombinieren die vier
Schalter
-c
-t
-n
und
-a
, um die besten fünf Paketmirror für
die Architektur
amd64
in Frankreich zu finden:
Ermittlung der besten fünf Paketmirror.
# netselect-apt -c france -t 5 -a amd64 -n stable
Using distribution stable.
Retrieving the list of mirrors from www.debian.org...

--2019-01-09 11:47:21-- http://www.debian.org/mirror/mirrors_full
Auflösen des Hostnamen »www.debian.org (www.debian.org)«... 130.89.148.14, 5.153.231.4, 2001:41c8:1000:21::21:4, ...
Verbindungsaufbau zu www.debian.org (www.debian.org)|130.89.148.14|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 302 Found
Platz: https://www.debian.org/mirror/mirrors_full[folge]
--2019-01-09 11:47:22-- https://www.debian.org/mirror/mirrors_full
Verbindungsaufbau zu www.debian.org (www.debian.org)|130.89.148.14|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 189770 (185K) [text/html]
In »»/tmp/netselect-apt.Kp2SNk«« speichern.

/tmp/netselect-apt.Kp2SNk 100%[================================================>] 185,32K 1,19MB/s in 0,2s

2019-01-09 11:47:22 (1,19 MB/s) - »»/tmp/netselect-apt.Kp2SNk«« gespeichert [189770/189770]

Choosing a main Debian mirror using netselect.
(will filter only for mirrors in country france)
netselect: 19 (19 active) nameserver request(s)...
Duplicate address 212.27.32.66 (http://debian.proxad.net/debian/, http://ftp.fr.debian.org/debian/); keeping only under first name.
Running netselect to choose 5 out of 18 addresses.
..................................................................................................................................
The fastest 5 servers seem to be:

Of the hosts tested we choose the fastest valid for HTTP:

Writing sources.list.
Done.
Die von
netselect-apt
erzeugte Datei enthält neben den Paketmirrors
auch eine ganze Reihe Kommentare. Diese helfen Ihnen dabei, zu
verstehen, wofür jeder einzelne Eintrag gedacht ist.
Inhalt der automatisch generierten Liste der Paketmirrors.
# Debian packages for stable
deb http://artfiles.org/debian/ stable main contrib
# Uncomment the deb-src line if you want 'apt-get source'
# to work with most packages.
# deb-src http://artfiles.org/debian/ stable main contrib

# Security updates for stable
deb http://security.debian.org/ stable-security main contrib
netselect
und
netselect-apt
im Alltagseinsatz
Aus unserer Sicht lohnt sich der Aufruf von
netselect
bzw.
netselect-apt
bei stationären Systemen (Servern) mit fester Anbindung
nur bedingt. Hilfreich ist das Vorgehen bspw. nach der ersten
Einrichtung, einem Standortwechsel des Gerätes oder der Änderung der
Infrastruktur, da letztere in der Regel häufig recht konstant ist. Bei
Endsystemen an einem festen Ort raten wir Ihnen, die Werkzeuge nur
interessehalber auszuprobieren, weil die Zugriffszeiten in diesem
Kontext nicht immer eine so große Relevanz haben. Bei Systemen für die
Infrastruktur wirkt sich die Optimierung hingegen meist weitaus stärker
aus.
Bei mobilen Geräten sieht das hingegen deutlich anders aus. Mit Laptops
oder Smartphones sind Sie variabler und den damit einhergehenden
Schwankungen in der Netzanbindung stärker ausgesetzt. Auffällig wird die
Anpassung dann, wenn Sie größere Entfernungen zurücklegen, bspw. ein
Land oder einen Kontinent gewechselt haben.
3.7. Automatisiertes Auswählen von Paketquellen
3.7.1. DNS Round Robin
In den meisten Fällen gibt es zu einem Servernamen genau eine
IP-Adresse (oder je eine IPv4- und eine IPv6-Adresse). Stärker in
Anspruch genommene Dienste verteilen die Last aber oftmals auf mehr als
eine Maschine. In solchen Fällen werden gerne mehr als eine IP-Adresse
pro Servernamen zurückgegeben. Daraufhin wählt das Programm, welches
eine Verbindung aufbauen möchte, willkürlich eine der zur Auswahl
stehenden IP-Adressen aus. Auf diese Weise kann die Last zwischen
mehreren (identisch konfigurierten) Servern aufgeteilt werden.
Ein bekanntes Beispiel eines solchen Falles im Kontext von Debian
Paketspiegeln ist
ftp.us.debian.org
. Aufgrund der Größe der USA wird
die Last des dortigen primären Debian-Paketmirrors auf drei Server
aufgeteilt.
IP-Verteilung des primären Debian-Paketmirrors für die USA.
$ host ftp.us.debian.org
ftp.us.debian.org has address 64.50.236.52
ftp.us.debian.org has address 128.61.240.89
ftp.us.debian.org has address 64.50.233.100
ftp.us.debian.org has IPv6 address 2610:148:1f10:3::89
Auch wenn es vier IP-Adressen sind, handelt es sich jedoch nur um drei
Server. Sowohl die IPv6-Adresse
2610:148:1f10:3::89
, als auch die
IPv4-Adresse
128.61.240.89
gehören zum Server
debian.gtisc.gatech.edu
3.7.2. Paketquellen über GeoIP auswählen
Bei diesem Verfahren wird einer IP-Adresse ein geographischer Standort
zugeordnet. Die Genauigkeit dieser Funktion schwankt je nach
Internet-Anbieter, Datenbank und eingesetztem Verfahren.
Zu beachten ist dabei, dass der angegebene Standort nicht
notwendigerweise dem tatsächlichen Standort des Rechners mit dieser
IP-Adresse entspricht. Meistens ist das der Standort des Providers, von
dem Sie diese IP-Adresse bezogen haben bzw. der diese IP-Adresse
vergeben hat.
Abbildung 3.4. Standortlokalisierung über das GeoIP Tool
[geoiptool]
Eine Offline-Zuordnung ermöglicht beispielsweise das Paket
geoip-database
[Debian-Paket-geoip-database]
. Es enthält eine
entsprechende Datenbank mit stets bestehenden, festen IP-Adressen.
Darüberhinaus existieren jedoch auch deutlich exaktere Alternativen.
Diese Funktionalitat lässt sich nutzen, um anhand der anfragenden
IP-Adresse automatisiert einen geographisch nahen Paketmirror zu
finden. Bei Debian ist dies an mehreren Stellen im Einsatz.
3.7.3. Per CDN
CDN
steht für "Content Distribution Network" und beschreibt einen
Service, der über die Welt verteilt viele Server stehen hat und je
nach Qrt der Anfrage ein anderer Server kontaktiert wird. Die
Verteilung auf verschiedene Server passiert dabei auf unterschiedliche
Weisen. Mal antwortet unter der selben IP-Adresse ein anderer Server
und die Verteilung wird per Routing gelöst. Mal kommt je nach Ort der
DNS-Anfrage eine andere IP-Adresse als DNS-Antwort zurück.
Die Sicherheitsaktualisierungen von Debian kommen nicht über das
normale Spiegelnetzwerk, welches regulär nur alle sechs Stunden
aktualisiert wird. Stattdessen besteht ein separates Spiegelnetzwerk
unter dem Hostnamen
security.debian.org
, das nur nach Bedarf
aktualisiert wird. Dieses Spiegelnetzwerk verwendet schon seit
längerem ein CDN.
Seit einigen Jahren ist aber auch die Standard-Einstellung in der
sources.list
-Datei von Debian der Hostname
deb.debian.org
, der
auch wiederum auf ein CDN zeigt, zur Zeit auf das CDN von Fastly
[debian-partners-fastly]
Eine DNS-Anfrage auf diesen Hostnamen aus der Schweiz sieht so aus:
$ host deb.debian.org
deb.debian.org is an alias for debian.map.fastlydns.net.
debian.map.fastlydns.net has address 146.75.122.132
debian.map.fastlydns.net has IPv6 address 2a04:4e42:8e::644
Eine DNS-Anfrage aus Schweden dagegen anders:
$ host deb.debian.org
deb.debian.org is an alias for debian.map.fastlydns.net.
debian.map.fastlydns.net has address 199.232.18.132
debian.map.fastlydns.net has IPv6 address 2a04:4e42:41::644
3.7.4. Automatische Paketmirror-Auswahl per Mirror-Liste
APT kann seit Version 0.8 (ca. Ende 2010, ab Debian 6
Squeeze
und
Ubuntu 10.10
Maverick Meerkat
) über das Schlüsselwort
mirror
in der
Datei
/etc/apt/sources.list
seine Paketquelle aus einer Liste
von Paketspiegeln aussuchen
[Vogt-Apt-Mirror]
Offizielle Mirror-Listen im passenden Format gibt es bisher jedoch nur
von Ubuntu. Für Ubuntu 12.04 LTS
Precise Pangolin
sieht der Eintrag
für generell gut erreichbare Paketmirrors wie folgt aus:
deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
In diesem Fall wird z.B. beim Aufruf von
apt-get update
zunächst die
Mirror-Liste unter
heruntergeladen. In dieser Datei stehen die Basis-URLs mehrerer
Paketquellen. Danach sucht sich APT per Zufall eine der dieser
Paketquellen aus und lädt von dort die spezifizierten Paketlisten
herunter.
Clientseitig nutzt dieses Verfahren keinerlei GeoIP-Informationen,
sondern wählt pro Maschine einen zufälligen Paketspiegel aus. Zunächst
deutet o.g. URL auf eine simple Textdatei hin. Diese Datei wird jedoch
bei jedem Aufruf automatisch neu generiert und — ähnlich wie die Weiterleitungen
beim Debian Redirector — je nach anfragender IP dynamisch mit URLs
anderer Spiegel gefüllt. Laden Sie diese Datei aus der Schweiz herunter,
kann sie z.B. so aussehen:
Aus Österreich sieht die Liste dagegen z.B. so aus:
Erfragen Sie die Liste in Deutschland oder Frankreich, kommen sogar noch
deutlich mehr Paketspiegel zur Auswahl. Eine Abfrage von einem Server,
der bei dem deutschen Internetdienstleister Hetzner gehostet wird, ergab
34 aufgelistete Paketspiegel
[9]
Auffällig ist allerdings, dass als letzter Paketmirror in dieser Liste
jeweils immer auch noch
archive.ubuntu.com
angegeben wird. Unter
diesem Hostnamen sind per DNS Round Robin wiederum zur Zeit sechs
verschiedene Server von Canonical erreichbar.
Alternativ zum dynamisch generierten
mirrors.txt
können Sie
bei Ubuntu auch eine Paketspiegel-Liste per Land angeben. Für
Deutschland gibt es eine Liste von deutschen Ubuntu-Paketspiegeln unter
. Diese verwenden Sie z.B. für Ubuntu
14.04 LTS
Trusty Tahr
wie folgt in der
/etc/apt/sources.list
deb mirror://mirrors.ubuntu.com/DE.txt trusty main restricted universe multiverse
Wenn Sie möchten, können Sie dieses Feature von APT natürlich auch
nutzen, um eine Liste ihrer favorisierten Paketspiegel selbst
zusammenzustellen — auch unter Debian.
Unter
haben
wir z.B. eine Liste von Paketspiegeln für Debian erstellt, die alle bei
dem deutschen Internetdienstleister Hetzner gehostet sind (ohne Gewähr)
und somit für andere ebenfalls dort gehostete Server nicht mit ins
Trafficvolumen zählen. Der passende Eintrag in der
/etc/apt/sources.list
sind dann so aus:
deb mirror://www.debian-paketmanagement.de/hetzner-mirrors.txt wheezy main contrib non-free
3.7.5. Welcher Paketmirror wird schlussendlich benutzt?
Egal, ob Sie eine der o.g. Methoden zur automatischen Auswahl des
Paketspiegels verwendet haben oder ob Sie einen bestimmten Hostnamen in
ihrer
/etc/apt/sources.list
eingetragen haben — oft stellt
sich die Frage: Von welchem Paketspiegel bezieht APT denn nun die
Paketlisten und Pakete tatsächlich? APT gibt diese Information leider
nicht allzu leicht preis.
Falls einem der schlussendlich verwendeten Hostnamen mehr als eine IP
zugewiesen ist, wird eine davon zufällig ausgewählt. APT und
aptitude
verwenden diese IP-Adresse intern, zeigen sie aber erst
dann an, wenn Sie eines der Programme zur Paketverwaltung benutzen und
die zusätzliche Option
-o Debug::pkgAcquire::Worker=true
verwenden.
Damit wird APT sehr gesprächig und zeigt en detail, welche Einstellungen
es benutzt. In dem nachfolgendem Beispiel sehen Sie das auszugsweise bei
der Installation des Pakets
netselect-apt
Informationen zum tatsächlich genutzten Paketmirror bei der Verwendung von
apt-get
# apt-get -o Debug::pkgAcquire::Worker=true install netselect-apt
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
netselect
The following NEW packages will be installed:
netselect netselect-apt
0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Starting method '/usr/lib/apt/methods/http'
...
-> http:600%20URI%20Acquire%0aURI:%20http://ftp.ch.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-25_amd64.deb%0aFilename:%20/var/cache/apt/archives/partial/netselect_0.3.ds1-25_amd64.deb%0a%0a
<- http:102%20Status%0aURI:%20http://ftp.ch.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-25_amd64.deb%0aMessage:%20Connecting%20to%20ftp.ch.debian.org%20(129.132.53.171)
...
Deutlich übersichtlicher ist jedoch die Demo-Seite des Debian
Redirectors
[Debian-Redirector]
. Neben dem aktuellen Standort — hier
Berlin — zeigt
Abbildung 3.5, „Auswahl des Paketmirrors über den Debian Redirector [Debian-Redirector]“
die ausgewählten Paketquellen
als Hostname an.
Abbildung 3.5. Auswahl des Paketmirrors über den Debian Redirector
[Debian-Redirector]
Weitere Ansatzpunkte zur Leistungsfähigkeit eines bestimmten Mirrors
liefern Ihnen die Werkzeuge
netselect
bzw.
netselect-apt
. Beide
Programme stellen wir unter Bandbreite zum Paketmirror testen in
Abschnitt 3.6, „Am besten erreichbaren Paketmirror finden“
ausführlich vor.
3.8.
apt-setup
— Erstellung der Paketliste während der Installation
ToDo: Abschnitt veraltet?
Bei der Erst- oder Neuinstallation des Debian-Systems stellt der Debian
Installer eine
/etc/apt/sources.list
zusammen, da diese ja bis dato
noch nicht existiert. Bei der textbasierten Installation kommt das
Programm
apt-setup
[Debian-Paket-apt-setup]
zum Einsatz. Die Auswahl
und Konfiguration der Paketquellen erfolgt dabei über diese schlichte
Ncurses-Oberfläche.
Einschränkung zur Verwendung
Verwenden Sie dieses Programm nicht auf einem bereits installierten
System — es ist nur für den Debian Installer gedacht. Daher beinhaltet
der Paketname auch das Suffix
-udeb
(siehe Übergangs- und Metapakete
in
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
).
Abbildung 3.6. Auswahl der Paketquellen über
apt-setup
3.9. Physische Installationsmedien mit
apt-cdrom
einbinden
Nutzen Sie keine netzbasierte Installation, sondern greifen auf die
altbewährte Form anfassbarer Installationsmedien zurück, ist in diesem
Fall das Programm
apt-cdrom
aus dem Paket
apt
die richtige Wahl (das
Paket mit dem ähnlichen Namen
apt-cdrom-setup
[Debian-Paket-apt-cdrom-setup]
ist lediglich für den Debian Installer
vorgesehen). Damit fügen Sie ein bereitstehendes Installationsmedium zu
Ihrer Liste der Paketquellen in der Datei
/etc/apt/sources.list
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
) hinzu.
Während vor wenigen Jahren noch eine CD gebräuchlich war, ist es heute
aufgrund der Datenmenge eher eine DVD, eine Blu-ray oder ein
entsprechendes Abbild eines Datenträgers, kurz genannt ISO-Image.
apt-cdrom
kann mit allen diesen Medien und Formaten umgehen, d.h. auch
mit ISO-Images, welches Sie bspw. auf einem USB-Stick vorbereitet haben.
Letzteres zählt häufig zu den ersten Schritten einer Netzwerkinstallation.
Die Alternative zu
apt-cdrom
ist, alle neuen Medien von Hand
nachzutragen. Das kann ein wenig aufwendig werden.
apt-cdrom
erleichtert Ihnen die Arbeit und übernimmt folgende Schritte:
Medium (CD, DVD, Blu-ray, ISO-Image) auf Vollständigkeit und dessen Struktur überprüfen
Validierung der Indexdateien des Mediums
Voraussetzung dafür ist jedoch, dass sich das Medium bereits im Laufwerk
befindet, das Medium eingehängt ist und das dazugehörige Gerät
(DVD-Laufwerk, etc.) einen passenden Mountpoint in der Datei
/etc/fstab
hat.
apt-cdrom
unterstützt die folgenden nützlichen Schalter und Aufrufe:
apt-cdrom
kurze Information (Hilfeseite) zu
apt-cdrom
apt-cdrom add
Installationsmedium hinzufügen
apt-cdrom -d Verzeichnis add
(Langform
--cdrom
Installationsmedium aus dem angegebenen Verzeichnis hinzufügen, bspw.
von einem USB-Stick
apt-cdrom ident
Identität des Installationsmediums ausgeben (siehe nachfolgende
Beispielausgabe)
apt-cdrom -r
(Langform
--rename
Umbenennen eines Mediums. Ändert den Namen eines Mediums oder
überschreibt den Namen, der dem Medium gegeben wurde.
Identifikation eines Installationsmediums.
# apt-cdrom ident
Verwendeter CD-ROM-Einbindungspunkt: /media/cdrom/
CD-ROM wird eingebunden.
Identifizieren ... [3e81e0fb1b74074c6e427e18afef3ab7-2]
Gespeicherte Kennzeichnung:
Einbindung der CD-ROM wird gelöst ...
3.10. Einträge mit
add-apt-repository
im Griff behalten
add-apt-repository
ist ein Python-Skript, um Einträge automatisiert
und damit leichter zur Liste der Paketquellen (siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
) hinzuzufügen oder auch wieder
auszutragen. Es öffnet dazu die bestehende Liste der Paketquellen,
ergänzt bzw. korrigiert die Einträge und überprüft diese zusätzlich auf
Echtheit (siehe
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
). Fehlende
GPG-Schlüssel trägt es dabei automatisch in ihrem lokalen Schlüsselring
nach. Indem es die vielen Einzelschritte kombiniert, spart es Zeit und
lässt sich darüber hinaus auch problemlos zur Automatisierung in ihre
eigenen Skripte integrieren.
add-apt-repository
ist bis Debian 7
Wheezy
Bestandteil des Pakets
python-software-properties
[Debian-Paket-python-software-properties]
und ab Debian 8
Jessie
in
software-properties-common
[Debian-Paket-software-properties-common]
, beide aus dem
Quellpaket und Projekt Software Properties
???
. Es stellt graphische
Komponenten bereit, die bspw. auch im Rahmen von Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) zum Einsatz kommen. Diese graphischen
Komponenten beschreiben wir ausführlich unter Einstellungen mit Synaptic
Abschnitt 3.11, „Einstellungen mit Synaptic“
Um die Handhabung auf der Kommandozeile noch weiter zu vereinfachen und
insbesondere die Vertauschung der beiden Begriffe
apt
und
add
abzufangen, existiert zusätzlich das Kommando
apt-add-repository
. Dies
ist durch einen symbolischen Link auf
add-apt-repository
realisiert.
3.10.1. Aufruf und Optionen
add-apt-repository
akzeptiert als Parameter neben der Angabe des
Repositories in Form einer vollständigen Zeile in korrekter Quotierung
ebenso Personal Package Archives (PPAs) aus dem Ubuntu Launchpad
[Ubuntu-Launchpad]
. Der Aufruf ist von der Abfolge her analog zum
manuellen Eintrag in der Liste der Paketquellen (siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
):
add-apt-repository deb uri distribution [component1] [component2] [...]
3.10.2. Beispiele
Möchten Sie das Repository namens
Petra
zu ihrer Installation von
Linux Mint hinzufügen, funktioniert der folgende Aufruf:
add-apt-repository 'deb http://packages.linuxmint.com/ petra main'
Ein PPA-Archiv namens
gnome-desktop
für Ubuntu fügen Sie wie folgt
hinzu:
add-apt-repository ppa:gnome-desktop
Um ein Repository wieder auszutragen, rufen Sie
add-apt-repository
mit
dem zusätzlichen Schalter
--remove
auf. Nachfolgendes Beispiel zeigt
das für den Eintrag für Medibuntu, aus dem der Zweig
non-free
wieder
entfernt wird:
add-apt-repository --remove 'https://packages.medibuntu.org non-free'
3.11. Einstellungen mit Synaptic
Auch mittels Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) können Sie die Datei
/etc/apt/sources.list
anpassen. Dazu öffnen Sie den entsprechenden
Dialog unter dem Menüpunkt
Einstellungen
Paketquellen
. Unter
Gnome/GTK erfolgt daraufhin ein Aufruf des Programms
software-properties-gtk
aus dem bereits weiter oben genannten Projekt
Software Properties
???
Das Pendant unter KDE heißt
software-properties-kde
und kommt aus
dem selben Projekt.
Über die verschiedenen Reiter stellen Sie die gewünschten Paketquellen
ein.
Abbildung 3.7, „Einstellung der Komponenten in Synaptic“
zeigt die Einstellungen zu den
Standard-Debian-Repositories.
Abbildung 3.7. Einstellung der Komponenten in Synaptic
3.12. Debian und Ubuntu Sources List Generator
Möchten Sie ihre Liste der Paketquellen nicht von Hand zusammentragen,
sondern stattdessen über eine Software erstellen lassen, bieten sich der
Debian Sources List Generator
[Debian-Sources-List-Generator]
und der
Ubuntu Sources List Generator
[Ubuntu-Sources-List-Generator]
von
Jonhnatha Trigueiro an. Dabei handelt es sich um eine
JavaScript-Anwendung, die Sie über ihren Webbrowser benutzen. Als
Ergebnis erhalten Sie am Ende eine Textdatei, die Sie überprüfen und in
Ihr System einpflegen können. Vor der Übernahme empfehlen wir, für alle
Fälle von der derzeit genutzten Datei eine Sicherheitskopie anzulegen,
sodass Sie im Bedarfsfall darauf zurückgreifen können.
3.12.1. Feinheiten für Debian
Zunächst wählen Sie ihre geographische Region aus, danach die
Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
), die Architektur (siehe
Abschnitt 1.2, „Debian-Architekturen“
) Ihres Systems und die Distributionsbereiche
(siehe
Abschnitt 2.9, „Distributionsbereiche“
). In der rechten Spalte wählen Sie die
gewünschten Repositories von Drittanbietern aus, sofern Sie dazu Bedarf
haben (siehe
Abbildung 3.8, „Auswahl der Komponenten im Debian Sources List Generator“
). Über den Knopf
Generate sources list
erstellt Ihnen das Programm eine
passende Liste der Paketquellen (siehe
Abbildung 3.9, „Erzeugte
sources.list
durch den Debian Sources List Generator“
). Diese Datei können Sie nun
als neue
/etc/apt/sources.list
in Ihr System übernehmen.
Abbildung 3.8. Auswahl der Komponenten im Debian Sources List Generator
Abbildung 3.9. Erzeugte
sources.list
durch den Debian Sources List Generator
3.12.2. Feinheiten für Ubuntu
Die Abfolge ist ähnlich zu Debian, nur wesentlich umfangreicher. Nach
der geographischen Region und der Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
) wählen Sie die Distributionsbereiche (siehe
Abschnitt 2.9, „Distributionsbereiche“
) aus, die hier als Ubuntu Branches
bezeichnet werden. Hinter den Fragezeichen verbergen sich Erläuterungen,
welche den ausgewählten Distributionsbereich näher beschreiben. Danach
können Sie neben der Architektur (siehe
Abschnitt 1.2, „Debian-Architekturen“
) auch
etliche zusätzliche Paketquellen von Ubuntu-Partnern hinzufügen. Am
Schluß erstellen Sie mit einem Klick auf den Knopf
Generate
die entsprechende Liste der ausgewählten Paketquellen, die Sie in ihr
System übernehmen können.
Abbildung 3.10. Auswahl der Komponenten im Ubuntu Sources List Generator
3.13. Paketquelle auf Echtheit überprüfen
3.13.1. Basiswissen
Paketquellen und Repositories sind im Prinzip Fileserver mit einer vorab
festgelegten, spezifischen Struktur, deren Inhalt öffentlich zugänglich
ist
[Debian-Wiki-Debian-Repository-Format]
. Vereinfacht betrachtet
muss bei dessen Abruf sichergestellt werden, dass die von dort bezogenen
Daten echt sind und auch mit den Originaldaten übereinstimmen, aus denen
die Distribution besteht. Daher sind in der Paketverwaltung mehrstufige
Mechanismen integriert, welche die Echtheit und Vollständigkeit der
empfangenen Paketlisten und Pakete überprüfen (Authentizität).
Hintergrund dafür ist einerseits, dass eine Paketquelle Paketarchive
unterschiedlichster Herkunft umfasst. Die Daten könnten aus einer wenig
vertrauenswürdigen Quelle stammen und auch Schadcode enthalten. Ebenso
nimmt die Zuverlässigkeit von Speichermedien (Datenträger) mit der Zeit
ab und sorgt für fehlerhafte Bitfolgen. Desweiteren erfolgt der
Transport über Leitungsnetze unterschiedlichster Art, wobei hier
gekippte Bits und somit Übertragungsfehler und verfälschte Daten auf dem
Transportweg nicht vollständig auszuschließen sind.
Daher sind sowohl alle Veröffentlichungen (siehe
Abschnitt 2.10, „Veröffentlichungen“
), als auch die Paketquellen (siehe
Abschnitt 3.1, „Paketquellen“
) mit den Paketlisten und die darüber bereitgestellten,
einzelnen Pakete jeweils separat digital signiert. Eine digitale
Signatur („Schlüssel“, GPG-Key) besteht aus zwei Teilen — einem
öffentlichen und einem privaten, geheimen Schlüssel. Die Paketlisten
werden zunächst vom Verwalter des Repositories mit seinem privaten
Schlüssel signiert und der dazugehörige, öffentliche Schlüssel
bekanntgegeben bzw. als Paket hinterlegt. Mit Hilfe dieses
Signatur-Paares überprüfen Sie einerseits die Echtheit der Paketquelle
und andererseits über die Hashsummen jeden einzelnen Pakets in den
Paketlisten auch jedes einzelne Paket daraus (siehe auch „Bezogenes
Paket verifizieren“ in
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
).
APT und
aptitude
haben diesen Vorgang in ihre internen Abläufe
integriert und nehmen Ihnen diesen Verifizierungsschritt vollständig ab.
Falls die Signatur korrekt ist, dann wird der Paketmirror bzw. das
bezogene Paket als glaubwürdig eingeschätzt. Falls nicht, erhalten Sie
eine deutliche Warnung.
3.13.2. Schlüsselverwaltung mit
apt-key
(Überblick)
Die Verwaltung der Schlüssel erfolgt mit dem Programm
apt-key
. Dazu
gehört ein Schlüsselring mit allen GPG-Schlüsseln der Paketquellen, aus
denen Pakete bezogen wurden. Bei Debian sind diese Schlüssel Bestandteil des
Pakets
debian-archive-keyring
[Debian-Paket-debian-archive-keyring]
, bei Ubuntu heißt das Paket
hingegen
ubuntu-keyring
[Ubuntu-Paket-ubuntu-keyring]
Der primäre Schlüsselring für lokale, als vertrauenswürdig eingestufte
Schlüssel ist die Datei
/etc/apt/trusted.gpg
. Für zusätzliche
Schlüsselbunde und Dateifragmente weiterer vertrauenswürdiger Schlüssel
ist das Verzeichnis
/etc/apt/trusted.gpg.d/
vorgesehen. Insbesondere
o.g. Schlüsselbund-Pakete speichern ihre Schlüsselbund-Dateien in diesem
Verzeichnis.
Die einzelnen Dateien in
/etc/apt/trusted.gpg.d/
gelten als
Konfigurationsdateien, können also vom lokalen Administrator verändert
oder gelöscht werden. Deswegen sind diese Schlüssel zusätzlich auch noch
in der Datei
/usr/share/keyrings/debian-archive-keyring.gpg
gespeichert.
Die Schlüssel haben eine begrenzte Gültigkeit oder können auch
zurückgezogen werden. Daher sind in der Schlüsselbund-Datei
/usr/share/keyrings/debian-archive-removed-keys.gpg
auch noch
die abgelaufenen oder zurückgezogenen Schlüssel vergangener
Debian-Veröffentlichungen verfügbar.
Ähnliche Schlüsselringe gibt es auch für andere Veröffentlichungen, bspw.
debian-edu-archive-keyring
für Skolelinux/DebianEdu
[Skolelinux]
und
debian-ports-archive-keyring
für das Debian-Ports-Projekt (siehe
Abschnitt 1.2.1, „Debian-Ports-Projekt“
).
3.13.3. Unterkommandos von
apt-key
Mit
apt-key
greifen Sie auf ihren gespeicherten Schlüsselring zu.
Damit lassen Sie sich bspw. die gemerkten Schlüssel anzeigen, fügen neue
Schlüssel zum Schlüsselring hinzu oder entfernen diese daraus wieder.
Diese Vorgänge kommen meist dann zum tragen, wenn Sie Ihr Debian-System
von Ballast befreien und nicht mehr benötigte Schlüssel austragen oder
weitere Paketquellen einbinden möchten, deren Schlüssel (noch) nicht
offiziell hinterlegt ist.
Die vier Unterkommandos
list
finger
export
und
exportall
haben
rein informativen Charakter. Mit den ersten beiden zeigen sie zu den
gespeicherten, vertrauenswürdigen Schlüsseln deren Erstell- und
Verfallsdatum sowie den Eigentümer bzw. Aussteller des Schlüssels an. Im
vorliegenden Fall ist dieser keine Person, sondern eine
Debian-Veröffentlichung bzw. deren Verantwortlicher. Als E-Mail-Adresse
ist hier diejenige der FTP-Master hinterlegt (siehe
Abbildung 3.11, „Auflistung der gespeicherten, vertrauenswürdigen Schlüssel“
).
Abbildung 3.11. Auflistung der gespeicherten, vertrauenswürdigen Schlüssel
Mit dem Aufruf
apt-key finger
zeigen Sie zusätzlich deren Fingerabdruck
an
[10]
. Nachfolgend sehen Sie beispielhaft die
Signaturen zum Opera Software Archive, dem Mendeley Desktop Team und dem
Debian Archive für die beiden Veröffentlichungen
Wheezy
und
Jessie
Liste der Signaturen (Ausschnitt).
# apt-key finger
/etc/apt/trusted.gpg
- -------------------
pub 1024D/30C18A2B 2012-10-29 [verfallen: 2014-10-29]
Schl.-Fingerabdruck = ABCD 165A F57C AC92 18D2 872B E585 066A 30C1 8A2B
uid Opera Software Archive Automatic Signing Key 2013

pub 2048R/6F036044 2011-02-21
Schl.-Fingerabdruck = 26BB 0219 1EF4 588D 3A7B C30F D800 C7D6 6F03 6044
uid Mendeley Desktop Team
sub 2048R/F9CE0BFD 2011-02-21

/etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg
- -------------------------------------------------------
pub 4096R/518E17E1 2013-08-17 [verfällt: 2021-08-15]
Schl.-Fingerabdruck = 75DD C3C4 A499 F1A1 8CB5 F3C8 CBF8 D6FD 518E 17E1
uid Jessie Stable Release Key

/etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg
- ----------------------------------------------------------
pub 4096R/46925553 2012-04-27 [verfällt: 2020-04-25]
Schl.-Fingerabdruck = A1BD 8E9D 78F7 FE5C 3E65 D8AF 8B48 AD62 4692 5553
uid Debian Archive Automatic Signing Key (7.0/wheezy)

/etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg
- -------------------------------------------------------
pub 4096R/65FFB764 2012-05-08 [verfällt: 2019-05-07]
Schl.-Fingerabdruck = ED6D 6527 1AAC F0FF 15D1 2303 6FB2 A1C2 65FF B764
uid Wheezy Stable Release Key

Mit dem Aufruf
apt-key export
Schlüssel
geben Sie hingegen nur einen
bestimmten Schlüssel auf der Standardausgabe als als PGP-Block aus. Der
Schalter
apt-key exportall
führt das gleiche für alle Schlüssel durch.
Mit
apt-key add
Schlüsseldatei
und
apt-key del
Schlüssel-ID
verändern Sie den Inhalt des Schlüsselbundes. Mit ersterem fügen Sie
einen neuen Schlüssel aus einer Datei hinzu, mit letzterem löschen Sie
den Schlüssel mit der angegebenen Schlüssel-ID aus dem Schlüsselring.
Die Option
update
synchronisiert hingegen den lokalen Schlüsselbund
mit dem Archivschlüsselbund. Dabei werden die Schlüssel aus dem lokalen
Schlüsselbund entfernt, die nicht mehr gültig sind. In Ubuntu ist auch
die Option
net-update
anwendbar, die eine Synchronisation mit einem
Schlüsselbund über das Netzwerk ermöglicht.
Anmerkung
Ab Debian 9
Stretch
ist diese Option als veraltet markiert.
3.13.4. Beispiel: Ergänzung eines Schlüssels
Nutzen Sie beispielsweise den Webbrowser Opera, finden Sie dazu keine
Pakete in den offiziellen Debian-Paketquellen. Opera ist nicht als freie
Software eingeordnet, aber als
deb
-Paket von der Herstellerwebseite
beziehbar. Daher fügen Sie in Schritt eins die Paketquelle zur Datei
/etc/apt/sources.list
hinzu (siehe auch
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
):
deb http://deb.opera.com/opera stable non-free
Als Schritt zwei benötigen Sie noch den dazugehörigen Schlüssel der
Paketquelle. Der Hersteller empfiehlt auf seiner Seite den Bezug
mittels
wget
wie folgt:
Bezug des Schlüssels zur Paketquelle, hier für Opera mittels
wget
# wget http://deb.opera.com/archive.key
--2014-06-17 23:54:43-- http://deb.opera.com/archive.key
Auflösen des Hostnamen »deb.opera.com (deb.opera.com)«... 185.26.183.130
Verbindungsaufbau zu deb.opera.com (deb.opera.com)|185.26.183.130|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 2437 (2,4K) [application/pgp-keys]
In »»archive.key«« speichern.

100%[=======================================================================>] 2.437 --.-K/s in 0s

2014-06-17 23:54:43 (63,0 MB/s) - »»archive.key«« gespeichert [2437/2437]
Unverschlüsselte Übertragung von Schlüsseln
Bitte beachten Sie, dass dieser Schlüssel jedoch nicht über gesicherte
Kanäle (z.B. per HTTPS) heruntergeladen wurde und Sie damit nicht
hundertprozentig sicher sein können, dass dieser Schlüssel wirklich von
Opera ist. Leider scheint der Schlüssel auch nicht mit allzu vielen
Signaturen ausgestattet zu sein, sodass eine Verifizierung über die
Signaturen ebenfalls nicht möglich ist.
Der bezogene Schlüssel befindet sich nun im aktuellen Verzeichnis in der
lokalen Datei
archive.key
. Diesen Schlüssel fügen Sie nun über den
Aufruf
apt-key add archive.key
Ihrem lokalen Schlüsselbund hinzu:
Hinzufügen des bezogenen Schlüssels mittels
apt-key
# apt-key add archive.key
OK
Hat alles geklappt, meldet sich
apt-key
mit einem schlichten
OK
zurück. Von nun an werden alle Pakete von dieser Paketquelle als
vertrauenswürdig eingestuft. Auch Aktualisierungen über APT und
aptitude
sind problemlos möglich.
Es bleibt jedoch ein unangenehmer Beigeschmack erhalten. Aufgrund der
ungesicherten Übertragung des bezogenen Schlüssels können Sie nicht
sicher sein, ob der bezogene Schlüssel wirklich von Opera ist und Sie
ihm vertrauen können, oder ob nicht zufällig eine
Man-in-the-Middle-Attacke im Gange ist.
3.13.5. Abkündigung von apt-key
Seit APT 2.1.8 ist
apt-key
offiziell abgekündigt. Ersatz ist das
Ablegen von Keyring-Dateien im Verzeichnis
/etc/apt/trusted.gpg.d/
z.B. als Bestandteil eines Paketes. Solche Pakete heißen
typischerweise
-archive-keyring
z.B.
debian-archive-keyring
ubuntu-archive-keyring
oder
pkg-mozilla-archive-keyring
3.13.6. Alternative Benutzerschnittstellen zur APT-Schlüsselverwaltung
Die Abkündigung von
apt-key
ist auch einer der Gründe, warum sich
niemand mehr darum gekümmert hat,
gui-apt-key
[Debian-Paket-gui-apt-key]
, das verwaiste GUI-Frontend zu
apt-key
weiterzuentwickeln. Entsprechend ist auch die darauf aufbauende,
curses-basierende TUI-Programm
curses-apt-key
[curses-apt-key]
nicht mehr weiterentwickelt wird.
3.14. Liste der verfügbaren Pakete aktualisieren
3.14.1. Grundlegendes Vorgehen
Bevor Sie Veränderungen am Paketbestand veranlassen, empfehlen wir
Ihnen, stets die Liste der lokal genutzten Pakete auf den neuesten Stand
zu bringen. Damit arbeiten Sie mit den aktuellen Referenzen auf die
bestehenden Softwarepakete. Diesen Schritt ermöglichen alle Werkzeuge
zur Paketverwaltung.
Dazu bestehen verschiedene Möglichkeiten, die im Endeffekt alle das
gleiche bewirken:
Das klassische Kommando, das auch stets auf älteren Veröffentlichungen
funktioniert, ist
apt-get update
. Auf neueren Veröffentlichungen, die
das Kommando
apt
kennen, funktioniert auch
apt update
(siehe
Abschnitt 6.2.2, „APT“
).
aptitude
(siehe
Abschnitt 6.3.2, „
aptitude
) gestattet einen Aufruf über die
Kommandozeile mittels
aptitude update
. Möchten Sie die Paketliste
aktualisieren und danach interaktiv im Text-Modus weiterarbeiten, so
rufen Sie
aptitude -u
auf. Sind Sie bereits im interaktiven Text-Modus
von
aptitude
, sorgt der Tastendruck
für frische Paketlisten
und die aktualisierte Darstellung in
aptitude
. Alternativ stoßen Sie
die Aktion über den Menüeintrag
Aktionen -> Paketlisten aktualisieren
an.
Bei Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) verbirgt sich dieser Vorgang
hinter dem Menüeintrag
Bearbeiten -> Paketinformationen neu laden
Alternativ nutzen Sie dafür die Tastenkombination
Ctrl
Im Programm SmartPM (siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) lösen Sie die
Aktualisierung für alle Paketquellen über den Menüpunkt
File -> Update
channels
aus. Möchten Sie nur eine einzige Paketquelle auf den
neuesten Stand bringen, wählen Sie stattdessen zunächst
File -> Update
selected channels ...
aus und entscheiden danach, welche Paketquelle
Ihres Erachtens eine Auffrischung verdient hat (siehe dazu
Abbildung 3.12, „Auflistung der verfügbaren Paketquellen in SmartPM“
).
Abbildung 3.12. Auflistung der verfügbaren Paketquellen in SmartPM
Aktualisierung mit
dpkg
dpkg
kennt auch die beiden Schalter
--update-avail
und
--merge-avail
. Es setzt dafür lokal bereitstehende Paketlisten voraus,
mit denen es dann seine Paketdatenbank unter
/var/lib/dpkg/available
aktualisiert. Diesen Schalter von
dpkg
betrachten wir hier nicht
näher.
Führen Sie eines der o.g. Aufrufe aus, wird zunächst die Liste der
Paketquellen in der Datei
/etc/apt/sources.list
und dem Verzeichnis
/etc/apt/sources.list.d
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
gelesen. Jeder Eintrag darin bezeichnet eine Paketquelle. Von diesen
Paketquellen wird nacheinander jeweils eine aktuelle Liste der Pakete
bezogen, die von dieser angegebenen Paketquelle verfügbar sind.
Jede bezogene Liste wird danach auf deren Echtheit geprüft. Dazu ist
diese digital signiert (siehe
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
).
Mit Hilfe des GPG-Schlüssels für die Paketquelle prüfen
apt', `apt-get
bzw.
aptitude
automatisch deren Authentizität und falls ohne
Beanstandung, vereinigen sie die bezogene Liste mit der bereits
bestehenden, lokalen Paketliste (siehe
Abschnitt 3.15, „Lokale Paketliste und Paketcache“
). Dabei geben insbesondere
apt-get
und
aptitude
eine Reihe von Mitteilungen auf dem Terminal
aus. Diese bedeuten:
Holen:1 Bezugsquelle Release.gpg
: beziehe den GPG-Schlüssel zur
Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
) von der als URL
angegebenen Paketquelle (siehe
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
OK Bezugsquelle [Datenmenge]
: der GPG-Schlüssel ist in Ordnung, die
Signatur stimmt (siehe auch
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
Holen:2 Bezugsquelle [Datenmenge]
: beziehe die Paketliste von der unter 1
als URL angegebenen Paketquelle
Ign Bezugsquelle
: Ein beim Herunterladen aufgetretener Fehler wird
ignoriert (z.B. fehlende Übersetzungen)
Am Ende der Ausgabe erfolgt noch eine Zusammenfassung, welche Datenmenge
in welcher Zeitspanne bezogen wurde. Nachfolgend sehen Sie die Ausgabe
am Beispiel von
apt-get update
Aktualisierung der Paketliste durch
apt-get update
# apt-get update
OK http://ftp.de.debian.org wheezy Release.gpg
Holen: 1 http://security.debian.org wheezy/updates Release.gpg [836 B]
Holen: 2 http://security.debian.org wheezy/updates Release [102 kB]
OK http://ftp.de.debian.org wheezy Release
OK http://ftp.de.debian.org wheezy/main Sources
Holen: 3 http://security.debian.org wheezy/updates/main Sources [79,2 kB]
OK http://ftp.de.debian.org wheezy/contrib Sources
OK http://ftp.de.debian.org wheezy/non-free Sources
OK http://ftp.de.debian.org wheezy/main i386 Packages
Holen: 4 http://security.debian.org wheezy/updates/contrib Sources [14 B]
OK http://ftp.de.debian.org wheezy/contrib i386 Packages
Holen: 5 http://security.debian.org wheezy/updates/non-free Sources [14 B]
OK http://ftp.de.debian.org wheezy/non-free i386 Packages
Holen: 6 http://security.debian.org wheezy/updates/main i386 Packages [150 kB]
OK http://ftp.de.debian.org wheezy/contrib Translation-en
OK http://ftp.de.debian.org wheezy/main Translation-de_DE
OK http://ftp.de.debian.org wheezy/main Translation-de
Holen: 7 http://security.debian.org wheezy/updates/contrib i386 Packages [14 B]
OK http://ftp.de.debian.org wheezy/main Translation-en
Holen: 8 http://security.debian.org wheezy/updates/non-free i386 Packages [14 B]
OK http://ftp.de.debian.org wheezy/non-free Translation-en
Holen: 9 http://security.debian.org wheezy/updates/contrib Translation-en [14 B]
Holen: 10 http://security.debian.org wheezy/updates/main Translation-en [88,7 kB]
Holen: 11 http://security.debian.org wheezy/updates/non-free Translation-en [14 B]
Es wurden 421 kB in 0 s geholt (428 kB/s).
Paketlisten werden gelesen... Fertig
Neuere Versionen ergänzen die Ausgabe um zusätzliche Zeilen und teilen
Ihnen darüber mit, ob und wieviele aktualisierbare Pakete vorliegen.
Nachfolgend sehen Sie in
Abbildung 3.13, „Auflistung der aktualisierbaren Pakete“
, dass
für zwölf Pakete neue Varianten bereitstehen. Um welche Pakete es sich
konkret handelt, listen Sie mit Hilfe des Kommandos
apt list
--upgradable
auf (siehe
Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“
).
Abbildung 3.13. Auflistung der aktualisierbaren Pakete
Für diese Mitteilungen greifen
apt-get
und
apt
auf das Werkzeug
daptup
aus dem gleichnamigen Paket zurück
[Debian-Paket-daptup]
. Es ist als eine
direkte Abhängigkeit zu beiden definiert und wird daher automatisch
installiert.
3.14.2. Überprüfung der Paketsignaturen
Konnten bei der Aktualisierung für neue Paketlisten keine gültigen Signaturen
gefunden werden, wird eine Warnung ausgegeben. Entsprechende Zeilen beginnen mit
W:
. Bei einer Paketquelle ohne Schlüssel beschwert sich APT wie folgt:
Aktualisierung der Paketlisten ohne passenden GPG-Schlüssel.
# apt-get update
...
Hole:10 http://deb.opera.com squeeze/non-free i386 Packages [774 B]
Es wurden 1.250 kB in 3 s geholt (329 kB/s)
Paketlisten werden gelesen... Fertig
W: GPG-Fehler: http://deb.opera.com squeeze Release: Die folgenden Signaturen konnten
nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist:
NO_PUBKEY E585066A30C18A2B
Pakete, die nicht korrekt signiert sind, können Schadcode enthalten und sollten
nicht installiert werden.
aptitude
warnt Sie in diesem Fall sehr deutlich:
Abbildung 3.14. Ausgabe einer
deutlichen
Warnung bei
aptitude
Zur Überprüfung auf korrekte Pakete tragen Sie bitte den passenden GPG-Key
für die Paketliste der Veröffentlichung nach.
3.14.3. Platz für den Paketcache
Bitte planen Sie freien Platz für den Paketcache ein. Die aktualisierten
Paketlisten und Pakete benötigen Speicherplatz, bevor diese ausgepackt
und eingerichtet werden können.
3.14.4. Die Veröffentlichung wechseln
Möchten Sie neuere Versionen von Paketen installieren oder auf eine
andere Veröffentlichung von Debian wechseln, ist zusätzlich ein
upgrade
bzw.
dist-upgrade
erforderlich. Weitere Informationen dazu
erhalten Sie unter „Pakete aktualisieren“ in
Abschnitt 8.41, „Pakete aktualisieren“
bzw. „Distribution aktualisieren“ in
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
3.15. Lokale Paketliste und Paketcache
Die Paketverwaltung — genauer APT — pflegt lokale Paketlisten im
Verzeichnis
/var/lib/apt/lists
. Diese Paketlisten dienen als
Nachschlagewerk für APT. Wollen Sie den Paketbestand auf Ihrem
Debian-System ändern, benutzt APT diese Paketliste, um die Existenz, die
Verfügbarkeit von einer Paketquelle und die Abhängigkeiten eines Pakets
zu bestimmen, bevor diese tatsächlich bezogen werden. Installieren Sie ein
Paket nach (
Abschnitt 8.38, „Pakete installieren“
), weiß APT aus der lokalen
Paketliste, von welcher Paketquelle und unter welcher URL es dieses
herunterladen kann.
Die hier verwendete mehrstufige Vorgehensweise hat ihren Ursprung in der
Anfangszeit von Debian, bei der der Internetzugang und dessen (nahezu)
permanenter Verfügbarkeit noch nicht so selbstverständlich wie heute
waren. Lokal verfügbare Informationen waren (und sind) stets mit
geringerer Verzögerung nutzbar als externe Ressourcen und reduzieren
zudem die Netzlast.
Die nachfolgende Auflistung ist typisch, wenn Sie als Paketmirror
ftp.ch.debian.org
und die Distributionsbereiche
main
contrib
und
non-free
im der Veröffentlichung
buster
benutzen und
zusätzlich auch
deb-src
-Zeilen in der
sources.list
haben (deswegen
die Dateien mit
Sources
im Namen) und
apt-file
installiert haben
(deswegen die Dateien mit
Contents
im Namen).
Übersicht zu den lokalen Dateien, in denen die Paketlisten hinterlegt sind.
$ ls -F /var/lib/apt/lists
auxfiles/
ftp.ch.debian.org_debian_dists_buster_contrib_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_contrib_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_contrib_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_contrib_source_Sources
ftp.ch.debian.org_debian_dists_buster_InRelease
ftp.ch.debian.org_debian_dists_buster_main_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_main_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_main_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_main_source_Sources
ftp.ch.debian.org_debian_dists_buster_non-free_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_non-free_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_non-free_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_non-free_source_Sources
lock
partial/
security.debian.org_dists_buster_updates_InRelease
security.debian.org_dists_buster_updates_main_binary-amd64_Packages
security.debian.org_dists_buster_updates_main_i18n_Translation-de
security.debian.org_dists_buster_updates_main_source_Sources
security.debian.org_dists_buster_updates_non-free_binary-amd64_Packages
security.debian.org_dists_buster_updates_non-free_i18n_Translation-de
security.debian.org_dists_buster_updates_non-free_source_Sources
Für jede Paketquelle aus
/etc/apt/sources.list
wird eine oder mehrere eigene,
lokale Datei gepflegt. Diese ist eine Textdatei und beinhaltet alle
Informationen zu den beziehbaren Paketen, bspw. den genauen Paketnamen
und dessen Version (
Abschnitt 2.11, „Benennung einer Paketdatei“
), den Maintainer
des Pakets, die Paketabhängigkeiten zum Bauen des Pakets, die genutzte
Architektur (
Abschnitt 1.2, „Debian-Architekturen“
), das Format des Debianpakets
sowie die Checksummen der Pakete und das Sourcepaket
Abschnitt 2.7, „Debian-Pakete (Varianten)“
), aus der das Paket entstanden ist. Danach
folgen die Projektwebseite sowie das Verzeichnis, in dem das Paket auf
dem Paketmirror abgelegt ist. Zum Schluss stehen die Priorität, der
Distributionsbereich (
Abschnitt 2.9, „Distributionsbereiche“
) und die Paketkategorie
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
). Nachfolgender
Kasten zeigt die Informationen anhand des Pakets
0ad-data
aus der
Paketkategorie Spiele (
games
).
Eintrag in
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye_main_binary-amd64_Packages
zum Paket
0ad-data
Package: 0ad-data
Version: 0.0.23.1-1.1
Installed-Size: 2044173
Maintainer: Debian Games Team
Architecture: all
Pre-Depends: dpkg (>= 1.15.6~)
Suggests: 0ad
Description: Real-time strategy game of ancient warfare (data files)
Homepage: http://play0ad.com/
Description-md5: 26581e685027d5ae84824362a4ba59ee
Tag: role::app-data
Section: games
Priority: optional
Filename: pool/main/0/0ad-data/0ad-data_0.0.23.1-1.1_all.deb
Size: 701833824
MD5sum: b2b6e5510898abf0eee79da48995f92f
SHA256: afb3f0ddaceb36dc2d716d83d7fee4ada419511a948e4a06fa44bbc1b486e2c0
TODO: Querverweis auf
cron-apt
und
/etc/cron.daily/apt
Die Paketlisten ändern sich, wenn Aktualisierungen sowie neue Versionen
von Paketen verfügbar werden und die Paketquellen auf den Spiegelservern
entsprechend aktualisiert wurden. Daher raten wir Ihnen, die lokalen
Paketlisten in regelmäßigen Abständen ebenfalls zu aktualisieren, bspw.
mit den Aufrufen
apt-get update
aptitude update
oder einem anderen
Werkzeug zur Paketverwaltung (
Kapitel 6,
Werkzeuge zur Paketverwaltung (Überblick)
). Wie
das genau vorsichgeht, erklären wir unter Liste der verfügbaren Pakete
aktualisieren in
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
genauer.
Sollte die Aktualisierung fehlschlagen, könnte sich die Paketliste in
einem inkonsistenten Zustand befinden. Wie Sie mit dieser Situation
umgehen, erklären wir Ihnen unter Lokale Paketliste reparieren in
Abschnitt 3.16, „Lokale Paketliste reparieren“
genauer.
3.16. Lokale Paketliste reparieren
Es kann vorkommen, dass eine lokale Paketliste, die im Verzeichnis
/var/lib/apt/lists
liegt, bei deren Aktualisierung (siehe
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
) kaputtgeht. Das kommt
sehr selten vor, aber bspw. dann, wenn nicht mehr genügend freier
Speicherplatz für die neue Paketliste zur Verfügung steht oder das
Entpacken der komprimierten Liste aus einem anderen Grund fehlschlägt.
Sie bekommen das mit, wenn APT jammert und in Folge seine Arbeit
verweigert.
APT versucht von sich aus, eine defekte oder nicht mehr vorhandene Liste
wieder zu reparieren. Dazu beauftragen Sie APT mit dem Kommando
apt-get
update
. Damit bezieht es die aktuellen Paketlisten von den in
/etc/apt/sources.list
angebenen Paketquellen und ersetzt die bereits
bestehenden lokalen Paketlisten. Falls diese nicht mehr vorhanden sein
sollten, legt APT diese Listen neu an.:
Ist das erfolglos, räumen Sie als nächsten Schritt das Verzeichnis
/var/lib/apt/lists/partial
auf. Darin hinterlegt APT alle
Zwischenstände und Teillisten. Löschen Sie dazu in besagtem Verzeichnis
sämtliche Dateien und wiederholen danach das Kommando
apt-get update
Wenn das noch nicht geholfen hat, bereinigen Sie auch das Verzeichnis
/var/lib/apt/lists
. Danach wiederholen Sie das Kommando
apt-get update
Sollte das Vorgehen immer noch nicht von Erfolg gekrönt sein, warten Sie
bitte sieben Stunden und wiederholen danach das Kommando
apt-get
update
erneut. Hintergrund für die Bitte um Geduld ist die Erneuerung
der Debian-Paketquellen auf den Paketmirrors (siehe
Abschnitt 3.5, „Geeigneten Paketmirror auswählen“
). Diese Erneuerung erfolgt
automatisiert alle sechs Stunden und bereinigt auch eventuelle
Inkonsistenzen der Paketlisten auf dem Paketmirror. Um auch
sicherzugehen, dass die Liste der Paketquellen auf dem neuesten Stand
ist, warten Sie lieber einen kleinen Moment länger.
3.16.1. Aktualität des Mirrors überprüfen
Sollten die Fehler trotz Ihrer intensiven Bemühungen bestehen bleiben,
bleibt noch eine Überprüfung, ob der angefragte Spiegelserver auch
aktuell ist. Eine Zustandsübersicht über alle offiziellen Spiegelserver,
die bei Debian registriert sind, finden Sie auf der Debian Mirror
Status-Seite
[Debian-Mirror-Status]
(siehe
Abbildung 3.15, „Status der verschiedenen Debian-Paketmirror“
).
Abbildung 3.15. Status der verschiedenen Debian-Paketmirror
Wann die letzte Aktualisierung des von Ihnen gewählten Debian-Mirrors
passiert ist, sehen Sie im Unterverzeichnis
project/trace/
z.B. unter
für den
Paketmirror der ETH Zürich. In dieser Liste suchen Sie nach dem
Datumsstempel der Datei, die dem Hostnamen Ihres Spiegelservers
entspricht. Wenn der Spiegelserver unter mehreren Namen erreichbar ist,
finden Sie dort trotzdem nur einen davon. Es sollte immer die neuste
Datei sein.
Wenn die gefundene Datei deutlich älter als sechs Stunden ist, prüfen
Sie bitte zuerst, wann die letzte Aktualisierung des Mirror-Netzwerkes
stattgefunden hat
[11]
. Unter
[dinstall-status]
finden Sie eine Datei, in
der festgehalten wird, in welchem Schritt der Aktualisierung und Zustand
sich der Master-Mirror gerade befindet. Ein Eintrag „all done“
bedeutet, dass zur Zeit keine Aktualisierung läuft. Das Endedatum zeigt
den Zeitpunkt an, an dem die erste Stufe des Mirror-Netzwerkes mit den
neuen Paketlisten und Paketen versorgt wurde.
Ob zur Zeit eine Aktualisierung Ihres gewählten Mirrors läuft, sehen
sie an der Existenz einer Datei
Archive-Update-in-Progress
(ggf. erweitert um den bzw. einen Hostnamen des Spiegelservers) im
Wurzelverzeichnis des APT-Repositorys, z.B.
[8]
Die aktuelle Konfiguration des
APT-Repositories erlaubt nur die Verwendung von
stable
als
Veröffentlichung. Verwenden Sie z.B.
stretch
anstatt von
stable
, so
beschwert sich APT, dass dies nicht vorgesehen sei.
[9]
Um keine unübersichtlich langen
Beispiele abzudrucken, wurden hier absichtlich die beiden Beispiele aus
dem deutschsprachigen Raum gewählt, die relativ kurze Listen ergeben.
[10]
Da die Datei
/etc/apt/trusted.gpg
teilweise für normale
User nicht lesbar ist, kann es sein, dass Sie dieses Kommando mit
Root-Rechten ausführen müssen.
[11]
Bei Ausfällen oder Umbauten in der
Infrastruktur wie auch kurz vor neuen Veröffentlichungen kann es
durchaus vorkommen, dass der Abstand zwischen zwei Aktualisierungen des
Mirrors deutlich mehr als sechs Stunden dauert, teilweise auch einen
oder wenige Tage.
Kapitel 4. Debian-Paketformat im Detail
4.1. Konzepte und Ideen dahinter
Die Paketbeschreibung ist eine Textdatei
[12]
. Die Paketbeschreibung in
den Paketen selbst erfolgt in englischer Sprache, wird aber für die
Paketlisten auf den Spiegelservern von Debians Übersetzungsteams auch in
andere Sprachen übersetzt.
Jedes Element der Beschreibung ist ein Schlüssel-Wert-Paar, wobei die
Trennung zwischen Schlüssel und Wert durch einen Doppelpunkt erfolgt.
Der
Schlüssel
ist ein aus der Umgangssprache abgeleiteter Begriff, der
die Relation zwischen zwei oder mehr Paketen näher beschreibt.
Wert
ist hingegen eine Aufzählung von Paketen, die mit einem Komma
voneinander getrennt werden. Ein ähnliches Konzept kommt bei den
Kopfzeilen von E-Mails zum Tragen.
Zusätzlich kann ein Wert mit einer Aussage zu einer bestimmten
Softwareversion ergänzt worden sein. Eine solche
versionierte
Abhängigkeit
kann unterschiedliche Relationen umfassen.
Tabelle 4.1, „Relationen für versionierte Abhängigkeiten“
zeigt die derzeit
zulässigen Operatoren samt einem Beispiel aus der Praxis.
Tabelle 4.1. Relationen für versionierte Abhängigkeiten
Operator
Beschreibung
Beispiel
<<
früher als
xpdf-utils (<< 3.00)
<=
früher oder gleich
python-cairo (<= 1.85)
exakt gleich
xfwm4 (= 4.1)
>=
gleich oder später
libc6 (>= 2.4)
>>
später als
libaa1 (>> 1.4)
4.1.1. Binärpakete
Die folgenden Schlüsselworte werden in Binärpaketen (siehe
Abschnitt 2.7.1, „Binärpakete (
deb
)“
) und den Paketlisten von diesen verwendet:
Package
zu dt.: Paket; Name des Pakets ohne Versionsnummer und Architektur,
siehe auch Benennung eines Debian-Pakets in
Abschnitt 2.11, „Benennung einer Paketdatei“
Source
zu dt.: Quelle; Name des Quellpakets („source package“), aus dem das
Binärpaket gebaut wurde, siehe auch Sourcepakete in
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
Version
zu dt.: Version oder Variante; Versionsnummer des Pakets, siehe
Benennung eines Debian-Pakets in
Abschnitt 2.11, „Benennung einer Paketdatei“
Architecture
zu dt. Architektur oder Plattform; Basis, für die das Paket gebaut wurde
oder
all
, falls das Paket architekturunabhängig ist, siehe
Debian-Architekturen in
Abschnitt 1.2, „Debian-Architekturen“
Maintainer
zu dt.: Betreuer, Verantwortlicher; Für das Paket verantwortliche Person
oder Gruppe („Maintainer“ des Pakets) und dessen Erreichbarkeit als
E-Mail-Adresse (siehe auch Paket nach Maintainer finden in
Abschnitt 8.22, „Paket nach Maintainer finden“
Homepage
zu dt.: Internetpräsenz; Webseite des Projekts der paketierten Software
oder Daten
Installed-Size
zu dt.: Installationsgröße; Speicherplatz, den das Paket auf dem
Zielsystem belegen wird, nachdem es dort installiert wurde
Depends
zu dt.: hängt ab von; Name der installierten und konfigurierten Pakete
und ggf. deren Versionsnummer, von dem das vorliegende Paket abhängt
Pre-Depends
zu dt.: hängt ab vorher von; Name der installierten und konfigurierten
Pakete und ggf. deren Versionsnummer, von dem das vorliegende Paket und
dessen Installationsskripte abhängen. Dies bedeutet, dass diese
Abhängigkeiten vollständig installiert und ausgepackt sein müssen, bevor
das Paket von
dpkg
ausgepackt werden darf.
Recommends
zu dt.: empfiehlt; Name der Pakete, welche als Ergänzung empfohlen
werden und in den meisten Fällen ebenfalls gebraucht werden. Es ist ein
Gegenstück zum Schlüsselwort
Enhances
Suggests
zu dt.: schlägt vor; Name der Pakete, welche als Ergänzung empfohlen
werden. Es ist ein Gegenstück zum Schlüsselwort
Enhances
Conflicts
zu dt.: kollidiert bzw. steht in Konflikt mit; Name der Pakete und ggf.
deren Versionsnummer, mit denen es nicht gleichzeitig installiert sein
darf
Breaks
zu dt.: bricht, verhindert, beschädigt; Name der Pakete und ggf. deren
Versionsnummer, mit denen es nicht gleichzeitig verwendet werden kann
Enhances
zu dt.: erweitert, ergänzt, wertet auf; Benennt das Paket, welches es
erweitert. Es ist das Gegenstück zu den Schlüsselworten
Suggests
und
Recommends
Replaces
zu dt.: ersetzt; Name der Pakete, dessen Dateien es (teilweise) ersetzt
Provides
zu dt.: stellt bereit; Name der virtuellen Pakete, welche es
bereitstellt, siehe Virtuelle Pakete in
Abschnitt 2.7.5, „Virtuelle Pakete“
Section
zu dt.: Sektion oder Paketkategorie, in die das Paket einsortiert ist,
siehe Paketkategorien in
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
Priority
zu dt.: Priorität; Prioritätsstufe des Pakets, siehe Paket-Priorität
und essentielle Pakete in
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
Essential
zu dt.: essentiell; Ihr Debian-System kann kaputt gehen, wenn dieses
Paket entfernt wird, siehe dazu auch Markierung Essentiell in
Abschnitt 2.13.6, „Markierung „essentiell“ (
essential
)“
Description
zu dt.: Beschreibung; Dieses Feld enthält die Paketbeschreibung. Dabei
ist die erste Zeile ein kurzer, einzeiliger Text und die darauf
folgenden, eingerückten Zeilen beinhalten eine lange und ggf. über
mehrere Absätze gehende, ausführlichere Beschreibung. Zwischen der Kurz-
und Langbeschreibung kann auch ein Punkt (
) stehen.
Built-Using
zu dt.: gebaut mit; Dieses Feld muss gemäß Debian Policy Manual
§7.8
[Debian-Policy-Manual]
vorhanden sein, sofern der Inhalt des
Binärpakets nicht nur aus Quellcode aus dessen Quellpaket besteht und
die Lizenz dieses Quellpakets vorschreibt, dass auch sämtlicher mit
einkompilierter Quellcode frei verfügbar sein muss. Dies ist z.B. der
Fall, wenn eine unter GNU GPL stehende Software statisch kompiliert wird
oder Quellcode unter GNU GPL aus einem anderen Paket in das Binärpaket
hineinkopiert wird (bspw. bei Stylesheets oder Hintergrundbildern für
generierte Dokumentationen im HTML-Format).
Das nachfolgende Beispiel zeigt alle genutzten Elemente anhand der
PDF-Bibliothek
poppler-utils
Package: poppler-utils
Source: poppler
Version: 0.18.4-6
Architecture: amd64
Maintainer: Loic Minier
Installed-Size: 445
Depends: libc6 (>= 2.4), libcairo2 (>= 1.10.0), libfreetype6 (>= 2.2.1), liblcms1 (>= 1.15-1), libpoppler19 (>= 0.18.4), libstdc++6 (>= 4.1.1)
Recommends: ghostscript
Conflicts: pdftohtml
Breaks: xpdf-utils (<< 3.02-2~)
Replaces: pdftohtml, xpdf-reader, xpdf-utils (<< 3.02-2~)
Provides: pdftohtml, xpdf-utils
Section: utils
Priority: optional
Multi-Arch: foreign
Homepage: http://poppler.freedesktop.org/
Description: PDF utilities (based on Poppler)
Poppler is a PDF rendering library based on Xpdf PDF viewer.
This package contains command line utilities (based on Poppler) for getting
information of PDF documents, convert them to other formats, or manipulate
them:
* pdffonts -- font analyzer
* pdfimages -- image extractor
* pdfinfo -- document information
* pdfseparate -- page extraction tool
* pdftocairo -- PDF to PNG/JPEG/PDF/PS/EPS/SVG converter using Cairo
* pdftohtml -- PDF to HTML converter
* pdftoppm -- PDF to PPM/PNG/JPEG image converter
* pdftops -- PDF to PostScript (PS) converter
* pdftotext -- text extraction
* pdfunite -- document merging tool
4.1.2. Sourcepakete
In Sourcepaketen (siehe
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
) sind neben den weiter oben
genannten Schlüsselworten auch die folgenden Einträge zulässig:
Source
zu dt.: Quelle; Name des Quellpakets.
Binary
zu dt.: Binärdatei; Liste aller Binärpakete, die aus diesem Quellpaket
gebaut werden.
Package-List
zu dt. Paketliste; Auflistung aller Binärpakete, die aus diesem
Quellpaket gebaut werden. Zusätzlich werden das Paketformat (
deb
oder
udeb
), die Paketkategorie („Sektion“), die Priorität und die
Architektur benannt.
Format
zu dt.: Format; verwendetes Format des Quellpakets, z.B.
1.0
3.0
(quilt)
oder
3.0 (native)
(siehe Aufbau und Format in
Abschnitt 4.2, „Aufbau und Format“
).
Architecture
zu dt. Architektur oder Plattform; Im Gegensatz zu den Binärpaketen sind
hier mehr als nur eine einzige Architektur zulässig. Es beinhaltet alle
Architekturen, auf denen das Paket gebaut werden kann. Der Wert
any
bedeutet, dass das Paket auf jeder Architektur gebaut werden kann und
soll (siehe
Abschnitt 1.2, „Debian-Architekturen“
).
Uploaders
zu dt.: Hochlader; bezeichnet die Liste der Co-Maintainer und
Beitragenden des Pakets.
Standards-Version
zu dt.: Version der Standardisierung; Angabe, welcher Version des Debian
Policy Manuals
[Debian-Policy-Manual]
dieses Paket entspricht.
Vcs-Git
Vcs-Svn
Vcs-Hg
Vcs-Cvs
Vcs-Mtn
zu dt.: Versionskontrollsystem; Angabe, von wo Sie eine aktuelle
Entwicklungskopie des Quellpakets aus einem Versionskontrollsystems
auschecken können.
Vcs-Browser
zu dt.: Versionskontrollsystem und Webbrowser; URL einer Webansicht des
unter
Vcs-Git
u.a. genannten Repositories des Versionskontrollsystems.
Build-Depends
zu dt.: Abhängigkeiten beim Bauen von Paketen; Pakete, die notwendig
sind, um alle architektur-abhängigen Binärpakete aus diesem Quellpaket
zu bauen, sowie um das Build-Verzeichnis zu säubern („clean“-Ziel).
Pakete, die als „essential“ (unbedingt notwendig) oder
„build-essential“ (für den Bau von Paketen unbedingt notwendig)
markiert sind, müssen nicht aufgelistet werden (Kommt fast immer vor.)
Build-Depends-Indep
zu dt.: Abhängigkeiten beim Bauen von Paketen (architekturunabhängig);
Pakete, die zusätzlich zu den unter
Build-Depends
aufgelisteten
Paketen notwendig sind, um auch die architektur-unabhängigen Pakete aus
diesem Quellpaket zu bauen. Hier sind meist die Pakete aufgelistet, die
notwendig sind, um die Dokumentation oder Übersetzungsdateien zu bauen.
(Kommt meist nur bei komplexeren Quellpaketen vor.)
Build-Conflicts
zu dt. Bau-Konflikte; Pakete, die nicht installiert sein dürfen, wenn
die architektur-abhängigen Binärpakete aus diesem Quellpaket gebaut
werden sollen. Dies sind meistens Pakete, die das
configure
-Skript
beim Testen der notwendigen Bibliotheken stören oder aber Pakete, die
zusätzliche, unerwünschte Abhängigkeiten in den gebauten Binärpaketen
verursachen würden. (Kommt selten vor.)
Build-Conflicts-Indep
zu dt. Bau-Konflikte (architekturunabhängig); Pakete, die nicht
installiert sein dürfen, wenn die architektur-unabhängigen Binärpakete
aus diesem Quellpaket gebaut werden sollen. (Kommt sehr selten vor.)
Files
Checksums-Sha1
Checksums-Sha256
MD5-, SHA1- und SHA256-Checksummen sowie Dateinamen und -größen der
enthaltenen Quellcode-Archive.
Testsuite
Optionales Feld, das angibt, mit welchem Programm das installierte Paket
auf Funktionalität getestet werden kann. Derzeit ist der einzige
mögliche Wert
autopkgtest
(siehe Debian Enhancement Proposal
DEP
[DEP-8]
und das gleichnamige Debianpaket dazu
[Debian-Paket-autopkgtest]
4.1.3. Weitere Metadaten
In den Paketlisten unter
/var/lib/apt/lists/
sind außerdem noch
weitere generierte Metadaten zu den Paketen enthalten. Das beinhaltet
bspw. die Debian Tags (siehe
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
), den Pfad und Dateinamen
im Paketmirror, die Paketgröße und verschiedene Prüfsummen. Letztere
dienen dazu, sicherzustellen, dass die Pakete fehlerfrei zwischen dem
Paketmirror und ihrem Debian-System übertragen wurden und es
zwischenzeitlich keine Veränderungen gab (siehe dazu Paketquelle
überprüfen in
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
und Bezogenes
Paket verifizieren in
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
).
Das Paket
poppler-utils
umfasst beispielsweise die folgenden Metadaten:
Description-md5: cd43e3ed14322253876488d6f9911888
Tag: implemented-in::c++, interface::commandline, role::program,
scope::utility, use::converting, use::filtering,
works-with-format::pdf, works-with-format::xml, works-with::text
Filename: pool/main/p/poppler/poppler-utils_0.18.4-6_amd64.deb
Size: 162034
MD5sum: 0f0254920f85b6190ba7b03f4d2a7d73
SHA1: 77fb9d39145c60421462a8fe8315d0adaa49a38c
SHA256: 38f2d13ccddac9e3d05abff7c5fab353d3fea550c8f39293850651e03c3f8be4
4.2. Aufbau und Format
4.2.1. Generell: 2 Ebenen
Debianpakete beinhalten stets zwei Komponenten – Daten und
Metainformationen. Die
Daten
sind die tatsächlichen Inhalte des
Pakets, d.h. entweder der Quellcode oder die übersetzten
Programmdateien, die bei der Installation auf Ihr System kopiert werden.
Die
Metainformationen
sind zusätzliche Informationen zu einem Paket,
die dieses näher beschreiben. Dazu zählen erstens die Relationen zu
anderen Paketen. Diese legen die Voraussetzungen fest, nach denen das
Paket überhaupt übersetzt („gebaut“) und später auf Ihrem Linux-System
installiert werden kann. Insbesondere zählen dazu die Abhängigkeiten und
Konflikte zu anderen Paketen. Diese Relationen beschreiben wir
ausführlich unter „Konzepte und Ideen dahinter“ in
Abschnitt 4.1, „Konzepte und Ideen dahinter“
Zweitens gehören die sogenannten Maintainer-Skripte namens
preinst
postinst
prerm
und
postrm
dazu. Die beiden Skripte
preinst
und
postinst
regeln alle Aktivitäten vor und nach der Installation,
prerm
und
postrm
hingegen vor und nach der Entfernung des Pakets von
Ihrem System. Diese vier Skripte sind üblicherweise
distributionsspezifische Shellskripte, die der Maintainer des jeweiligen
Pakets pflegt.
Für das Paket
dpkg-www
[Debian-Paket-dpkg-www]
beinhaltet das bspw.
das Starten des Webservers nach der Installation des Pakets, das
Anhalten (vorher) und Neustarten (nachher) im Zuge einer Aktualisierung
des Pakets und das Anhalten des Dienstes, bevor das Paket vom System
wieder entfernt wird. In
Abbildung 4.1, „Auszug aus dem
postinst
-Skript zum Paket
dpkg-www
sehen Sie einen Ausschnitt aus
dem
postinst
-Skript zu besagtem Paket.
Abbildung 4.1. Auszug aus dem
postinst
-Skript zum Paket
dpkg-www
4.2.2. Source-Pakete
Ein Source-Paket beinhaltet einerseits den Quellcode der Software und
andererseits die Anweisungen, nach denen aus dem Quellcode der Software
eines oder mehrere Binärpakete entstehen
[Krafft-Debian-System]
. Dazu
besteht es aus mindestens 2, meistens jedoch 3 und ggf. auch noch
weiteren Dateien:
.dsc
Meta-Datei, die alle anderen Dateien mitsamt deren Hashsummen auflistet
und ggf. signiert. Über die Hashsummen sind gleichzeitig alle anderen
Dateien ebenfalls abgesichert.
Debian-spezifische Daten
Bei Source-Format 1.0 ist es ein komprimierter Patch — erkennbar an der
Erweiterung
diff.gz
. Dieser kann nur Textdateien enthalten.
Bei Source-Format 3.0 ist es ein komprimiertes
tar
-Archiv — heutzutage meist mit
debian.tar.xz
benannt. Zulässig sind die
Komprimierungsverfahren
gzip
bzip2
lzma
und
xz
lzma
wurde
von Debian GNU/Linux allerdings nie unterstützt, wohl aber von anderen
deb
-basierten Distributionen
Abschnitt 1.5, „Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement“
).
Software, die nur im Debian-Paketformat vertrieben wird, verfügt weder
über den komprimierten Patch noch das o.g. Archiv. In diesem Fall wird
von sogenannten
nativen
Paketen gesprochen.
Upstream-Quellcode
Der Originalquellcode der paketierten Software. Es wird versucht, diesen
soweit wie möglich unverändert zu lassen. Es muss sich jedoch dabei um
ein
tar
-Archiv handeln. Andere Container-Formate wie z.B.
zip
werden
nicht unterstützt. Offerieren die Entwickler der Software den Quellcode
z.B. nur als
zip
- oder
rar
-Archiv, so muss der Quellcode zunächst in
ein
tar
-Archiv umgepackt werden. Der Dateiname des
tar
-Archivs endet
dabei in
orig.tar.endung
, wobei das Suffix
endung
vom
Komprimierungsformat abhängt. Erlaubt sind ebenfalls wieder
gzip
bzip2
lzma
und
xz
lzma
wird vom Debian-Archiv nicht
unterstützt, aber von anderen
deb
-basierten Distributionen
Abschnitt 1.5, „Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement“
). Ab dem
Source-Format 3.0 kann ein Quellpaket (
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
) mehr als ein
tar
-Archiv mit Upstream-Quellcode beinhalten. Diese haben dann die
Endung
orig-komponente.tar.endung
, wobei
komponente
nur
alphanumerische Zeichen und Bindestriche beinhalten darf.
Als
Paketformate
existieren die Versionen 1.0, 2.0 (wurde offiziell
nie unterstützt) und 3.0
[Debian-DebSrc3.0]
. Letzteres existiert in
den zwei Varianten
quilt
(benannt als „3.0 (quilt)“) und
native
(benannt als „3.0 (native)“) und hat sich seit dessen Einführung mit
Debian 6
Squeeze
im Jahr 2011 mittlerweile etabliert. Dabei umfassen
die Namen der Varianten für Version 3.0 jeweils auch die Leerzeichen und
die beiden Klammern.
4.2.3. Binärpakete
Komponenten
Ein Debian-Binärpaket ist ein BSD-
ar
-Archiv, welches weitere,
komprimierte
tar
-Archive beinhaltet. Nachfolgendes Beispiel zeigt das
für das Paket
autotools-dev
Auspacken von Paketen mit
ar
$ ar -t autotools-dev_20100122.1_all.deb
debian-binary
control.tar.gz
data.tar.gz
Dabei stehen die einzelnen Komponenten eines Pakets für:
debian-binary
Kennzeichnung für ein Debian-Paket.
debian-binary
ist eine
Textdatei, welche lediglich die Versionsnummer des verwendeten
Binär-Paketformats enthält. Nachfolgender Auszug zeigt die
Versionsnummer für das Paket
mplayer
$ ar -t mplayer_2%3a1.0~rc4.dfsg1+svn34540-1+b2_i386.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar -x mplayer_2%3a1.0~rc4.dfsg1+svn34540-1+b2_i386.deb debian-binary
$ cat debian-binary
2.0
control.tar.gz
mit
gzip
komprimiertes
tar
-Archiv; dieses enthält die
Kontrollinformationen für die Paketverwaltung
data.tar.gz
data.tar.xz
data.tar.bz2
eigentliche Dateien des Pakets plus Speicherort, jeweils mit
gzip
xz
oder
bzip2
komprimiert
Benennung
Ein Debian-Binärpaket ist eine Datei mit der Erweiterung
deb
oder
udeb
im Dateinamen. Ersteres beinhaltet ausführbare Dateien, Daten,
Dokumentation, Konfigurationsdateien und Copyright-Informationen
[Krafft-Debian-System]
. Bei
udeb
-Dateien handelt es sich hingegen um
einen Sonderfall. Es ist ein Paket mit reduziertem Paketinhalt, welches
speziell für den Debian-Installer gedacht ist (siehe
[Debian-udeb]
).
Steuerdateien und Skripte
Wie bereits oben angesprochen, beinhaltet jedes Debianpaket auch
sogenannte
Control-Files
(nach
[Krafft-Debian-System144]
). Diese
Steuerdateien werden in der Komponente
control.tar.gz
aufbewahrt und bestehen aus diesen Dateien:
control
Das ist eine Steuerdatei und diese muss immer vorhanden sein. Sie
beinhaltet die Metainformationen für die Paketverwaltung, bspw. zur
Prüfung der Paketabhängigkeiten vor der Installation. Diese Steuerdatei
kann beim Bauen des Pakets generiert worden sein, z.B. aus der Datei
control.in
mit Hilfe des Pakets
autotools
conffiles
Das ist eine Liste mit Konfigurationsdateien zum Paket. Erfolgt eine
Paketaktualisierung, werden die Dateien, die in dieser Liste aufgeführt
sind, auf dem System beibehalten und nicht durch die Daten aus dem neuen
Paket überschrieben. Damit bleiben bereits bestehende lokale Änderungen
erhalten, bspw. von spezifisch angepassten Konfigurationsdateien. Diese
Liste wird meist automatisiert generiert.
preinst
Skriptdatei mit paketspezifischen Anweisungen. Diese Anweisungen werden
vor
der Installation oder Aktualisierung des Pakets (Upgrade) mit
bestimmten Parametern aufgerufen.
postinst
Skriptdatei mit paketspezifischen Anweisungen. Diese Anweisungen werden
nach
der Installation oder Aktualisierung (Upgrade) sowie zur
Konfiguration des Pakets mit bestimmten Parametern aufgerufen.
prerm
Skriptdatei mit paketspezifischen Anweisungen. Diese Anweisungen werden
mit bestimmten Parametern aufgerufen,
bevor
das Paket entfernt wird.
postrm
Skriptdatei mit paketspezifischen Anweisungen. Diese Anweisungen werden
mit bestimmten Parametern aufgerufen,
nachdem
das Paket entfernt
wurde.
md5sums
MD5-Summen der Dateien, welche im Paket enthalten sind. Damit wird
sichergestellt, dass beispielsweise keine Übertragungsfehler (Bitfehler)
oder Änderungen zwischen dem Paketmirror und ihrem lokalen System
erfolgt sind (siehe auch „Bezogenes Paket verifizieren“ in
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
).
shlibs
Diese Datei listet Bibliotheken und
Shared Object Name
(kurz
SONAME
auf, welches das Paket gemeinsam mit dem Paketnamen zur Verfügung
stellt.
config
Skriptdatei. Diese erfragt vom Benutzer Konfigurationsparameter, welche
für das Paket zur Einrichtung benötigt werden. Die Anworten werden
direkt in der
debconf
-Datenbank abgelegt und bspw. im
postinst
-Skript verarbeitet.
templates
Diese Datei enthält Texte zu den Fragen und Hinweisen, die
debconf
während der Paketkonfiguration anzeigt (siehe dazu auch „Pakete
konfigurieren“ in
Abschnitt 8.40, „Pakete konfigurieren“
).
Daten im Paket
Die eigentlichen Dateien zu einem Paket liegen in der
Datenkomponente
Damit
dpkg
die zu installierenden Programme und Daten aus dem
Binärpaket auch an die richtige Position in der Dateisystemhierarchie
ihres Systems kopieren kann, spiegelt der Inhalt dieser Komponente die
entsprechende Verzeichnisstruktur auf dem Zielsystem vollständig wieder.
Diese Struktur, die zu installierenden Dateien sowie deren Typ und Größe
zeigen Sie mit dem Kommando
dpkg-deb -c
Paketdatei
an. Das
nachfolgende Beispiel anhand des Pakets
vnstat
zeigt, dass darin
sowohl Programme (ausführbare Dateien in
/usr/bin
und
/usr/sbin
) als
auch Dokumentation (in
/usr/share/doc
und
/usr/share/man
),
Konfigurationsdateien (in
/etc
) und ein Verzeichnis für variable Daten
(unterhalb von
/var/lib
) enthalten sind:
Inhalt des Pakets
vnstat
mit
dpkg-deb
anzeigen.
$ dpkg-deb -c vnstat_1.10-1_i386.deb
drwxr-xr-x root/root 0 2010-04-20 20:38 ./
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/bin/
-rwxr-xr-x root/root 106424 2010-04-20 20:38 ./usr/bin/vnstat
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/sbin/
-rwxr-xr-x root/root 56184 2010-04-20 20:38 ./usr/sbin/vnstatd
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/doc/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/doc/vnstat/
-rw-r--r-- root/root 1604 2010-04-20 18:38 ./usr/share/doc/vnstat/changelog.Debian.gz
-rw-r--r-- root/root 2101 2010-01-02 01:32 ./usr/share/doc/vnstat/README
-rw-r--r-- root/root 3050 2010-01-02 02:36 ./usr/share/doc/vnstat/changelog.gz
-rw-r--r-- root/root 1501 2010-04-20 18:18 ./usr/share/doc/vnstat/copyright
-rw-r--r-- root/root 2077 2010-01-02 01:33 ./usr/share/doc/vnstat/FAQ.gz
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/man/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/man/man1/
-rw-r--r-- root/root 2558 2010-04-20 20:38 ./usr/share/man/man1/vnstatd.1.gz
-rw-r--r-- root/root 4085 2010-04-20 20:38 ./usr/share/man/man1/vnstat.1.gz
drwxr-xr-x root/root 0 2010-04-20 20:38 ./usr/share/man/man5/
-rw-r--r-- root/root 2488 2010-04-20 20:38 ./usr/share/man/man5/vnstat.conf.5.gz
drwxr-xr-x root/root 0 2010-04-20 20:38 ./etc/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./etc/init.d/
-rwxr-xr-x root/root 1466 2010-04-20 17:52 ./etc/init.d/vnstat
-rw-r--r-- root/root 2889 2010-04-20 20:38 ./etc/vnstat.conf
drwxr-xr-x root/root 0 2010-04-20 20:38 ./var/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./var/lib/
drwxr-xr-x root/root 0 2010-04-20 20:38 ./var/lib/vnstat/
Wünschen Sie stattdessen eine graphische oder webbasierte Darstellung
des Paketinhalts, stehen Ihnen als Alternativen die Werkzeuge
deb-gview
, Synaptic,
dpkg-www
und
apt-browse
zur Verfügung. Im
Detail agiert hier jedes der genannten Programme anders.
deb-gview
und Synaptic erlauben Ihnen nur den Zugriff auf ihr lokales
System. Während
deb-gview
dabei den Inhalt von
deb
-Dateien ausliest,
beschränkt sich Synaptic auf bereits installierte Debianpakete.
dpkg-www
hingegen inspiziert bereits installierte Debianpakete sowohl
auf ihrem lokalen System, als auch auf einem anderen Rechner.
apt-browse
greift stattdessen ausschließlich auf seinen eigenen
Datenbestand auf dem Webserver zurück und wertet die Informationen aus
den Paketen aus.
deb-gview
finden Sie im gleichnamigen Paket
[Debian-Paket-deb-gview]
Abbildung 4.2, „Detailinformationen zum Paket
debsums
deb-gview
)“
zeigt die Bedienoberfläche beispielhaft anhand des
Pakets
debsums
[Debian-Paket-debsums]
. Die dreispaltige Aufteilung
beinhaltet die Daten- und Steuerdateien, die darin enthaltenen
Programmdateien und Metadaten zum Paket.
Abbildung 4.2. Detailinformationen zum Paket
debsums
deb-gview
Abbildung 4.3, „Detailinformationen zum Paket
debsums
(Synaptic)“
zeigt die Programmdateien zum gleichen
Paket, wie es Synaptic darstellt. Sie erreichen dieses Dialogfenster
über
Paket
Eigenschaften
und danach im Reiter „Installierte
Dateien“. Ausführlicher besprechen wir Synaptic in
Abschnitt 6.4.1, „Synaptic“
Abbildung 4.3. Detailinformationen zum Paket
debsums
(Synaptic)
Die spezialisierten Suchmaschinen für Pakete namens
dpkg-www
und
apt-browse
listen die Paketdetails ebenfalls auf (siehe
Abbildung 4.4, „Detailinformationen zum Paket
debsums
in
apt-browse.org
(Ausschnitt)“
). Genauer besprechen wir diese unter „In
Paketen blättern mittels
dpkg-www
“ in
„In Paketen blättern mittels
dpkg-www
sowie „Suche über apt-browse.org“
in
„Suche über apt-browse.org“
Abbildung 4.4. Detailinformationen zum Paket
debsums
in
apt-browse.org
(Ausschnitt)
4.2.4. Übergangs- und Metapakete
Wie bereits in „Übergangs- und Metapakete“ (siehe
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
) deutlich wurde, handelt es sich hierbei
um Binärpakete, die eine spezielle Charakteristik haben: sie haben meist
außer der Dokumentation keine weiteren Inhalte. Der eigentliche Inhalt
sowie Sinn und Zweck liegen in der Beschreibung der Abhängigkeiten der
Pakete.
Übergangspakete werden auch
Dummypakete
oder
Transitionspakete
genannt. Deren Aufgabe ist es, Paketumbenennungen bei der Aktualisierung
auf eine neue Veröffentlichung sauber zu handhaben und in diesem
Zusammenhang auftretende Abhängigkeitskonflikte zu verhindern.
Metapakete erleichtern dagegen nur die Installation einer Gruppe von
zusammenhängenden Paketen.
Ein Paket dieser Art beinhaltet meist nur zwei Dateien unterhalb von
/usr/share/doc
— die Informationen zum Copyright und die
bisherigen Änderungen. Letzteres liegt in der Datei
changelog.Debian.gz
. Beide Dateien können aus Gründen der
Platzersparnis durch einen symbolischen Link auf eine der Abhängigkeiten
ersetzt werden, falls diese aus dem gleichen Sourcepaket gebaut wurden.
Darüberhinaus können die Pakete einen Wrapper oder einen symbolischen
Link zur Wahrung der Rückwärtskompatibilität beinhalten. Beispielsweise
umfasst das Paket
ash
nur eine Abhängigkeit auf das Paket
dash
und
einen symbolischen Verweis (Symlink) von
/bin/ash
zu
/bin/dash
Symbolischer Verweis auf eine andere Komponente am Beispiel der
ash
$ ls -la /bin/ash
lrwxrwxrwx 1 root root 4 Mär 1 2012 /bin/ash -> dash
[12]
früher teilweise im
Encoding ISO 8859-1, heute nur noch in UTF-8
Kapitel 5. APT und Bibliotheken
Wie bereits in der Übersicht in „Softwarestapel und Ebenen“ (siehe
Abschnitt 2.3, „Softwarestapel und Ebenen“
) deutlich wurde, ist die Paketverwaltung
von Debian GNU/Linux mehrstufig und modular aufgebaut. Hinter den
Bedienoberflächen
dpkg
, APT und
aptitude
(siehe „Werkzeuge zur
Paketverwaltung“ in
Kapitel 6,
Werkzeuge zur Paketverwaltung (Überblick)
) stecken mächtige
Bibliotheken, die den Zugriff auf die einzelnen Softwarepakete und die
Paketdatenbank kapseln. Mit Hilfe der nachfolgend vorgestellten
Bibliotheken und den Funktionen daraus können Sie eigene Anwendungen zur
Paketverwaltung entwickeln.
5.1. Bibliothek
libapt-pkg
Diese Bibliothek aus dem Paket
libapt-pkgX.Y
X.Y
ist in Debian 9
Stretch
und Debian 10
Buster
5.0
, siehe
[Debian-Paket-libapt-pkg5.0]
, und bei Debian 11
Bullseye
und
Debian 12
Bookworm
ist es
6.0
) enthält die Basiskomponenten zum
Zugriff auf die einzelnen Softwarepakete. Das umfasst Funktionen zur
Suche nach Paketen, deren Verwaltung sowie die Ausgabe der
Paketinformationen. Dazu gehören:
der Abruf von Informationen zu einem Paket aus den verschiedenen Paketquellen
der Abruf eines Pakets und der vollständigen Auflösung der
Paketabhängigkeiten dieses Pakets
die Authentifizierung der Paketquellen und Überprüfung der abgerufenen
Daten (Validierung)
die Installation und Entfernung von Paketen aus ihrem Linux-System
der Zugriff auf den Paketcache (siehe
Kapitel 7,
Paketcache
die Bereitstellung von Schnittstellen zu Netzwerkprotokollen, um Daten
und Pakete über diese beziehen zu können. Dazu gehören bspw. CD-ROM,
FTP, HTTP/S und rsh.
5.2. Bibliothek
libapt-pkg-perl
Diese Bibliothek aus dem Paket
libapt-pkg-perl
[Debian-Paket-libapt-pkg-perl]
beinhaltet die Perl-Schnittstelle zum
Zugriff auf die einzelnen Softwarepakete. Es hat die gleiche
Funktionalität wie das weiter oben beschriebene Paket
libapt-pkg
5.3. Bibliothek
python-apt
Diese Bibliothek aus dem Paket
python-apt
[Debian-Paket-python-apt]
beinhaltet die Python-Schnittstelle zum Zugriff auf die einzelnen
Softwarepakete. Es hat die gleiche Funktionalität wie die weiter oben
beschriebenen Pakete
libapt-pkg
und
libapt-pkg-perl
5.4. Paket
libapt-pkg-doc
Das Paket
[Debian-Paket-libapt-pkg-doc]
stellt die Dokumentation zu
libapt-pkg zur Verfügung, auf deren Grundlage Sie die Bibliothek in
eigenen Entwicklungen verwenden können. Die Dokumentation steht als
Plaintext und als HTML-Dokument bereit.
5.5. Bibliothek
libapt-inst
Um Informationen aus
deb
-Paketen zur erhalten, nutzen Sie diese
Bibliothek aus dem Paket
libapt-instX.Y
X.Y
ist in Debian 9
Stretch und Debian 10 Buster
2.0
, siehe
[Debian-Paket-libapt-inst2.0]
).
Darüber steht eine Schnittstelle zur Abfrage der Paketinterna bereit,
die sowohl den Paketinhalt, als auch die Steuerdaten der Komponente
control.tar.gz
umfassen (siehe „Debian-Paketformat im Detail“ in
Abschnitt 4.2, „Aufbau und Format“
).
Seit APT 1.9.0, Debian 11
Bullseye
und Ubuntu 19.10
Eoan
ist
libapt-inst
in
libapt-pkg
aufgegangen.
Kapitel 6. Werkzeuge zur Paketverwaltung (Überblick)
6.1. Frontends für das Paketmanagement
Unter einem
Frontend
verstehen wir ein Programm oder ein Werkzeug mit
einer Bedienoberfläche, welches im Alltag von Ihnen für die Verwaltung
der Softwarepakete verwendet wird. Es deckt alle dafür notwendigen
Aktionen auf ihrem System ab und umfasst die grundsätzliche Pflege des
Paketbestands. Dazu zählen bspw. die Installation, die Aktualisierung
und die restlose Entfernung von Softwarepaketen, wobei das Gesamtsystem
stets in einem konsistenten, benutzbaren Zustand verbleibt.
Frontends existieren in recht unterschiedlichen Varianten und folgen
divergierenden Bedienkonzepten. Die nachfolgende Übersicht orientiert
sich daher an der Benutzerschnittstelle und dem Paketformat, für das Sie
das jeweilige Programm benutzen können. Einige Programme sind Zwitter
und stellen mehrere Bedienmodi zur Verfügung, so bspw. SmartPM
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
), welches Sie sowohl über die Kommandozeile, als auch
über eine graphische Oberfläche (GUI) bedienen können.
aptitude
Abschnitt 6.3.2, „
aptitude
),
cupt
Abschnitt 6.2.5, „Cupt“
) und
wajig
Abschnitt 8.44.6, „
wajig
) stellen über die Kommandozeile hinaus auch ein eigenes Text
User Interface (TUI) bereit. Die nachfolgende Zusammenstellung in
Tabelle 6.1, „Frontends zur Paketverwaltung“
ist daher nicht ganz diskussionsfrei und erhebt zudem
keinen Anspruch auf Vollständigkeit.
Tabelle 6.1. Frontends zur Paketverwaltung
Kategorie
deb
-basierte Systeme
rpm
-basierte Systeme
andere Paketformate
Kommandozeile
dpkg
dpkg-www
, APT,
aptitude
cupt
, SmartPM,
gdebi
gdebi-core
),
wajig
sysget
rpm
yum
dnf
urpmi
zypper
, SmartPM,
sysget
emerge
pacman
sysget
Text User Interface (TUI)
tasksel
aptitude
, Debian Installer, Univention Installer für Univention Corporate Server (UCS)
Yet another Setup Tool (YaST), DrakConf oder Mandriva Linux Control Center (MCC)
[Mandriva-Wiki]
bzw. Mageia Control Center (MCC) (Textkonsole)
pcurses
Graphical User Interface (GUI)
Synaptic, SmartPM, Muon, PackageKit, Apper (früher
KPackageKit
),
gdebi
Yet another Setup Tool 2 (YaST2), DrakConf
oder Mandriva Linux Control Center (MCC)
[Mandriva-Wiki]
bzw. Mageia Control Center (MCC)
PacmanXG4, PacmanExpress, tkPacman, GNOME PackageKit, Zenity Pacman GUI, Octopi
webbasierte Verwaltung (WUI)
IP Brick
[ipbrick]
, Univention Management Console für Univention Corporate Server (UCS), Ubuntu Landscape , Appnr, Communtu, Debian Pure Blends
6.1.1. Aufgaben, Sinn und Zweck des Frontends
Basierend auf der Einordnung in die unterschiedlichen Softwarestapel und
Ebenen (siehe
Abschnitt 2.3, „Softwarestapel und Ebenen“
) lässt sich der
Aufgabenbereich und damit der Funktionsumfang eines Programms zur
Paketverwaltung konkreter fassen. Dabei kommen häufig die
UNIX-Prinzipien „Ein Werkzeug für eine Aufgabe“ und „Keep it simple,
stupid“ (sinngemäß: Mach’s so einfach wie möglich) sehr stark zum
tragen.
Zur
unteren Ebene
gehört das Programm
dpkg
. Es bietet grundsätzliche
Funktionen, die ein erforderliches Minimum abdecken. Die Funktionen
betreffen nur das lokale System und setzen voraus, dass alle notwendigen
Informationen und
deb
-Pakete bereits vorliegen. Dazu gehören die
Fähigkeiten, Informationen über installierte und noch zur Verfügung
stehende Pakete und Paketdateien anzuzeigen sowie bereits lokal als
Datei vorliegende Pakete zu installieren, zu konfigurieren und wieder
vom System zu entfernen.
dpkg
fokussiert dabei eher auf Einzelpakete,
bspw. der Aufruf
dpkg -i Paketname
zur Installation eines Pakets
(siehe auch
Abschnitt 8.38, „Pakete installieren“
).
Die
obere Ebene
beinhaltet im weitesten Sinne alle übergeordneten
Aufgaben, wie bspw. komplexere Verwaltungsfunktionen. Dazu zählt das
Herunterladen der Paketlisten von den vorher von Ihnen festgelegten
Paketmirrors, das Aktualisieren der lokalen Paketlisten, das Auswählen
und Beziehen eines Pakets von einem passenden Paketmirror, das Auflösen
der Paketabhängigkeiten und das Klären weiterer, dazu benötigter oder
empfohlener Pakete, die zum ausgewählten Paket passen und welche für Sie
als Benutzer interessant sein könnten. Ebenso gehört die Validierung
eines Pakets anhand seines GPG-Schlüssels (siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
) dazu. Zur oberen Ebene zählen bspw.
Programme wie
tasksel
, APT,
aptitude
, SmartPM, das Ubuntu Software
Center und die PackageKit-Varianten
apper
(KDE) und
gnome-packagekit
(GNOME).
Eine Mischform stellen hingegen die Programme
cupt
wajig
und
gdebi
dar. Deren Anspruch ist es, beide Ebenen in einem einzigen
Programm abzudecken und alle erforderlichen Funktionen zur
Paketverwaltung bereitzustellen. Die genannten Programme kommen diesem
Ziel derzeit in unterschiedlicher Qualität nahe. Dabei erfolgt ein
Zugriff auf die bestehenden Bibliotheken, der durch eigene, zusätzliche
Funktionalitäten ergänzt wird.
6.1.2. Anmerkungen zur Programmauswahl
Es gibt keine Regelung oder Empfehlung dafür, welches Programm aus
obiger Liste Sie benutzen sollen. Dafür sind die Wissensstände,
Gewohnheiten und Vorlieben im Umgang mit Software zu unterschiedlich
(siehe auch „Ausblick und Empfehlungen für Einsteiger“ in
Abschnitt 49.2, „Empfehlungen für Einsteiger“
).
In der Praxis zeigt sich, dass
apt-get
häufig die schnellste und
effizienteste Variante ist, sofern Sie den exakten Namen eines
Debian-Pakets (siehe dazu
Abschnitt 2.11, „Benennung einer Paketdatei“
) oder
zumindest einen Großteil davon wissen. Die Kommandozeilenwerkzeuge sind
sehr flexibel und verfügen über eine hohe Anzahl von Funktionen. Diese
sprechen Sie über vielfältige Unterkommandos, Schalter und Parameter an.
Viele Schalter und Parameter der Kommandozeilenwerkzeuge werden in den
TUI, GUI und WUI nicht oder nur unzureichend abgebildet, sind zudem in
den meisten Fällen geschickt versteckt, anders benannt oder auch
mitunter sinnentstellend übersetzt. Das sorgt vielfach für Unmut und
Verzweiflung bei der Suche nach einer bestimmten Funktionalität.
Erfahrenere Benutzer vermissen häufig die Flexibilität der vielen
Optionen und greifen daher bevorzugt zur Kommandozeile oder zum TUI, da
das schneller und einfacher geht. Das hoffnungs- und erwartungsvolle
Herumklicken in einer graphischen Anwendung möchten sie den
Marketingfritzen und Mausschubsern überlassen.
Die Komplexität der Kommandozeilenwerkzeuge kann Einsteiger überfordern — gleiches gilt aber auch für graphische Oberflächen. In jedem Fall
setzt es bei Ihnen den Willen zur Einarbeitung voraus — gleich welches
Werkzeug es auch ist. Der Vorteil der Kommandozeilenwerkzeuge liegt
darin, dass sie meist zur Basisinstallation Ihres Debian-Systems gehören
und somit auch auf ferngewarteten Serversystemen zur Verfügung stehen.
Graphische Werkzeuge sind in der Regel nur auf Desktopsystemen
installiert. Webbasierte Benutzerschnittstellen sind deutlich in der
Minderheit und haben den Exotenstatus. Steigt der Verbreitungsgrad
UNIX/Linux-basierter Smartphones und TabletPCs mit Android bzw. Ubuntu
weiter an, ist mit einer Zunahme von Programmen wie Appnr (siehe
Abschnitt 6.5.2, „Appnr“
) im Alltag zu rechnen.
6.2. Für die Kommandozeile
6.2.1.
dpkg
dpkg
ist das Debian-Programm für grundlegende Paketoperationen und
bildet in Bezug auf Funktionsumfang und Handhabung das Äquivalent zu
rpm
auf RedHat-basierten Linuxsystemen. Es kürzt den Namen
Debian
GNU/Linux package manager
ab. Im Anhang unter ``Kommandos zur
Paketverwaltung im Vergleich`` (siehe
Kapitel 51,
Kommandos zur Paketverwaltung im Vergleich
) stellen wir die
verschiedenen Schalter zu den beiden Kommandos
dpkg
und
rpm
gegenüber.
dpkg
agiert nur mit Paketen, die schon auf ihrem Linuxsystem lokal
vorliegen — entweder als
deb
-Datei in einem Verzeichnis oder als
bereits installiertes Paket.
dpkg
kann keine Pakete von einem
Paketmirror beziehen.
Sie erreichen
dpkg
ausschließlich über die Kommandozeile und starten
es mit diversen Schaltern und Optionen. Die wichtigsten Parameter für
den Gebrauch im Alltag sind
[13]
Paketliste ausgeben mittels
dpkg -l
(siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
Paketstatus erfragen mit
dpkg -s
Paketname
(siehe
Abschnitt 8.4, „Paketstatus erfragen“
Inhalt eines installierten Pakets anzeigen mit
dpkg -L
Paketname
(siehe
Abschnitt 8.26, „Paketinhalte anzeigen“
Inhalt eines nicht installierten Pakets anzeigen (siehe
Abschnitt 8.26, „Paketinhalte anzeigen“
) mit
dpkg -c
Paketname
Paket zu Datei finden (siehe
Abschnitt 8.24, „Paket zu Datei finden“
) mit
dpkg -S
Dateiname
und
Pakete konfigurieren (siehe
Abschnitt 8.40, „Pakete konfigurieren“
) (Option
--configure
Mit
dpkg
zeigen Sie die installierten Pakete und deren Zustand an, suchen
nach Paketinhalten und konfigurieren im Bedarfsfall ein Paket nach.
Für alle anderen Aktionen sind hingegen die Werkzeuge
apt-get
Abschnitt 6.2.2, „APT“
),
apt-cache
aptitude
Abschnitt 6.3.2, „
aptitude
) und
apt-file
oder die
Benutzeroberflächen via Ncurses oder GTK besser geeignet (siehe
Abschnitt 6.3, „ncurses-basierte Programme“
und
Abschnitt 6.4, „GUI zur Paketverwaltung“
). Diese fassen viele
Einzelschritte von
dpkg
zusammen und vereinfachen Ihnen die Wartung
ihres Systems erheblich.
6.2.2. APT
Überblick
APT ist das Debian-Programm für etwas komplexere Paketoperationen und
steht als Abkürzung für
Advanced Packaging Tool
. Sie finden es im
Paket
apt
[Debian-Paket-apt]
, welches zur Standardinstallation
Ihres Debian-Systems gehört.
APT ist für den Alltagseinsatz konzipiert. Es eignet sich sowohl für
Recherchezwecke (Abfrage von Status- und Zustandsinformationen), als
auch für die Installation und Aktualisierung einzelner Pakete sowie
gesamter Paketstrukturen (Veröffentlichungen).
Im Gegensatz zu
aptitude
(siehe
Abschnitt 6.3.2, „
aptitude
) ist es deutlich weniger
anspruchsvoll. Das betrifft die Anforderungen an die Hardware und
insbesondere den benötigten Speicher für die Ausführung. APT hat zudem
eine deutlich höhere Ausführungsgeschwindigkeit als
aptitude
APT ist sehr mächtig und kann mit Paketen umgehen, die sich entweder
bereits lokal auf Ihrem System befinden, oder noch auf einem Paketmirror
vorliegen. Es kombiniert i.d.R. mehrere Einzelaktionen von
dpkg
. Es
greift dabei aber nicht direkt auf
dpkg
zurück, sondern kapselt dafür
die Aufrufe mit Hilfe der Bibliothek
libapt-pkg
(siehe dazu „APT und
Bibliotheken“ unter
Kapitel 5,
APT und Bibliotheken
).
Komponenten und Funktionen
APT umfasst ausschließlich Programme für die Kommandozeile. Dazu zählen
apt-cache
apt-cdrom
(siehe
Abschnitt 3.9, „Physische Installationsmedien mit
apt-cdrom
einbinden“
),
apt-config
zur Konfiguration von APT (siehe
Kapitel 10,
APT und
aptitude
auf die eigenen Bedürfnisse anpassen
),
apt-get
apt-key
(siehe
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
) und
apt-mark
(siehe
Abschnitt 8.4.6, „Anfragen mit
apt-mark
). Jedes der genannten
Programme verfügt über umfangreiche Unterkommandos, die Sie wiederum mit
diversen Optionen und Schaltern kombinieren können. Die gebräuchlichsten
Aktionen für den Alltag sind:
Paketstatus erfragen (
Abschnitt 8.4, „Paketstatus erfragen“
) mit
apt-cache show
Paketname
Inhalt eines Pakets anzeigen (
Abschnitt 8.26, „Paketinhalte anzeigen“
) mit
apt-file show
Paketname
Paketabhängigkeiten anzeigen (
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
) mit
apt-cache depends
Paketname
Paket über den Namen oder die Beschreibung finden
Abschnitt 8.20, „Pakete über den Namen finden“
) mit
apt-cache search
Paketname
Paket installieren (
Abschnitt 8.38, „Pakete installieren“
) mit
apt-get install
Paketname
Installierte Pakete löschen (
Abschnitt 8.43, „Pakete deinstallieren“
mit
apt-get
remove
Paketname
Paketliste aktualisieren (
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
) mit
apt-get update
neuere Versionen für die Pakete einspielen (
Abschnitt 8.41, „Pakete aktualisieren“
) mit
apt-get upgrade
die gesamte Distribution aktualisieren (
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
) mit
apt-get dist-upgrade
Nachfolgend geben wir Ihnen eine Übersicht zu allen Unterkommandos, die
die einzelnen APT-Werkzeuge bereithalten. Neben dem jeweiligen
Unterkommando finden Sie den Verweis auf den entsprechenden Abschnitt im
Buch, in dem wir auf dieses genauer eingehen.
apt-cache
apt-cache
bietet die folgenden Unterkommandos:
depends
Paketabhängigkeiten anzeigen (siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
dotty
einen Abhängigkeitsgraphen im
dot
-Format für die benannten Pakete erzeugen (siehe das Beispiel in
Abschnitt 2.5, „Zusammenspiel von dpkg und APT“
dump
eine kurze Programminformation von jedem Paket im Paketcache anzeigen
dumpavail
die Liste der verfügbaren Pakete anzeigen
gencaches
den Paketzwischenspeicher von APT erzeugen
madison
verfügbare Versionen eines Pakets anzeigen (siehe
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
und
Abschnitt 8.14.3, „Verfügbare Paketversionen ermitteln“
pkgnames
die Namen aller Pakete auflisten, die APT kennt (siehe
Abschnitt 8.3, „Bekannte Paketnamen auflisten“
policy
die Quellen und deren Prioritäten auflisten (siehe
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
rdepends
umgekehrte Paketabhängigkeiten anzeigen (siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
Paket über den Namen finden (siehe
Abschnitt 8.20, „Pakete über den Namen finden“
show
Paketinformationen ausgeben und Paketstatus erfragen (siehe
Abschnitt 8.4, „Paketstatus erfragen“
showsrc
Informationen zum Sourcepaket anzeigen (siehe
Abschnitt 8.37, „Sourcepakete anzeigen“
showpkg
Informationen über das Paket anzeigen (siehe
Abschnitt 8.4, „Paketstatus erfragen“
stats
Statistik zum Paketcache ausgeben (siehe
Abschnitt 7.3, „Paketcache-Status“
unmet
eine Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
ausgeben (siehe „Paketstatus erfragen“ in
Abschnitt 8.4, „Paketstatus erfragen“
xvcg
einen Abhängigkeitsgraphen für
xvcg
für die benannten Pakete erzeugen
apt-get
apt-get
gehört mit Sicherheit zur Menge der gebräuchlichsten Kommandos
der APT-Familie und verfügt über die folgenden Unterkommandos:
autoclean
Paketcache aufräumen (siehe
Abschnitt 7.5, „Paketcache aufräumen“
autoremove
Paketwaisen löschen (siehe
Abschnitt 8.44, „Umgang mit Waisen“
build-dep
Abhängigkeiten eines Sourcepakets erfüllen (findet Verwendung beim Erstellen von Paketen)
check
Paketcache auf beschädigte Paketabhängigkeiten prüfen (siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
clean
Paketcache aufräumen (siehe
Abschnitt 7.5, „Paketcache aufräumen“
dist-upgrade
Distribution aktualisieren (siehe
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
Paketdatei nur herunterladen (siehe
Abschnitt 8.34, „Paketdatei nur herunterladen“
dselect-upgrade
Aktualisierung der Pakete über
dselect
install
Paket installieren (siehe
Abschnitt 8.38, „Pakete installieren“
purge
Paket inklusive Konfigurationsdateien des Pakets entfernen (siehe
Abschnitt 8.43, „Pakete deinstallieren“
remove
Paket deinstallieren (siehe
Abschnitt 8.43, „Pakete deinstallieren“
source
Beziehen der Sourcepakete (siehe
Abschnitt 8.36, „Sourcepakete beziehen“
update
Paketliste aktualisieren (siehe
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
upgrade
Pakete auf eine neue Version aktualisieren (siehe
Abschnitt 8.41, „Pakete aktualisieren“
apt-key
und
apt-mark
Für
apt-key
sind die Unterkommandos
add
adv
del
export
exportall
finger
list
net-update
und
update
zulässig. Diese
besprechen wir ausführlich unter „Paketquelle auf Echtheit überprüfen“
in
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
Die Unterkommandos von
apt-mark
lauten
auto
manual
showauto
und
showmanual
. Dazu gehen wir unter „Paketstatus erfragen“ in
Abschnitt 8.4, „Paketstatus erfragen“
detailliert ein.
Weiterentwicklung von APT
Dieser Prozess geht stetig voran. Seit mehreren Jahren gibt es
Bestrebungen, APT grundlegend zu erneuern bzw. dessen verteilte
Funktionalität unter einer einzigen Benutzeroberfläche zusammenzufassen.
Unter dem Namen APT2
[apt2]
existiert zwar ein Prototyp mit neuer API,
jedoch gab es dort nach unserer Recherche seit 2011 keine weitere
Entwicklung mehr.
Eine weniger tiefgreifende, aber dennoch erfrischende Modernisierung
gibt es seit
APT Version 1.0
. Von da an enthält das Paket
apt
das
zusätzliche, gleichnamige Kommandozeilenprogramm
apt
. Dieser
Programmname wurde bis dato von einem Java-Programm zur
Annotationsverarbeitung (
Annotation Processing Tool
) belegt
[Java-Apt]
. Es wird seit Java 7 als
veraltet
deklariert und ist seit
Java 8 nicht mehr Bestandteil von Java.
Somit wurde der Weg für ein neues Programm frei, ohne große Verwirrung
zu stiften.
apt
vereint die gängigsten Unterkommandos von
apt-get
und
apt-cache
in einem kürzeren Befehl und mit moderneren
Standardeinstellungen wie z.B. einem Fortschrittsbalken und farbiger
Ausgabe auf dem Terminal (siehe
[Vogt-Apt-1.0]
). Neben den bekannten
Unterkommandos
list
show
update
install
und
upgrade
kennt es auch die neuen Aktionen
full-upgrade
als Ersatz
für
dist-upgrade
und
edit-sources
zur direkten Veränderung der Datei
/etc/apt/sources.list
(siehe
Abschnitt 8.41, „Pakete aktualisieren“
und
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
). Darüber hinaus verfügt es ab
APT
Version 1.1
über die Fähigkeit, lokal vorliegende
deb
-Pakete zu
installieren und dabei die dazugehörigen Paketabhängigkeiten mit zu
berücksichtigen.
[14]
In LinuxMint gibt es dagegen schon länger einen Befehl
apt
[LinuxMint-apt]
, welcher allerdings ein in Python geschriebener
Wrapper um
apt-get
apt-cache
und neuerdings auch
apt
ist.
Dieser befindet sich in
/usr/local/bin/
und hat weitere
LinuxMint-spezifische Features, wie z.B. das automatische Aufrufen der
eigentlichen Befehle via
sudo
wo notwendig.
Ebenfalls in produktivem Zustand und teilweise intensiver Benutzung
befinden sich die Werkzeuge
cupt
aptitude
und SmartPM.
Während sich und
cupt
nur auf die Kommandozeile beschränken,
bieten Ihnen
aptitude
zusätzlich eine textbasierte bzw. SmartPM eine
graphische Benutzeroberfläche. Auf diese Werkzeuge gehen wir nachfolgend
genauer ein (siehe,
Abschnitt 6.2.5, „Cupt“
Abschnitt 6.3.2, „
aptitude
und
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
).
aptsh
war auch lange Zeit verfügbar, wurde aber kurz vor dem Release
von Debian 10
Buster
entfernt). Es ist
verfügbar bis Debian 9
Stretch
und Ubuntu 19.04
Disco
6.2.3.
wajig
Das in der Programmiersprache Python geschriebene Programm
wajig
[Debian-Paket-wajig]
ist vorrangig ein Wrapper um
dpkg
Abschnitt 6.2.1, „
dpkg
und APT (
Abschnitt 6.2.2, „APT“
). Es zählt zur gleichen Kategorie wie die nicht mehr
verfügbare
aptsh
, beinhaltet aber auch Elemente von
cupt
Abschnitt 6.2.5, „Cupt“
und
aptitude
Abschnitt 6.3.2, „
aptitude
) auf der Kommandozeile
[15]
Anmerkung
Die bisher letzte stabile Veröffentlichung von
wajig
befindet
sich in Debian 10
Buster
, danach ist es nur noch im Bereich
unstable
vorrätig.
wajig
zielt darauf ab, alle im Alltag erforderlichen Aktionen zur
Paketverwaltung in
einem einzigen
Werkzeug für die Kommandozeile
zusammenzufassen. Daher haben sich die
wajig
-Entwickler das Ziel
gesetzt, die APT-Bibliotheken (siehe
Kapitel 5,
APT und Bibliotheken
vollständig auszureizen und nach Möglichkeit auch alle Optionen, die
dpkg
und APT bieten, im Programm zu integrieren. Gleichzeitig stehen
auch Funktionen bereit, die von den separaten Werkzeugen wie bspw.
apt-cdrom
Abschnitt 3.9, „Physische Installationsmedien mit
apt-cdrom
einbinden“
oder
alien
(siehe
Abschnitt 23.2, „Fremdformate mit
alien
hinzufügen“
) entlehnt
wurden.
Sie bedienen
wajig
ausschließlich über die Tastatur. Möglich sind zwei
Modi — mit dem gewünschten Unterkommando beim Aufruf, oder ohne. Bei
ersterem erfolgt die Ausgabe direkt im Terminal, bei letzterem öffnet
sich dann zunächst die
wajig
-Shell und wartet auf Ihre Eingabe. In
dieser können Sie dann alle Unterkommandos zur Paketverwaltung benutzen.
Dazu zählen bspw.
install
zur Paketinstallation,
detail
zur
Darstellung der Paketinformationen,
listfiles
zu Auflistung des
Paketinhalts und
remove
zum Entfernen eines Pakets. Mittels
find-file
erstöbern Sie eine gewünschte Datei in den bereits
installierten Paketen, wohingegen Ihnen
list-orphans
die Paketwaisen
(siehe
Abschnitt 8.44, „Umgang mit Waisen“
) anzeigt.
Als Besonderheit ist einerseits die Anbindung an
apt-get.org
[apt-get.org]
zu nennen, um darüber den Paketmirror nach Bedarf
auszuwählen. Ebenso ist die Umwandlung und Installation von
.rpm
-Paketen mittels
rpm2deb
und
rpminstall
sowie die
ausführliche, integrierte Hilfe hervorzuheben.
Suche nach der Datei
sources.list
mit Hilfe von
wajig
$ wajig find-file sources.list
apt: /usr/share/man/es/man5/sources.list.5.gz
apt: /usr/share/man/ja/man5/sources.list.5.gz
apt: /usr/share/man/pt/man5/sources.list.5.gz
debtags: /etc/debtags/sources.list
apt: /usr/share/man/fr/man5/sources.list.5.gz
apt: /usr/share/doc/apt/examples/sources.list
debtags: /etc/debtags/sources.list.d
apt: /usr/share/man/de/man5/sources.list.5.gz
debtags: /etc/debtags/sources.list.d/source-example
apt: /usr/share/man/pl/man5/sources.list.5.gz
apt: /etc/apt/sources.list.d
apt: /usr/share/man/man5/sources.list.5.gz
Abbildung 6.1.
wajig
mit der Ausgabe des Kommandos
listfiles
Weitere Informationen zum Programm finden Sie auf der Webseite des
Projekts
[wajig-Webseite]
. Um die Feinheiten der Kommandos zwischen
dpkg
, APT und
wajig
besser vergleichen zu können, hilft ein Blick
in das Wiki von xtronics
[xtronics-Wiki]
6.2.4.
sysget
sysget
ist ein Wrapper, welches den Aufruf zu den verschiedenen,
tatsächlichen Paketwerkzeugen übernimmt. Ziel ist dabei, eine
einheitliche Schnittstelle zu den Programmen wie APT,
yum
oder
DNF
herzustellen und damit auch Einsteigern die ersten Schritte nach einem
Wechsel der Distribution zu erleichtern.
sysget
wird als Projekt auf
GitHub gepflegt
[sysgetGitHub]
Das Werkzeug orientiert sich an APT und versteht derzeit die folgenden
Unterkommandos:
autoremove
Paketwaisen entfernen
clean
Aufräumen des Paketcaches
install
ein Paket installieren
remove
ein installiertes Paket wieder entfernen
Suche nach einem Paket
update
die Paketdatenbank aktualisieren
upgrade
ein einzelnes Paket oder das gesamte System aktualisieren
Anmerkung
sysget
ist derzeit nicht als Debianpaket verfügbar, sondern
lediglich als Quellcode von der Projektwebseite. Ob das Projekt
weitergepflegt wird, ist unklar. Die letzte Veröffentlichung stammt aus
dem Oktober 2019.
6.2.5. Cupt
Cupt beschreibt sich selbst als
High-level Package Manager
und
integriert Kommandos unter einem Dach, die Sie von den Werkzeugen
dpkg
und APT her kennen. Dafür nutzt es auf der Serverseite die gleiche
Infrastruktur wie APT. Die Clientseite wurde hingegen komplett neu
entwickelt. Sie rufen das in der Programmiersprache C++ entwickelte
Werkzeug über das gleichnamige Kommando
cupt
auf.
Wie bereits oben angerissen, vereinigt Cupt zwar Kommandos aus
dpkg
und APT, jedoch bislang noch nicht alle davon. Offen ist bspw. der
Support für
multiarch
Abschnitt 1.2.3, „Multiarch: Mehrere Architekturen gleichzeitig auf einem System“
).
Gleichzeitig bietet es auch weitere Features, die APT noch fehlen (siehe
[Debian-Wiki-cupt]
), bspw. Debdelta
[Debdelta]
und die
Synchronisation anhand der Version des Sourcepakets. Ebenso kennt es
ein Kommando
satisfy
, um auf der Kommandozeile angegebene
Paketbedingungen zu erfüllen, z.B.
cupt satisfy ``kmail (>= 4:4.2),
wget (>= 1.10.0)''
Cupt kann problemlos parallel zu APT verwendet werden, ist jedoch gemäß
seinem Autor noch nicht sehr weit verbreitet und auch entsprechend wenig
durch Benutzer in der Praxis getestet
[Cupt-Tutorial]
. Wir gehen im
Buch nicht weiter darauf ein.
6.3. ncurses-basierte Programme
6.3.1. tasksel
tasksel
gehört zu den Anwendungen, die Sie vielleicht nur aus der
textbasierten Installation von Debian her kennen. Nach der
Zusammenstellung des Debian-Basissystems wird dieses Werkzeug
üblicherweise einmal automatisch im Installationsprozess aufgerufen und
gerät danach vollständig in Vergessenheit. Stattdessen helfen Ihnen APT
und
aptitude
bei den Routineaufgaben.
Der Name ist eine Abkürzung und steht für
task select
, auf Deutsch
übersetzbar mit „Aufgabe auswählen“. Das Paket
tasksel
[Debian-Paket-tasksel]
beinhaltet lediglich die Benutzeroberfläche,
das Paket
tasksel-data
[Debian-Paket-tasksel-data]
hingegen eine
Liste mit vorab festgelegten Standardaufgaben. Jeder genannten Aufgabe
sind eine Reihe von Paketen zugeordnet.
Die beiden
tasksel
-Generationen 2.x und 3.x unterscheiden sich massiv
voneinander. Während Generation 2 noch von
aptitude
abhängt, setzt
Generation 3 hingegen verstärkt auf die Nutzung von Metapaketen (siehe
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
). Das zeigt sich sehr deutlich in den
Ausgaben im Terminal, auf die wir unten genauer eingehen.
Abbildung 6.2. Softwareauswahl in
tasksel
Über die textbasierte Benutzeroberfläche und der dargestellten Liste
wählen Sie zunächst mittels Pfeil- und Leertaste die gewünschten
Aufgaben aus. Daraufhin werden alle Pakete „in einem Rutsch“ auf Ihrem
Linuxsystem installiert, die diesen Aufgaben zugeordnet sind. Daß das
durchaus etwas mehr Zeit in Anspruch nehmen kann, zeigt
Abbildung 6.3, „Softwareinstallation via
tasksel
Abbildung 6.3. Softwareinstallation via
tasksel
Bei Debian und Ubuntu existieren viele Aufgaben als separate,
vorgefertigte Pakete, die Ihnen die Einrichtung gemäß eines spezifischen
Zwecks erleichtern, indem benötigte Pakete gruppiert werden. Diese
Pakete tragen die Bezeichnung
task-
am Anfang des Paketnamens (siehe
Abschnitt 2.7, „Debian-Pakete (Varianten)“
). Dazu zählen bspw. die Aufgaben Mailserver,
Webserver, Desktopumgebung und Laptop (siehe
Abbildung 6.2, „Softwareauswahl in
tasksel
).
tasksel
und andere Programme
Wenn das Paket
tasksel
installiert ist, zeigen sowohl Aptitude wie
auch Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) ebenfalls alle verfügbaren
Aufgaben an. Aptitude verwendet dafür einen eigenen Ast als Sektion
„Debian“ und Distributionsbereich „Tasks“, bei Synaptic hingegen
heißt der Bereich (Sektion) „Tasks“.
Die textbasierte Benutzeroberfläche von
tasksel
ist jedoch nur eine
Seite der Medaille. Das Programm ist ebenso für eine Steuerung über die
Kommandozeile empfänglich. Die nachfolgende Liste zeigt die möglichen
Schalter:
install Aufgabe
installiert alle Pakete, die für die
Aufgabe
notwendig sind
remove Aufgabe
entfernt alle Pakete, die zur angegebenen
Aufgabe
gehören
--list-tasks
listet alle Aufgaben auf, die
tasksel
kennt
--task-desc Aufgabe
zeigt eine Beschreibung der gewählten
Aufgabe
an
--task-packages Aufgabe
zeigt alle Pakete an, die zur gewählten
Aufgabe
gehören
-t
(Langform
--test
Trockendurchlauf, Ausführung der gewünschten Aktion ohne echte Auswirkung
Über den Schalter
--list-tasks
stellt Ihnen
tasksel
alle vorab
definierten Aufgaben zusammen (Debian). Am Buchstaben in der ersten
Spalte der Ausgabe erkennen Sie, ob diese Aufgabe vollständig auf ihrem
Linuxsystem umgesetzt wurde. Daneben sehen Sie das vergebene Kürzel und
eine Kurzbeschreibung zur jeweiligen Aufgabe.
Ausgabe aller festgelegten Aufgaben von
tasksel
$ tasksel --list-tasks
u desktop Debian desktop environment
u web-server Web server
u print-server Printserver
u database-server SQL database
u dns-server DNS Server
u file-server File server
u mail-server Mail server
u ssh-server SSH server
u laptop Laptop
Für jede Aufgabe ist eine Beschreibung der Aufgabe hinterlegt. Diese
zeigen Sie mit dem Schalter
--task-desc
an
[16]
. Auf einem Ubuntu mit
tasksel
in
der Version 2.88 sehen Sie diese Ausgabe:
Ausgabe der Aufgabenbeschreibung eines
tasks
(Ubuntu).
$ tasksel --task-desc openssh-server
Selects packages needed for an Openssh server.
tasksel
zeigt Ihnen mit Hilfe des Schalters
--task-packages
auch die
Pakete an, die zu der entsprechenden Aufgabe gehören. Bei Debian und der
Aufgabe
ssh-server
sieht das wie folgt aus — es verweist auf ein
entsprechendes Debianpaket:
Pakete, die zu einer Aufgabe gehören (Debian).
$ tasksel --task-packages ssh-server
task-ssh-server
Der gleiche Aufruf auf einem Ubuntu — hier für das Paket
openssh-server
— ergibt diese Liste (Auszug) mit allen benötigten
Einzelpaketen:
Pakete, die zu einer Aufgabe gehören (Ubuntu).
$ tasksel --task-packages openssh-server
python-six
python-chardet
python2.7
tcpd
openssh-server
ncurses-term
ssh-import-id
...
6.3.2.
aptitude
Im Vergleich mit den anderen vorgestellten Programmen zur
Paketverwaltung ist
aptitude
eine recht komplexe und umfangreiche
Anwendung. Es ermöglicht Ihnen zwei unterschiedliche Wege der Bedienung — einerseits über die Kommandozeile mit Unterkommandos und Schaltern,
andererseits über eine Ncurses-basierte, interaktive, farbige
Bedienoberfläche im Terminal. Wieder aufgegeben wurden zwischenzeitlich
die Versuche,
aptitude
auch mit einer graphischen Bedienoberfläche
auszustatten (siehe
[Beckert-Blog-Aptitude-Gtk-Will-Vanish]
).
Das Programm ist verteilt auf die beiden Pakete namens
aptitude
und
aptitude-common
. Da das Programm nicht zur Standardauswahl bei der
Installation von Debian GNU/Linux und Ubuntu gehört, richten Sie es am
besten über den Aufruf
apt-get install aptitude
auf ihrem Linuxsystem
ein. Das Paket
aptitude-common
wird über Paketabhängigkeiten
automatisch mitinstalliert.
Ähnlich wie APT arbeitet
aptitude
mit Paketen, die sich entweder
bereits lokal auf ihrem System befinden, oder noch auf einem Paketmirror
vorliegen und vor der Installation noch von dort bezogen werden.
Desweiteren bietet Ihnen das Programm die folgenden Funktionen (Auswahl,
jeweils Angabe der Unterkommandos auf der Kommandozeile):
die Liste der installierten Pakete anzeigen und ausgeben
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
) mit
aptitude search '~i'
Recherche und Paketliste filtern anhand von Paketkategorien,
Veröffentlichungen und Mustern (Teilzeichenketten, Reguläre Ausdrücke) bzgl. des Paketnamens,
der Metadaten und der Paketbeschreibung
Paketstatus erfragen (
Abschnitt 8.4, „Paketstatus erfragen“
) mit
aptitude show
Paketname
Paketdatei ins aktuelle Verzeichnis herunterladen
Abschnitt 8.34, „Paketdatei nur herunterladen“
) mit
aptitude download
Paketname
Pakete zur Installation, Aktualisierung oder Löschung vormerken (siehe Mit
aptitude
Vormerkungen machen unter
Kapitel 11,
Mit
aptitude
Vormerkungen machen
Paket installieren (
Abschnitt 8.38, „Pakete installieren“
) mit
aptitude install
Paketname
Paket in einer bestimmten Version halten (nicht aktualisieren) (siehe
Kapitel 15,
Ausgewählte Pakete aktualisieren
und
Kapitel 16,
Ausgewählte Pakete nicht aktualisieren
Pakete deinstallieren (
Abschnitt 8.43, „Pakete deinstallieren“
) mit
aptitude remove
Paketname
Pakete erneut installieren (
Abschnitt 8.39, „Pakete erneut installieren“
) mit
aptitude reinstall
Paketname
installierte Paketliste oder die Veröffentlichung aktualisieren (
Abschnitt 8.41, „Pakete aktualisieren“
) mit
aptitude update
aptitude safe-upgrade
und
aptitude full-upgrade
klären, warum ein Paket (nicht) installiert ist
Abschnitt 8.17, „Warum ist ein Paket installiert“
) mit
aptitude why
Paketname
bzw.
aptitude why-not
Paketname
Paketabhängigkeiten mit
aptitude search ?depends
Paketname
anzeigen (
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
Dokumentation zu
aptitude
Für den vollständigen Funktionsumfang und als Einstieg zum Programm ist
das Lesen der Dokumentation zu
aptitude
[aptitude-dokumentation]
empfehlenswert. Neben der Bedienung enthält es alle Unterkommandos,
Optionen, Schalter und Möglichkeiten zur Konfiguration.
Wie bereits oben angerissen, können Sie
aptitude
über die
Kommandozeile
benutzen. Die Unterkommandos und Schalter sind bzgl. der
Schreibweise und Bedeutung ähnlich derer von APT (siehe
Abschnitt 6.2.2, „APT“
).
Um hingegen über die
Ncurses-basierte Bedienoberfläche
zu agieren,
starten Sie zunächst
aptitude
ohne weitere Optionen. Die mehrfarbige
Bedienoberfläche enthält mehrere Elemente. Ganz oben finden Sie die
verfügbaren, aktiven Tasten und deren Funktion. Über die Funktionstaste
F10
oder alternativ mit Hilfe der Tastenkombination
Ctrl
aktivieren Sie bspw. die Menüleiste. Einige Terminals wie bspw. das
Gnome-Terminal fangen die Funktionstaste ab und belegen diese für die
eigene Menüleiste. Über den Eintrag
Bearbeiten
Tastenkombinationen
Menütastenkombinationen aktivieren
(de)aktivieren
Sie das Verhalten. Mit Hilfe der Pfeiltasten navigieren Sie zwischen den
einzelnen Menüeinträgen hin und her bzw. wählen die gewünschte Aktion
aus.
Die beiden Fensterhälften darunter geben Ihnen eine Übersicht zu den
Softwarepaketen. In der oberen Hälfte stellt
aptitude
in einer
aufklappbaren Baumstruktur die Paketkategorien
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
), den
Distributionsbereich (
Abschnitt 2.9, „Distributionsbereiche“
) und den Paketnamen mit
Versionsnummer dar. Sichtbar wird dabei die Version des installierten
Pakets sowie der möglichen Aktualisierung
Abschnitt 2.11.2, „Versionsnummer“
). Die Auswahl in der Baumstruktur erfolgt
analog zu vi(m) mittels
und
(oder über die Pfeiltasten)
und
Enter
. Die einzelnen Strukturebenen klappen Sie mit den Tasten
Enter
und
auf und zu.
Dabei hinterlegt
aptitude
die einzelnen Pakete mit verschiedenen
Farben, deren Bedeutung Sie
Tabelle 6.2, „Farben und deren Bedeutung bei
aptitude
entnehmen. Das
Farbschema können Sie auch nach Gutdünken anpassen, genauer gehen wir
darauf in
Abschnitt 10.12, „
aptitude
-Farbschema anpassen“
ein.
Tabelle 6.2. Farben und deren Bedeutung bei
aptitude
Farbkombination
Bedeutung
schwarzer Hintergrund mit weißer Schrift
das Paket wird nicht verändert
roter Hintergrund mit weißer Schrift
das Paket ist defekt oder kann nicht installiert werden
blauer Hintergrund mit weißer Schrift
das Paket wird aktualisiert
weißer Hintergrund mit schwarzer Schrift
die Paketversion bleibt
erhalten, kann jedoch aktualisiert werden
grüner Hintergrund mit schwarzer Schrift
Paket wird installiert
lila Hintergrund mit schwarzer Schrift
Paket wird entfernt („deinstalliert“)
Im unteren Fenster erhalten Sie eine Beschreibung — entweder zur
ausgewählten Paketkategorie oder zum jeweiligen Paket. Zwischen den
beiden Fensterhälften wechseln Sie mittels der
Tab
-Taste hin
und her. Die Belegung weiterer Tasten entnehmen Sie bitte
Tabelle 6.3, „Tasten bei
aptitude
Tabelle 6.3. Tasten bei
aptitude
Aktion
Tastenbelegung
Hilfe
aptitude
beenden (Vormerkungen werden gespeichert)
Shift
aptitude
abbrechen (alle Vormerkungen gehen verloren)
Ctrl
+kbd[C]
Info-Fenster ein- und ausblenden
Shift
Zwischen den Info-Ansichten wechseln
Zwischen beiden Fenstern hin- und herwechseln
Tab
In das Menü von
aptitude
wechseln
Ctrl
oder
F10
Paketlisten aktualisieren
Ausgewähltes Paket auswählen
Ausgewähltes Paket entfernen
Auch wenn sich APT und
aptitude
größtenteils sehr ähnlich sind,
bestehen eine Reihe von feinen Unterschieden, die erst während der
Benutzung der Programme präsent werden.
aptitude
hat nützliche
Erweiterungen, wie z.B. einen
interaktiven Abhängigkeitsauflöser
(siehe
Abbildung 6.4, „package dependency solver in
aptitude
). Verändern Sie den geplanten
Paketbestand, indem Sie beispielsweise ein zusätzliches Paket markieren
und somit zur Installation vormerken, werden automatisch die notwendigen
Abhängigkeiten aufgelöst und ebenfalls vorgemerkt. Sie sehen somit
unmittelbar, welche Pakete im nächsten Schritt noch hinzukommen oder
wieder entfernt werden müssen.
Sollte es dabei zu Paketkonflikten kommen, so werden Ihnen vorab
verschiedene Lösungsvarianten und deren Auswirkungen auf den
Paketbestand zur Auswahl gestellt. Im Gegensatz dazu präsentiert Ihnen
APT nur stets einen einzigen Vorschlag zur Aktualisierung.
Aus diesen angebotenen Varianten wählen Sie die Ihnen am besten passende
aus. In den letzten beiden Zeilen des Terminals listet
aptitude
auf,
wieviele Varianten es ermittelt hat, mit welchen Tasten Sie zwischen
diesen Varianten wechseln (siehe auch
Tabelle 6.4, „Tasten zur interaktiven Konfliktlösung bei
aptitude
und wie Sie die gewünschte Variante letztendlich auswählen.
Abbildung 6.4. package dependency solver in
aptitude
Tabelle 6.4. Tasten zur interaktiven Konfliktlösung bei
aptitude
Aktion
Tastenbelegung
Vorschläge zur Konfliktlösung anzeigen
Nächsten Vorschlag anzeigen
Vorherigen Vorschlag anzeigen
Ersten Vorschlag anzeigen
Letzten Vorschlag anzeigen
Teilvorschlag akzeptieren
Teilvorschlag ablehnen („reject“)
Vorschlag anwenden
Darüber hinaus verfügt
aptitude
über eine Ansicht, in der Sie Pakete
nach
Debian-Tags (Debtags)
(siehe dazu
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
) sortiert betrachten
können. Damit stöbern Sie sehr effizient im Paketbestand. Das ist
insbesondere dann interessant, wenn Sie lediglich wissen, nach welcher
Funktionalität oder Art von Paket Sie suchen, jedoch den konkreten
Paketnamen nicht kennen.
Der ebenfalls im Menü in
Abbildung 13.5, „Auswahl des Debtags-Browsers in
aptitude
(noch)
angezeigte
Kategoriebrowser
gilt als veraltet
[17]
, funktioniert seit
einigen Versionen nicht mehr und wird voraussichtlich demnächst ganz
entfernt
[aptitude-categorical-browser-to-be-removed]
. Der oben
angerissene Debtags-Browser ist der offizielle, wesentlich aktuellere
und besser gepflegte Ersatz dafür.
Im Erweiterungsteil gehen wir darauf ein, was passiert, wenn Sie APT und
aptitude
miteinander mischen (
Kapitel 12,
APT und
aptitude
mischen
). Auch der
Konfiguration des Programms ist ein eigener Abschnitt gewidmet (siehe
„APT und
aptitude
auf die eigenen Bedürfnisse anpassen“ in
Kapitel 10,
APT und
aptitude
auf die eigenen Bedürfnisse anpassen
).
6.3.3. Nala
Das Werkzeug Nala
[Debian-Paket-nala]
ist bislang noch recht unbekannt
und versteht sich als Frontend für APT. Ziel ist, eine übersichtlichere
Darstellung vom aktuellen Paketbestand sowie bei dessen Änderungen zu
erhalten, indem graphische Elemente in die Ausgabe einfließen.
Abbildung 6.5, „Entfernen des Paketes
xsnow
mittels
Nala
zeigt den Dialog auf der Kommandozeile zur Entfernung des
Paketes
xsnow
Abbildung 6.5. Entfernen des Paketes
xsnow
mittels
Nala
Das gesamte Verhalten und die Bedienung von Nala lehnt sich an
DNF
an
DNF für APT
wäre somit eine gute Zusammenfassung. An Schaltern
versteht es die Unterkommandos von APT, bspw.
install
zur
Installation von Softwarepaketen,
remove
zum Löschen sowie
purge
und
remove --purge
zum vollständigen Löschen eines Softwarepakets. Mit dem
Unterkommando
history
stöbern Sie in der Historie von Nala, sprich:
Sie sehen daraus, welche Paketaktionen bereits vorher durchgeführt
wurden.
Nala benutzt dabei nicht die APT-Bibliotheken, sondern stattdessen die
Python-apt-API zur Verwaltung der Pakete. Seit dem Frühsommer 2023 mit
der Veröffentlichung von Debian 12
bookworm
ist Nala in der stabilen
Veröffentlichung von Debian GNU/Linux enthalten.
6.4. GUI zur Paketverwaltung
6.4.1. Synaptic
Das Programm steht im gleichnamigen Paket
synaptic
[Debian-Paket-synaptic]
bereit. Es verfügt über eine graphische
Bedienoberfläche auf der Basis des Gimp Toolkits (GTK2) und war lange
Zeit das empfohlene Programm zur Paketverwaltung für die Benutzer des
Ubuntu-Desktops. Zwischenzeitlich sind bei Ubuntu diverse, mehr an
Apples App-Store denn an Aptitude erinnernde GUI-Frontends gekommen
und wieder gegangen. Aber zumindest scheint sich Ubuntu auf PackageKit als
Middleware zwischen GUI und dem eigentlichen Pakete installieren,
aktualisieren und entfernen eingeschossen zu haben.
Abbildung 6.6. Softwareauswahl in
synaptic
Synaptic bedienen Sie über die Menüleiste, eine Reihe von Knöpfen
darunter und eine dreispaltige Paketübersicht. Die Darstellung
konfigurieren Sie über die Menüpunkte
Einstellungen
Einstellungen
und
Einstellungen
Werkzeugleiste
Abbildung 6.7, „Farbige Markierungen der Pakete gemäß ihrem Installationsstatus (Synaptic)“
zeigt als Beispiel das Dialogfenster, über welches Sie die Farben zum
jeweiligen Installationsstatus eines Pakets festlegen.
Abbildung 6.7. Farbige Markierungen der Pakete gemäß ihrem Installationsstatus (Synaptic)
Über den Knopf
Eigenschaften
erfahren Sie mehr über das gerade von
Ihnen ausgewählte Paket. Dazu zählen Allgemeine Informationen, die
Paketabhängigkeiten, die installierten Dateien, die verfügbaren
Paketversionen sowie eine ausführliche Paketbeschreibung.
Abbildung 6.8, „Allgemeine Paketeigenschaften für das Paket
ding
(Synaptic)“
zeigt die Informationen zum Paket
ding
Abbildung 6.8. Allgemeine Paketeigenschaften für das Paket
ding
(Synaptic)
Unter der Menüleiste und den Knöpfen finden Sie die dreispaltige
Paketübersicht
. Links finden Sie verschiedene Auswahlknöpfe, oben
rechts die Paketliste und unten rechts die Paketbeschreibung im Detail.
Abbildung 6.6, „Softwareauswahl in
synaptic
zeigt Ihnen die Gesamtansicht anhand des Pakets
a2ps
Die
linke Spalte
zeigt zunächst die Architektur
Abschnitt 1.2, „Debian-Architekturen“
). Über die einzelnen Knöpfe darunter schalten
Sie zur Ansicht nach den Paketkategorien (Sektionen)
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
) sowie dem Ursprung
bzw. der Herkunft der Pakete (
Abschnitt 3.1, „Paketquellen“
), der Veröffentlichung
Abschnitt 2.10, „Veröffentlichungen“
) und dem Distributionsbereich
Abschnitt 2.9, „Distributionsbereiche“
) um.
In der
Paketliste oben rechts
beinhalten die Spalten den
Installationsstatus (Status), eine Information zur Herkunft des Pakets,
den Paketnamen, die installierte und die verfügbare Version und eine
kurze Paketbeschreibung. Zusätzlich können Sie als Spalten den
Distributionsbereich, die Veröffentlichung und die Größe des Pakets
nach der Installation ergänzen. Mit einem Mausklick auf den jeweiligen
Spaltenkopf sortieren Sie die Paketliste nach der jeweiligen
Eigenschaft.
Die
rechte untere Spalte
zeigt die ausführliche Paketbeschreibung an.
Über den linken Knopf (
Bildschirmfoto herunterladen
) beziehen
Sie ein Bildschirmfoto, sofern dieses hinterlegt ist
[18]
Über den rechten Knopf (
Änderungsprotokoll abrufen
) zeigt
Ihnen Synaptic die Änderungsdatei (engl.
Changelog
) zum ausgewählten
Paket an.
Um ein Paket zu installieren, wählen Sie dieses zuerst über den
Menüeintrag
Paket
Zum installieren vormerken
(alternativ
Strg
oder einen Rechtsklick) aus. Über den Menüeintrag
Bearbeiten
Vorgemerkte Änderungen anwenden
(alternativ
Strg
oder den Knopf
Anwenden
) lösen Sie die
Installation aus. In ähnlicher Art und Weise verfahren Sie beim Löschen
und Aktualisieren von Paketen. Synaptic prüft bei jeder Aktion die
Paketabhängigkeiten und bezieht die weiteren Pakete in die Verarbeitung
mit ein, damit ihr Linuxsystem stets in einem konsistenten Zustand
bleibt.
Möchten Sie hingegen eine ganze Paketgruppe installieren, bietet
Synaptic die gleiche Funktionalität wie das Werkzeug
tasksel
(siehe
Abschnitt 6.3.1, „tasksel“
). Dazu nutzen Sie den Menüpunkt
Bearbeiten
Pakete nach Aufgaben vormerken
. Daraufhin erscheint
ein ähnliches Auswahlfenster wie in
Abbildung 6.9, „Paketauswahl einer ganzen Aufgabengruppe (Synaptic)“
, aus deren
Liste sie die gewünschte Aktion markieren. Alle Pakete, die der
ausgewählten Aufgabe zugeordnet sind, gelangen damit in die Vorauswahl
und können daraufhin über den Knopf
Anwenden
installiert werden.
Abbildung 6.9. Paketauswahl einer ganzen Aufgabengruppe (Synaptic)
6.4.2. Muon
Muon ist ein Paketmanager für KDE und als Klon von Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) einzustufen. Es setzt auf dem graphischen Framework Qt
auf und kommt bislang speziell in der Distribution Kubuntu
[Kubuntu]
zum Einsatz. Für Debian ist das gleichnamige Paket
muon
[Debian-Paket-muon]
seit der Veröffentlichung Debian 9
Stretch
verfügbar, für Ubuntu bereits ab der Veröffentlichung 12.04
Precise
Pangolin
Abbildung 6.10. Softwareauswahl in
muon
Pakete können durch Auswahllisten nach der Softwarekategorie, dem
Paketstatus, der Architektur und der Herkunft gefiltert werden. Dazu
kommt ein Filter nach Zeichenketten in Paketnamen und -beschreibung. Zu
beachten ist dabei, dass die verschiedenen Auswahlmenüs der Filter mit
"und" verknüpft werden. Beim Wechsel in eine andere Filterkategorie
kommt es daher schnell vor, dass kein Paket mehr in der Paketliste
angezeigt wird, falls man vergessen hat, den Filter einer vorherigen
Suche wieder zu entfernen bzw. auf "Alle" zu setzen.
Wählen Sie ein Paket mit einem Mausklick aus, so stellt Muon im
Fensterbereich unter der Paketliste Metadaten und Details über das Paket
dar. Dies umfaßt u.a. die Paketbeschreibung, die Paketabhängigkeiten,
verfügbare Versionen, den Paketinhalt (Dateien im Paket), den
Paketbetreuer, die installierte Größe der Software, die Downloadgröße
und das Quellpaket, aus dem das Binärpaket gebaut wurde.
6.4.3. Smart Package Management (SmartPM)
Im Paket
smartpm
[Debian-Paket-smartpm]
verbirgt sich das
gleichnamige Programm zur Paketverwaltung. Zunächst etwas unscheinbar,
entpuppt es sich aber bei näherer Betrachtung als eine Art Alleskönner
und mindestens gleichwertiges Pendant zu Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
).
SmartPM verfügt über drei Bedienmodi. Erstens hat es ebenfalls eine
graphische Bedienoberfläche auf der Basis des Gimp Toolkits (GTK2), lässt
sich jedoch zweitens auch über die Kommandozeile mit mehreren Schaltern
steuern und verfügt als drittes noch über eine Paketverwaltungsshell
analog zu
wajig
Abschnitt 8.44.6, „
wajig
) und zu
cupt
Abschnitt 6.2.5, „Cupt“
).
Für ersteres rufen Sie SmartPM im Terminal über das Kommando
smart
--gui
auf oder wählen den entsprechenden Eintrag aus dem Menü Ihrer
Desktop-Umgebung aus. In
Abbildung 6.11, „Softwareauswahl in
smartpm
sehen Sie die zweispaltige
Darstellung — links die Paketkategorien, rechts oben die Paketliste mit
Paketname samt Versionsnummer und rechts unten die ausführliche
Paketbeschreibung — hier am Beispiel des Pakets
kexi
. Unter dem
Reiter
General
verbergen sich die Basisinformationen zum
Paket,
Description
bietet die Paketbeschreibung,
Content
die Dateien aus dem Paket,
Changelog
die
Veränderungen zur vorherigen Version,
Relations
die darüber
bereitgestellten, verfügbaren und zusätzlich benötigten Pakete. Unter
dem Reiter
URLs
verbergen sich weitere Referenzen zum Paket.
Abbildung 6.11. Softwareauswahl in
smartpm
Für die Benutzung von SmartPM über die
Kommandozeile
starten Sie das
Programm über den Aufruf
smart
mit der gewünschten Aktion und dem
Paketname. Analog zu APT bzw.
aptitude
stehen bspw. die Unterkommandos
install
remove
und
upgrade
bereit.
Über den Aufruf
smart --shell
erreichen Sie die Paketverwaltungsshell.
Darin nutzen Sie die gleichen Unterkommandos und Schalter wie bei
obigem Aufruf über die Kommandozeile. Nachfolgendes Beispiel zeigt das
Unterkommando
info
, welches hier alle Paketinformationen zum Paket
kexi
ausgibt.
Paketinformationen zu
kexi
in der Shell von SmartPM.
$ smart --shell
Smart Package Manager 1.4 - Shell Mode

Loading cache...
Updating cache... ####################################### [100%]

smart> info kexi
Name: kexi
Version: 1:2.4.4-3
Priority: 0
Source: calligra_1:2.4.4-3
Group: database
License:
Installed Size: 8.8MB
Reference URLs: http://www.calligra-suite.org/kexi/
Flags:
Channels: DEB System
Summary: integrated database environment for the Calligra Suite
Description:
Kexi is an integrated data management application. It can be used for
creating database schemas, inserting data, performing queries, and
processing data. Forms can be created to provide a custom interface to
your data. All database objects - tables, queries and forms - are stored
in the database, making it easy to share data and design.
Kexi is considered as a long awaited Open Source competitor for MS Access,
Filemaker and Oracle Forms. Its development is motivated by the lack of
Rapid Application Development (RAD) tools for database systems that are
sufficiently powerful, inexpensive, open standards driven and portable
across many operating systems and hardware platforms.
This package is part of the Calligra Suite.

smart>
SmartPM wirkt sehr ausgereift und verfügt zudem über eine Reihe von
Besonderheiten
. Es kann sowohl mit Paketen im
deb
- als auch in den
verschiedenen
rpm
-Formaten umgehen. Das kann recht praktisch in
gemischten Umgebungen sein. Im Gegensatz zu APT und
aptitude
gestattet es die Auswahl einer oder mehrerer Paketquellen zur
Aktualisierung — bei APT sind nur alle aktiven auf einmal möglich.
Analog zu APT und
aptitude
kennt SmartPM auch diverse Markierungen.
Das sind beispielsweise Flags, die anzeigen lassen, ob ein Paket seit
der letzten Aktualisierung der Paketlisten neu hinzukam, ob ein Paket
nicht aktualisiert werden darf („lock“, „hold“), oder ob ein Paket
automatisch installiert wurde
[19]
Allerdings stammt die letzte Veröffentlichung von SmartPM von 2011
[SmartPM]
und es wurde 2019 aus Debian entfernt
[SmartPM-RM]
nachdem ebenfalls seit 2011 kein Änderungen mehr am Paket passiert und
es auf Python 2 und PyGTK aufbaute, die beide "End of Life" sind,
d.h. keinerlei Sicherheitsaktualisierungen mehr bekommen. Noch
enthalten ist es in Debian 10
Buster
und Ubuntu 18.04 LTS
Bionic
Zusätzlicher Lesestoff
Eine ausführliche Beschreibung zum Programm mit weiteren Beispielen zur
Konfiguration und zur Handhabung entnehmen Sie bitte dem
Linux-User-Artikel zum gleichen Thema
[Hofmann-Smartpm-LinuxUser]
6.4.4. PackageKit
PackageKit ist eine allgemeine, distributionsneutrale Schnittstelle für
unterschiedliche Paketverwaltungen, eine sogenannte Abstraktionsebene
für die Paketverwaltung (
package management abstraction layer
). Das
Designziel besteht darin, alle graphischen Werkzeuge zu vereinigen, die
bei den verschiedenen Linuxdistributionen im Einsatz sind und
gleichzeitig auf die neueste Technologie wie
PolicyKit
[20]
umzustellen. PackageKit ist nicht
dafür gedacht, hochspezialisierte Paketverwaltungssoftware zu ersetzen.
Seit 2009 nutzt die Linuxdistribution Kubuntu
[Kubuntu]
diese
Schnittstelle für seine Paketverwaltung im Rahmen von Muon (siehe
Abschnitt 6.4.2, „Muon“
). Weitere Anwendungen, die auf PackageKit aufsetzen, sind
z.B. das Paket
apper
[Debian-Paket-apper]
für den KDE, das Paket
gnome-packagekit
[Debian-Paket-gnome-packagekit]
für GNOME (siehe
Abbildung 6.12, „Gnome Packagekit mit ausgewähltem Paket
dctrl-tools
) und das Installationsprogramm zu Openmoko
[OpenMoko]
Abbildung 6.12. Gnome Packagekit mit ausgewähltem Paket
dctrl-tools
PackageKit kann über die Interfaces APT und
aptcc
(Paket
packagekit-backend-aptcc
[Debian-Paket-packagekit-backend-aptcc]
) an
APT andocken. Ähnliches liefert das Paket
packagekit-backend-smart
[Debian-Paket-packagekit-backend-smart]
für die Zusammenarbeit mit
SmartPM (
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) bzw.
packagekit-command-not-found
[Debian-Paket-packagekit-command-not-found]
für die Installation
fehlender Pakete via
command-not-found
. Das Werkzeug
command-not-found
steht unter „Fehlende Pakete bei Bedarf
hinzufügen“ in
Kapitel 17,
Fehlende Pakete bei Bedarf hinzufügen
im
Mittelpunkt.
6.4.5. GDebi
Initial nur für Ubuntu entwickelt, verbirgt sich unter dem Namen GDebi
[gdebi]
ein kleines, seit 2004 von Michael Vogt betreutes Programm.
Auf den ersten Blick wirkt GDebi recht unscheinbar, füllt aber genau die
kleine Lücke zwischen den Kommandos
dpkg -i
und
apt-get install
(siehe
Abschnitt 6.2.1, „
dpkg
Abschnitt 6.2.2, „APT“
und
Abschnitt 8.38, „Pakete installieren“
). Die Besonderheit
von GDebi liegt darin, dass es lokal vorliegende
deb
-Pakete
installieren kann, während es deren Abhängigkeiten aus den Repositories
via APT auflöst und daraus die zusätzlich benötigten Pakete bezieht.
Damit eignet es sich besonders gut, um zugesandte, selbst erstellte oder
auch manuell heruntergeladene Pakete zu installieren.
GDebi besteht aus mehreren
Komponenten
— einem Kommandozeilenprogramm
namens
gdebi
(aus dem Paket
gdebi-core
[Debian-Paket-gdebi-core]
und einer, ehemals zwei graphischen Bedienoberflächen. Die GTK-basierte
Variante namens
gdebi-gtk
(aus dem Paket
gdebi
[Debian-Paket-gdebi]
— siehe
Abbildung 6.13, „
gdebi
mit den Informationen zum Paket
apt-doc
) wird aktiv gepflegt
und weiterentwicklet. Die KDE-Variante namens
gdebi-kde
(aus dem
gleichnamigen Paket
gdebi-kde
[Debian-Paket-gdebi-kde]
) wird nicht
mehr weiterentwickelt und gab es zuletzt in Debian 9 Stretch..
Abbildung 6.13.
gdebi
mit den Informationen zum Paket
apt-doc
Dabei dient das Kommandozeilenprogramm
gdebi
den beiden graphischen
Werkzeugen als Backend und wird von diesen intern aufgerufen, um die
jeweiligen Paketoperationen auszuführen. Sie können es aber auch alleine
auf der Kommandozeile benutzen, ohne dass eine der beiden graphischen
Komponenten installiert sein muss. Rufen Sie dazu GDebi auf der
Kommandozeile
mit einem
deb
-Paket als Parameter auf, erhalten Sie
die Paketbeschreibung. Stimmen Sie danach der abschließenden Frage zur
Installation mit
zu, führt
gdebi
ihren Wunsch aus und das
deb
-Paket landet auf ihrem Linuxsystem.
Anzeige der Paketbeschreibung bei manuellem Aufruf von
gdebi
# gdebi Desktop/odeskteam_3.10.5_debian_7.2_i386.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done

oDesk Team - complete time-logging and verification system
Who needs it: All providers are required to run oDesk Team in order to have a
verified record of their work. oDesk Team is optional for buyers, however a
lot of our buyers run it to have an online record of their work and be able to
collaborate better with their remote team.
Note: This single-install download is the full oDesk Team client application,
which will only be fully functional if used in conjunction with an oDesk Team
Online Account with a valid license to access the Service. Review carefully
our License Agreement before downloading.
Wollen Sie das Software-Paket installieren? [j/N]:
...
Die
graphischen Werkzeuge
starten Sie entweder über den Aufruf
gdebi-gtk
bzw.
gdebi-kde
im Terminal, oder aber durch Doppelklicken
auf eine
deb
-Datei im Dateimanager ihrer Desktop-Umgebung. In
letzterem Fall wird das von Ihnen angeklickte Paket jedoch nicht sofort
installiert. Sie erhalten zunächst ein Fenster mit vielfältigen
Informationen über das ausgewählte Paket (analog zu
Abbildung 6.13, „
gdebi
mit den Informationen zum Paket
apt-doc
).
Erst mit einem weiteren Klick auf
Paket installieren
lösen Sie
die Installation tatsächlich aus. Dieses Vorgehen hilft Ihnen dabei,
herum(f)liegende Pakete nicht aus Versehen zu installieren. Somit
vergewissern Sie sich nochmals, aus welcher ggf. auch unverifizierten
Quelle dieses Paket stammt, bevor Sie es auf Ihrem Rechner installieren.
Neben der Installation und Aktualisierung ermöglicht Ihnen GDebi auch
das Begutachten und Löschen von lokal vorliegenden Paketen. Dies können
auch bereits vorher via APT heruntergeladene Pakete sein, die noch im
Paketcache unter
/var/cache/apt/archives/
herumdümpeln (siehe
Kapitel 7,
Paketcache
).
Das Begutachten von Paketen gelingt Ihnen über die einzelnen Reiter
Beschreibung
Details
und
enthaltene Dateien
Neben der Paketbeschreibung zeigt Ihnen GDebi alle sonstigen
Metadaten aus der Control-Datei (siehe
Abschnitt 4.2, „Aufbau und Format“
) sowie den
tatsächlichen Paketinhalt an, sofern es sich dabei um Textdateien
handelt. Dies umfasst auch die Maintainer-Skripte.
Darüberhinaus zeigt Ihnen GDebi ab Version 0.9
[21]
auch sämtliche
Warnungen des Programms
lintian
[Debian-Paket-lintian]
an, die von
dem ausgewählten Paket verursacht werden. Dies erlaubt Ihnen sowohl als
Entwickler, als auch als normaler Benutzer, schnell einen groben
Eindruck von der Qualität des Pakets zu bekommen, bevor Sie dieses auf
ihrem Linux-System installieren und benutzen. Wie Sie mit dem
referenzierten Programm
lintian
im Detail umgehen, lesen Sie unter
„Nicht installierte Pakete mit lintian prüfen“ in
Abschnitt 37.1, „Nicht installierte Pakete mit
lintian
prüfen“
Abbildung 6.14.
gdebi-gtk
mit den Informationen zum Paket
zsh
Ergibt sich bei der Veränderung des Paketbestands die Notwendigkeit,
zusätzliche Paketabhängigkeiten aufzulösen, springt GDebi in die Bresche
und klärt diese Situation automatisch mit Hilfe von APT
[Vogt-gdebi]
. Fehlende Pakete werden von den vorab konfigurierten
Paketmirrors (siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
) nachgezogen.
Diese Eigenschaft hebt GDebi deutlich von
dpkg
ab, das nur meckern
kann, falls es auf nicht-erfüllte Abhängigkeiten stößt.
Einziger Wermutstropfen bei GDebi ist, dass sowohl die beiden graphischen
Tools, als auch
gdebi
bislang pro Aufruf nur ein einziges
deb
-Paket
akzeptieren. APT ab Version 1.1 kann allerdings ebenfalls mit lokalen
Paketen umgehen und dabei deren Abhängigkeiten über APT-Repositories
auflösen — und das auch mit mehr als einem Paket auf einmal. Damit
bietet es sich zukünftig als veritable Alternative zu
gdebi
an und
soll dieses auch langfristig ersetzen
[22]
6.5. Webbasierte Programme
6.5.1. Ubuntu Landscape
Canonical stellt mit Ubuntu Landscape
[Ubuntu-Landscape]
seit 2008
eine zentrale Administrationsoberfläche für Einzelrechner und
Serversysteme bereit. Ubuntu Landscape ist Teil des kostenpflichtigen
Servicepakets Ubuntu Advantage und sowohl als gehosteter Dienst nutzbar
oder auch lokal installierbar
[23]
. Darüberhinaus steht eine API zur individuellen
Ansteuerung bereit.
Die erhoffte Nutzergruppe von Ubuntu Landscape sind weniger die
Endbenutzer, sondern Unternehmen und deren gesamte Infrastruktur. Das
Ziel besteht dabei in der möglichst vollständigen, weitestgehend
automatisierten und zentralen Systemadministration für bis zu 40000
Computer. Das Angebot umfasst daher eine webbasierte Schnittstelle für
das Patch- und Änderungsmanagement, die rollenbasierte Verwaltung für
Einzelbenutzer und Gruppen sowie Sicherheitseinstellungen von
Ubuntu-Desktop-Systemen und -Servern (siehe
Abbildung 6.15, „Rollback eines ausgewählten Pakets“
).
Abbildung 6.15. Rollback eines ausgewählten Pakets
Im Bereich der Paketverwaltung und Systemaktualisierung erhalten Sie
einerseits Informationen zu den einzelnen Softwarepaketen und deren
Verfügbarkeit und sehen auf den betreuten und über Ubuntu Landscape
gepflegten Computern deren Installationsstatus. Wie bei Communtu (siehe
Abschnitt 6.5.3, „Communtu“
) kommen auch hier Metapakete (siehe
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
) verstärkt zum Einsatz. Darüber werden
Paketgruppen und ganze Softwareprofile für die betreuten System
realisiert und abgebildet.
6.5.2. Appnr
Seit 2008 betreibt der Japaner Akira Ohgaki in Eigenregie seine
nichtkommerzielle Plattform Appnr
[appnr]
. Darüber stehen
deb
-Pakete
verschiedener Repositories bereit, die Sie für ihr jeweiliges
Ubuntu-Linuxsystem beziehen und installieren können (siehe
Abbildung 6.16, „Vorauswahl für Appnr im Webbrowser
Iceweasel
). Der Name des Projekts orientiert sich am Neusprech
„App“, da Sie die Installation im Webbrowser beginnen und die
Handhabung der Nutzung einer „App“ auf Geräten mit einem
berührungsempfindlichen Bildschirm entspricht.
Abbildung 6.16. Vorauswahl für Appnr im Webbrowser
Iceweasel
Aus technischer Sicht verfügt Appnr nicht über ein eigenes Repository.
Stattdessen stellt der angebotene Dienst eine browserbasierte,
übersichtliche Schnittstelle für Repositories von Ubuntu und
verschiedenen Drittanbietern bereit, die entsprechend dem aktuellen
Zeitgeschmack gestaltet ist. In der linken Spalte der Darstellung finden
Sie die Paketkategorien und in der mittleren Spalte die dazugehörigen
Softwarepakete. Über das Eingabefeld am oberen Rand spezifizieren Sie
ihren Suchbegriff, nach welchem danach sowohl in den Paketnamen, der
Paketbeschreibung, als auch in der Liste der enthaltenen Dateien gesucht
wird.
Im Ergebnis sehen Sie eine Kurzbeschreibung zum Paket, Bildschirmfotos
von
screenshots.debian.net
[screenshots.debian.net]
(sofern
hinterlegt und verfügbar), eine Bewertung und eine Information zur
Häufigkeit der Installation. Letzteres bezieht sich auf die
Informationen, die Ubuntu im Rahmen seiner statistischen Erhebung durch
den
Popularity Contest
gesammelt hat.
Zum Bezug der ausgewählten Pakete und sofortiger Installation benötigen
Sie das Paket
apturl
[Ubuntu-apturl]
und
[Vogt-apturl]
), welches
wir Ihnen in
Kapitel 25,
Webbasierte Installation von Paketen mit
apturl
genauer
vorstellen.
6.5.3. Communtu
Communtu ist eine Plattform, die seit 2008 vom Bremer Verein
Natur,
Geist und Technik — Verein zur Förderung der Allgemeinbildung e.V.
betrieben und gepflegt wird. Über die Webseite stellen Sie sich
aufgabenbezogene
deb
-Pakete für Ubuntu zusammen, die Sie danach auf
ihrem Linuxsystem einspielen können. Dabei löst die Paketverwaltung alle
Abhängigkeiten zwischen den einzelnen Paketen auf. Den Quellcode der
Plattform hat der Verein unter der Affero GNU Public License (AGPL)
freigegeben. Für Debian GNU/Linux gibt es seit 2004 ein ähnliches
Konzept unter dem Namen
Debian Pure Blends
(siehe
[Debian-Pure-Blends]
).
Hintergrund ist die Idee, alle benötigten Programme für eine Aufgabe zu
kombinieren und als Paketbündel abzulegen. Ein solches „Bündel“ ist
stets einer Kategorie zugeordnet, beispielsweise Audio, Büro oder
Komplettinstallation (siehe
Abbildung 6.17, „Verfügbare Bündel auf der Webseite“
). Die Webseite stellt die
Infrastruktur zur Zusammenstellung bereit und ermöglicht Ihnen
einerseits, Detailinformationen zu den Paketbündeln abzurufen, erstellte
Paketbündel zu hinterlegen und damit auch anderen Benutzer zugänglich zu
machen sowie bestehende Paketbündel zu beziehen, online zu bewerten und
auch zu verbessern.
Abbildung 6.17. Verfügbare Bündel auf der Webseite
Es „vereinfacht [Ihnen] damit die Auswahl und Installation von Software,
die nicht durch die Standardinstallation des Ubuntu-Systems abgedeckt
ist“ (Quelle: UbuntuUsers-Wiki
[Communtu]
). Zudem integriert es auch
Pakete von Fremdquellen und erleichtert somit die sich wiederholende
Installation gleichartiger Systeme, bspw. für einen Klassenraum in einer
Schule.
Die technische Basis hinter dem Angebot der Plattform bilden Metapakete
(siehe
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
) sowie das Werkzeug
apturl
(siehe
Kapitel 25,
Webbasierte Installation von Paketen mit
apturl
). Nachdem Sie über
die Webseite Ihre gewünschte Software ausgewählt haben, wird automatisch
ein erstes passendes Metapaket erzeugt. Dieses beinhaltet lediglich die
Abhängigkeiten zu den von Ihnen zuvor ausgewählten Softwarepaketen.
Gleichzeitig stellt die Plattform ein weiteres, spezifisches Metapaket
bereit, welches ihre Liste der Paketquellen entsprechend anpasst, um
damit die Anbindung von weiteren Paketquellen zu ermöglichen. Mittels
apturl
beziehen Sie die erzeugten Metapakete über ihrem Webbrowser, so
dass die Paketverwaltung diese Pakete auch einspielen kann.
6.5.4. Univention Corporate Server (UCS)
Der Univention Corporate Server (UCS)
[UCS]
ist ein auf kommerzieller
Basis vertriebenes OpenSource-Produkt für Infrastrukturlösungen in
Unternehmen und Behörden. Neben dem Univention (Linux) Client werden
alle „domänenfähigen Betriebssysteme“ (Windows, Mac OS, Linux) via
Samba 4 unterstützt.
Die Erweiterung
UCS at School
ist für den Einsatz in Lehr- und
Forschungseinrichtungen verfügbar, welche spezielle Softwarekomponenten
für die Unterstützung des Lehrbetriebes enthält und damit die
Infrastruktur für Bildungseinrichtungen abdeckt. Dazu zählt bspw.
Klassenraummanagement, Verteilung und Einsammeln von Arbeitsmaterialien
sowie die Moderation von Druckern und Druckaufträgen. Die Entwicklung
von UCS begann 2002, der Server ist seit 2004 und der Client seit 2009
verfügbar.
Basis des vom Bremer Unternehmen Univention GmbH zusammengestellten,
entwickelten und vertriebenen Produktes ist Debian GNU/Linux, welche um
einige Komponenten erweitert wurde. Mit diesen Komponenten werden
Skalierbarkeit, Konfigurationsmanagement und weitere Möglichkeiten zur
Verfügung gestellt, die in dieser Form in der Linux-Distribution nicht
vorhanden sind. Durch regionale Kooperationspartner vor Ort und den
Hersteller Univention GmbH werden die Kunden technisch betreut und der
Support sichergestellt.
Den Ausgangspunkt bildet stets eine stabile Debian-Veröffentlichung — UCS 5.0 basieert z.B. auf Debian 10
Buster
, UCS 4.4 auf Debian 9
Stretch
. Für diese Softwarebasis pflegt Univention eine Reihe von
Eigenentwicklungen und Anpassungen.
Konkret zeigt sich das bereits im Paketnamen. Alle von Univention
modifizierten Pakete tragen das Präfix
univention
, so bspw.
univention-dns
zur Einrichtung des Domain Name Systems. Weiterhin
besteht eine geänderte Konfiguration der bereitgestellten Softwarepakete
über zusätzliche Vorlagen, sogenannte
univention templates
. Diese
Vorlagen und deren Einstellungen richten sich nach der von Ihnen
vergebenen Systemrolle und damit der Funktion der jeweiligen,
spezifischen UCS-Instanz.
Die
Paketverwaltung
ist mehrstufig und setzt auf den bereits bewährten
und beschriebenen Mechanismen von Debian mittels
dpkg
und APT auf.
Univention ergänzt diese Werkzeuge um eine zusätzliche Ebene, um die
Softwarepakete passend zur vorher festgelegten Systemrolle und den
Vorlagen zu installieren und automatisch konfigurieren zu können.
Die Basis bildet der
Univention Installer
, welcher im Prinzip ein
modifizierter Debian-Installer ist. Bei der Grundinstallation wählen Sie
danach ihre gewünschten Softwarekomponenten über ein modifiziertes
Tasksel
Abschnitt 6.3.1, „tasksel“
aus. Installieren Sie zu einem späteren Zeitpunkt
Software nach, stehen Ihnen auf der
Kommandozeile
die beiden Werkzeuge
univention-install
und
univention-remove
zur Verfügung. Diese
akzeptieren Paketnamen als Parameter und versorgen
dpkg
und APT mit
den zusätzlichen Daten aus den dazugehörigen, von Univention
bereitgestellten Vorlagen.
dpkg
und APT können Sie jederzeit für die grundlegenden
Paketoperationen nutzen, um beispielsweise nach Paketen zu suchen, deren
Installationszustand zu erfragen oder um die Paketinhalte anzuzeigen.
Installieren Sie hingegen Pakete mit
dpkg
und APT eigenhändig nach,
müssen Sie die Angaben aus den Vorlagen selbständig in die Konfiguration
des Pakets und die zentrale Konfigurationsdatei namens
Univention
Configuration Registry (UCR)
übertragen.
Erweiterungen und Werkzeuge von Drittanbietern
wählen Sie webbasiert
über das sogenannte
Univention App Centre
(siehe
Abbildung 6.18, „Univention App Centre“
) aus. In der darüber angebotenen
Paketmenge sind Programme enthalten, die zuvor von Univention
freigegeben wurden. Das beinhaltet bspw. Software für Wikis, Groupwares
oder auch Werkzeuge zur Inventarisierung. Die Konfiguration der Pakete
erfolgt nicht direkt über die Webschnittstelle, sondern ist
programmspezifisch. Das gilt auch für Aktualisierungen der Pakete, die
hier nicht Updates, sondern
Errata
heißen (siehe
[univention-errata]
).
Abbildung 6.18. Univention App Centre
[13]
Weitere Optionen zu
dpkg
entnehmen Sie bitte der Manpage zum Programm
[14]
Diese Eigenschaft stammt vom Programm
gdebi
(siehe
Abschnitt 6.4.5, „GDebi“
), welches ebenfalls vom APT-Entwickler
Michael Vogt gepflegt wird.
[15]
Bis
einschließlich Debian 6
Squeeze
bestand zudem eine graphische
Variante namens
gjig
, die mittlerweile obsolet und in keiner
unterstützten Debian- oder Ubuntu-Veröffentlichung mehr verfügbar
ist.
[16]
Unter Debian 7
Wheezy
ist die Ausgabe derzeit defekt und als Bug #756841 hinterlegt,
siehe
[17]
Es handelt
sich dabei um eine hart in
aptitude
verdrahtete und schon sehr lange
nicht mehr gepflegte Kategorisierung der Pakete
[18]
Die
Bildschirmfotos kommen von
[screenshots.debian.net]
. Falls für Ihr
Lieblingspaket ein Screenshot fehlt, können Sie selbst einen
anfertigen und dort hochladen. Nach einem Review wird das hochgeladene
Bild im Normalfall freigeschaltet und ist dann für alle Nutzer der
Webseite und der Programme, die die Daten von dort verwenden, sichtbar.
[19]
Bislang scheint SmartPM diese
Markierungen nicht mit APT oder
aptitude
zu synchronisieren. Dieses
Verhalten ist als Bug registriert.
[20]
Berechtigungsdienst, der die Kommunikation von Software via
DBus-Protokoll untereinander regelt
[21]
Verfügbar
ab Debian 8
Jessie
und Ubuntu 14.04 LTS
Trusty Tahr
[22]
Letzteres ist auch
kein Wunder, da sowohl
gdebi
als auch diese Funktionalität von APT vom
gleichen Autor stammen.
[23]
Die Pakete dafür heißen
landscape-client
landscape-client-ui
landscape-client-ui-install
und
landscape-common
Kapitel 7. Paketcache
7.1. Hintergrundwissen
Die deutsche Übersetzung zum Wort
cache
ist Zwischenspeicher oder
Puffer. In der Manpage von
apt-get
wird dafür auch der Begriff
lokales Depot
verwendet.
Laden Sie mittels der APT-Infrastruktur Debian-Pakete vom Spiegelserver
herunter, werden diese nicht sofort entpackt, sondern zunächst lokal
zwischengespeichert („gecacht“). Vollständig heruntergeladene Pakete
liegen im Verzeichnis
/var/cache/apt/archives/
(siehe
Abbildung 7.1, „Heruntergeladene Pakete im Paketcache“
), hingegen nur teilweise heruntergeladene
Pakete unter
/var/cache/apt/archives/partial/
Abbildung 7.1. Heruntergeladene Pakete im Paketcache
Erst wenn alle zur Installation oder Aktualisierung benötigten Pakete
von APT oder
aptitude
heruntergeladen wurden und auch im Paketcache
liegen, wird mit dem Auspacken und Installieren der Pakete begonnen. So
ist garantiert, dass alle durch Abhängigkeiten notwendigen Pakete auch
lokal verfügbar sind und nichts mehr fehlt. Die Pakete werden daraufhin
von
dpkg
unter Verwendung der Bibliotheken (siehe
Kapitel 5,
APT und Bibliotheken
ausgepackt, die ausgepackten Dateien an die im Paket benannte Stelle im
Verzeichnisbaum kopiert und abschließend ggf. noch automatisch
konfiguriert (siehe dazu
Abschnitt 8.40, „Pakete konfigurieren“
).
7.1.1. Was passiert, wenn nicht alle Pakete heruntergeladen werden konnten?
Es kann jedoch vorkommen, dass das Herunterladen eines oder mehrerer
Pakete fehlschlägt. Ursachen können beispielsweise sein, dass die
Netzwerkverbindung unterbrochen oder der Spiegelserver neugestartet
wurde. Möglich ist auch, dass just zwischen dem letzten Aufruf von
apt-get update
und dem Herunterladen der Pakete eine Aktualisierung
des Paketspiegels stattfindet und genau das Paket durch ein neueres
ersetzt wird, welches Sie gerade zum installieren oder aktualisieren
herunterladen möchten.
apt-get
bricht in diesem Fall ab,
aptitude
fragt Sie hingegen als
Benutzer, ob Sie trotzdem fortsetzen oder den Vorgang abbrechen möchten.
Zu überlegen ist das beispielsweise, wenn nur ein einziges Paket
fehlschlug, welches von den anderen unabhängig ist.
Wenn die Netzwerkverbindung (wieder) in Ordnung ist, beheben Sie eine
solche Situation in den meisten Situationen ohne viel Aufwand. Das gilt
inbesondere aber im letztgenannten Fall. Mit einem weiteren Aufruf von
apt-get update
bringen Sie die Paketlisten auf aktuellen Stand und
starten die geplante Aktualisierung oder Installation von Paketen danach
nochmals.
7.2. Dateien im Paketcache
Der Paketcache hat keine komplexe Struktur. Darin befinden sich die
folgenden Einträge:
Debianpakete
die Pakete in Form von
deb
-Dateien, die Sie zuvor
mittels
apt-get
oder
aptitude
heruntergeladen haben
lock
-Datei
ein Marker in Form einer leeren Datei. Dieser
verhindert, dass zwei Programme — bspw.
apt-get
und Synaptic — nicht gleichzeitig einen Download eines Paketes versuchen.
das Verzeichnis
partial
Debianpakete, die noch nicht vollständig
heruntergeladen wurden. Wie Pakete darin landen, erklären wir Ihnen
unter
Abschnitt 7.1.1, „Was passiert, wenn nicht alle Pakete heruntergeladen werden konnten?“
7.3. Paketcache-Status
Den aktuellen Zustand des Paketcaches erfahren Sie mit Hilfe das
Kommandos
apt-cache stats
. Es wertet den Paketcache hinsichtlich der
gefundenen Symbole aus — d.h. die Namen, die Varianten und die Bezüge
zwischen den Paketen, die sich derzeit im Cache befinden.
Informationen zum Zustand des Paketcache ausgeben.
$ apt-cache stats
Gesamtzahl an Paketnamen: 47488 (950 k)
Gesamtzahl an Paketstrukturen: 47488 (2.279 k)
davon gewöhnliche Pakete: 35987
davon rein virtuelle Pakete: 371
davon einzelne virtuelle Pakete: 4324
davon gemischte virtuelle Pakete: 1029
davon fehlend: 5777
Gesamtzahl an unterschiedlichen Versionen: 37547 (2.403 k)
Gesamtzahl an unterschiedlichen Beschreibungen: 87385 (2.097 k)
Gesamtzahl an Abhängigkeiten: 222388 (6.227 k)
Gesamtzahl an Version/Datei-Beziehungen: 40866 (654 k)
Gesamtzahl an Beschreibung/Datei-Beziehungen: 87385 (1.398 k)
Gesamtzahl an Bereitstellungen: 7563 (151 k)
Gesamtzahl an Mustern: 164 (1.732 )
Gesamtmenge des Abhängigkeits-/Versionsspeichers: 911 k
Gesamtmenge an Slack: 73,0 k
Gesamtmenge an Speicher: 11,8 M
Total buckets in PkgHashTable: 196613
Unused: 108138
Used: 88475
Utilization: 44.9996%
Average entries: 1.33334
Longest: 17
Shortest: 1
Total buckets in GrpHashTable: 196613
Unused: 101900
Used: 94713
Utilization: 48.1723%
Average entries: 1.3668
Longest: 7
Shortest: 1
Die nachfolgenden Beschreibungen zu den einzelnen Zeilen der Ausgabe
basieren auf der Manpage zu
apt-cache
. In Klammern finden sie die
dazugehörige englische Übersetzung der Schlüsselworte. Findet sich als
Beschreibung die Angabe
ToDo
, liegt noch keine Beschreibung vor — auch nicht in der Manpage zu
apt-cache
Gesamtzahl an Paketnamen (
total package names
gibt die Gesamtzahl
der im Paketcache gefundenen Pakete an.
Gesamtzahl an Paketstrukturen (
total package structures
Gewöhnliche Pakete (
normal packages
gibt die Anzahl der
regulären, gewöhnlichen Paketnamen an. Dieses sind Pakete, die eine
Eins-zu-Eins-Entsprechung zwischen ihren Namen und den Namen, die andere
Pakete für ihre Abhängigkeiten benutzen, tragen. Die Mehrzahl der Pakete
fällt in diese Kategorie.
Rein virtuelle Pakete (
pure virtual packages
gibt die Anzahl der
Pakete an, die nur als ein virtueller Paketname existieren. Das kommt
vor, wenn Pakete nur den virtuellen Paketnamen
bereitstellen
und
aktuell kein Paket den Namen benutzt. Zum Beispiel ist
mail-transport-agent
ein rein virtuelles Paket. Mehrere Pakete stellen
dieses bereit, aber es gibt kein tatsächliches Paket mit dem Namen.
Einzelne virtuelle Pakete (
single virtual packagess
gibt die
Anzahl der Pakete mit nur einem Paket an, das ein bestimmtes virtuelles
Paket bereitstellt. Beispielsweise ist
X11-text-viewer
ein solches
Paket, aber nur das Paket
xless
stellt dieses bereit.
Gemischte virtuelle Pakete (
mixed virtual packages
gibt die
Anzahl der Pakete an, die entweder ein bestimmtes virtuelles Paket
bereitstellen oder den virtuellen Paketnamen als Paketnamen haben.
Beispielsweise ist
debconf
solches Paket, dieses wird aber auch vom
Paket
debconf-tiny
bereitgestellt.
Fehlende Pakete (
missing
das benennt die Anzahl der Paketnamen,
auf die eine Abhängigkeit verweist, die aber von keinem Paket
bereitgestellt werden. Fehlende Pakete könnten auftauchen, wenn nicht
auf eine vollständige Veröffentlichung zugegriffen oder ein (echtes oder
virtuelles) Paket aus einer Veröffentlichung gestrichen wurde.
Normalerweise erfolgt der Bezug in der Paketbeschreibung über die
Schlüsselworte
Conflicts
oder
Breaks
(siehe dazu
Abschnitt 4.1.1, „Binärpakete“
).
Gesamtzahl an unterschiedlichen Versionen (
total distinct versions
diese Angabe benennt die Anzahl der im Paketcache gefundenen
Paketversionen. Dieser Wert ist meistens identisch mit der Anzahl der
gesamten Paketnamen. Wenn auf mehr als eine Veröffentlichung zugegriffen
wird — zum Beispiel
stable
und
unstable
zusammen — , kann dieser
Wert deutlich größer als die gesamte Anzahl der Paketnamen sein.
Gesamtzahl an unterschiedlichen Beschreibungen (
total distinct descriptions
Angabe zur Anzahl unterschiedlicher Beschreibungen.
Gesamtzahl an Abhängigkeiten (
total dependencies
beschreibt die
Anzahl der Abhängigkeitsbeziehungen, den alle Pakete im Paketcache
beanspruchen.
Gesamtzahl an Version/Datei-Beziehungen (
total ver/file relations
ToDo
Gesamtzahl an Beschreibung/Datei-Beziehungen (
total desc/file relations
ToDo
Gesamtzahl an Bereitstellungen (
total provides mappings
ToDo
Gesamtzahl an Mustern (
total globbed strings
ToDo
Gesamtmenge des Abhängigkeits-/Versionsspeichers
ToDo
Gesamtmenge an Slack (
total slack space
ToDo
Gesamtmenge an Speicher (
total space accounted for
Angabe zur
Gesamtgröße des Paketcaches.
Gesamtzahl der Einträge in der PkgHashTable (
total buckets in PkgHashTable
ToDo
Gesamtzahl der Einträge in der GrpHashTable (
total buckets in GrpHashTable
ToDo
Ist der Platz auf ihrem Speichermedium knapp, sehen Sie in Zeile
Gesamtmenge an Speicher
die Angabe, welche Menge durch den Paketcache
gerade belegt wird. Wie Sie darin wieder für Ordnung sorgen, lesen Sie
unter „Paketcache aufräumen“ in
Abschnitt 7.5, „Paketcache aufräumen“
nach.
7.4. Größe des Paketcaches
7.4.1. Wieviel Platz belegt der Paketcache?
APT benutzt zwei Caches — einen im RAM, und einen auf einem (lokalen)
Speichermedium. Die Informationen dazu bedurften aufwendiger Recherche.
Die Größe des APT-Caches im RAM erhalten Sie über den Aufruf von
apt-cache stats
in Kombination mit
grep
, wobei Sie die Zeile
"Gesamtmenge an Speicher" aus der Ausgabe von
apt-cache stats
herausfiltern.
apt-cache stats
liefert die Größe des APT-Caches im RAM.
$ apt-cache stats | grep "Gesamtmenge an Speicher"
Gesamtmenge an Speicher: 31,1 M
Anmerkung
Verwenden Sie ein Debian GNU/Linux mit englischer
Spracheinstellung, lautet die betreffende Zeile "Total space accounted
for:".
apt-cache
liefert hingegen keine Information darüber, wieviel Platz es
auf einem physischen Datenträger belegt. Dazu greifen Sie auf ein
klassisches UNIX/Linux-Werkzeug zurück —
du
mit den beiden Schaltern
-s
(Langform:
--summarize
) und
-h
(Langform:
--human-readable
angewendet auf das Verzeichnis des Paketcaches. Sofern nicht anders von
Ihnen zuvor konfiguriert, ist der Pfad
/var/cache/apt/archives
du
ermittelt die Größe des Verzeichnisses des Paketcaches.
$ du -sh /var/cache/apt/archives/
1,4M /var/cache/apt/archives/
7.4.2. Größe des Paketcaches festlegen
Der Defaultwert ist mit 0 festgelegt, d.h. es besteht keine
Größenbegrenzung seitens APT. In diesem Fall ergeben sich die Limits aus
der physikalischen Größe der Partition, der das Verzeichnis für den
Paketcache zugeordnet ist sowie dem Dateisystem auf der Partition
selbst. Im Dateisystem sind wiederum die Anzahl der Inodes (Einträge)
und die Blockgröße festgelegt, die letztendlich regeln, wieviele Pakete
als Datei gespeichert werden können.
7.5. Paketcache aufräumen
7.5.1. Weshalb aufräumen?
Während APT Softwarepakete von der hinterlegten Paketquelle bezieht — in der Regel von einem Paketmirror — behält APT die Pakete im
Verzeichnis
/var/cache/apt/archives/partial
. Ist der Download
abgeschlossen, werden diese in das Verzeichnis
/var/cache/apt/archives
verschoben, anschließend ausgepackt und installiert.
Die bezogenen Pakete verbleiben im Cache. Werden die Pakete zu einem
späteren Zeitpunkt nochmals benötigt und die Paketversion ist (noch)
identisch, schaut APT zuerst im Paketcache nach und entnimmt diese von
dort, bevor es die Pakete erneut von der Quelle bezieht. Das geht meist
schneller, als diese erneut herunterzuladen.
Nachteil ist, dass diese Pakete Speicherplatz auf dem Datenträger ihres
Debian-Systems belegen. Wird es damit knapp, raten wir Ihnen daher,
diesen Speicherplatz regelmäßig aufzuräumen. Mittlerweile ist die
Bezugszeit der Pakete über das Internet vielfach so gering, dass sich
ein längerfristiges Vorhalten im Paketcache eigentlich erübrigt. Es ist
in diesem Fall Abwägungssache und hängt davon ab, wie häufig Sie Pakete
entfernen und später wieder einspielen.
Den Paketcache finden Sie im Verzeichnis
/var
. Je nach Partitionierung
ihres Datenträgers ist der Bereich nicht separat und möglicherweise
Bestandteil der
-Partition. Ist diese vollständig mit Daten gefüllt,
funktioniert vieles auf ihrem Linuxsystem nicht mehr.
Bei ausgefeilteren Installationen bestehen häufig separate Partitionen
für
/var
oder
/var/cache
. Läuft einer dieser Bereiche voll, können
im einfachsten Fall keine weiteren Pakete zwischengespeichert und auch
nicht temporär entpackt werden. Falls der Bereich
/var
vollständig
belegt ist, können auch keine Logdateien mehr angelegt oder weitere
Informationen daran angehängt werden.
Einen Ausweg aus diesem Dilemma gelingt Ihnen mit dem Anlegen einer
separaten Partition für
/var/cache/apt/archives
. Wie Sie diese
einrichten und mit welchen Vor- und Nachteilen dieser Schritt verbunden
ist, zeigen wir Ihnen unter „Cache-Verzeichnis auf separater
Partition“ in
Kapitel 29,
Cache-Verzeichnis auf separater Partition
7.5.2. Paketverwaltung passend konfigurieren
Die Programme
dpkg
apt-get
aptitude
und Synaptic räumen den
Paketcache in der Standardeinstellung nicht eigenständig auf und
belassen die Pakete nach der Installation oder Aktualisierung im
Paketcache. Ob überhaupt, wann und insbesondere wie aufgeräumt wird,
entscheiden Sie als Systembetreuer selbst und müssen dazu das von ihnen
verwendete Werkzeug entsprechend konfigurieren.
Aus unserer Sicht sind die einzelnen Werkzeuge in Debian GNU/Linux wie
folgt konfiguriert:
bei
dpkg
Es belässt sowohl die
.deb
-Datei im Verzeichnis, als
rührt auch den Paketcache nicht an.
bei
apt-get
Die Pakete verbleiben im Paketcache und werden nicht
daraus entfernt.
bei
aptitude
Die Pakete verbleiben im Paketcache und werden nicht
daraus entfernt. Dieses Verhalten steuern Sie über den Eintrag
aptitude::AutoClean-After-Update
in der Konfigurationsdatei
~/.aptitude/config
. Der Default-Wert ist
false
, d.h. das Paket
verbleibt im Paketcache. Mit der Angabe
true
aktivieren Sie das
Aufräumen. Alternativ setzen Sie die Option über den Menüpunkt
„Einstellungen“ aus dem Menü „Optionen“ (siehe
Abbildung 7.2, „Alte Pakete aus dem Paketcache mittels Aptitude entfernen“
):
Abbildung 7.2. Alte Pakete aus dem Paketcache mittels Aptitude entfernen
bei
apt
Laden Sie ein oder mehrere Pakete mittels
apt install
oder
apt upgrade
herunter und installieren diese erfolgreich, entfernt
apt
diese Pakete danach aus dem Paketcache. Dieses Verhalten wird über
den Eintrag
Clean-Installed
in
apt.conf
gesteuert, der Default-Wert
dafür ist
on
und steht für das Aufräumen.
7.5.3. Kommandos zum Aufräumen
Grundsätzlich gibt es mehrere, unterschiedlich radikale Ansätze zum
Aufräumen des Paketcaches. Die
Variante eins
umfasst das Löschen von
Paketen aus dem Cache, die in keinem der verwendeten APT-Repositories
mehr verfügbar sind. Die beiden Aufrufe
apt-get autoclean
und
aptitude autoclean
implementieren diesen Ansatz. Bei Synaptic nutzen
Sie dazu den Menüpunkt
Einstellungen
Dateien
und selektieren
im Dialogfenster den Eintrag „Nur Pakete löschen, die nicht länger
verfügbar sind“ (siehe
Abbildung 7.3, „Großreinemachen mit Hilfe von Synaptic“
). In der
Standardeinstellung erleichtern diese Kommandos den Cache auch um
Pakete, die Sie in der vorliegenden Version nicht mehr vom Spiegelserver
beziehen können, die aber noch auf ihrem Linuxsystem installiert sind.
Um hingegen lediglich die Pakete aus dem Cache zu löschen, die auch
nicht, oder nicht mehr installiert sind, hilft Ihnen die
Konfigurationsoption
APT::Clean-Installed=off
in der Konfiguration von
APT. Alternativ teilen Sie das
apt-get
mit diesem Aufruf explizit mit:
Aufruf von
apt-get
mit ausdrücklicher Konfiguration.
# apt-get -o APT::Clean-Installed=off autoclean
...
Allerdings besteht keine Möglichkeit mehr, diese Pakete mittels APT zu
einem späteren Zeitpunkt wieder zu installieren, da sie ja in keiner
Paketliste mehr vorkommen. Benötigen Sie eines der Pakete später doch
wieder, hilft Ihnen nur der Rückgriff auf
dpkg
in Kombination mit dem
dazugehörigen
deb
-Paket weiter. Dazu benutzen Sie den Aufruf
dpkg -i
Paketname
Paketname
bezeichnet den Namen und Pfad der lokalen Datei
für das benötigte
deb
-Paket (siehe
Abschnitt 8.38, „Pakete installieren“
).
Variante zwei
umfasst das Löschen sämtlicher Pakete aus dem Paketcache — damit schaffen Sie radikal Platz. Die passenden Kommandos dazu lauten
apt-get clean
und
aptitude clean
. Übrig bleiben danach nur die
beiden Verzeichniseinträge für die Sperrdatei
lock
und das
Unterverzeichnis
partial
, in dem die Fragmente für Pakete
landen, die nur teilweise bezogen wurden.
Aufräumen mittels
apt-get clean
# apt-get clean
# ls /var/cache/apt/archives/
lock partial
Bei Synaptic bildet zunächst der Eintrag
Einstellungen
Dateien
den Ausgangspunkt. Über den Knopf „Alle Paketdateien im
Zwischenspeicher löschen“ lösen Sie die Aufräumaktion aus (siehe
Abbildung 7.3, „Großreinemachen mit Hilfe von Synaptic“
).
Abbildung 7.3. Großreinemachen mit Hilfe von Synaptic
Selbstverständlich können Sie auch als
Administrator
agieren und dabei
gezielt nur ausgewählte oder auch alle vorliegenden
deb
-Dateien
manuell aus dem Verzeichnis
/var/cache/apt/archives/
mittels
rm Paketdatei
löschen. Gerade bei den Paketen, die Daten für Spiele
beinhalten — z.B.
0ad-data
mit ca. 530 MB Paketdateigröße — , reicht
es oft aus, diese einzelnen Dateien aus dem Paketcache zu entfernen, um
dort wieder ausreichend Platz zu haben.
Alle derzeit von Debian unterstützten Versionen von APT klagen nicht,
wenn Sie das gesamte Verzeichnis
/var/cache/apt/archives/partial/
klammheimlich hinter dem Rücken der beiden Programme einfach komplett
entsorgen. APT und
aptitude
legen es bei einem späteren Bedarf einfach
von selbst wieder an. Anders sieht es hingegen bei älteren
Veröffentlichungen wie z.B. Debian 4.0
Etch
oder Debian 5.0
Lenny
Ubuntu 10.04 LTS
Lucid Lynx
sowie Debian-Derivaten aus der Zeit vor
Mitte 2010 aus. Beachten Sie bitte, dass APT vor Version 0.8 beim
Löschen eines der beiden Verzeichnisse
/var/cache/apt/archives/partial/
oder
/var/lib/apt/lists/partial/
dann einfach den Dienst verweigert. Sie beheben das Problem flink, indem
Sie die genannten Verzeichnisse manuell wieder anlegen. Haben Sie
/var/cache/
als
tmpfs
-Dateisystem eingehängt (siehe
Kapitel 29,
Cache-Verzeichnis auf separater Partition
), so können Sie mit dem
Aufruf
mkdir -p /var/cache/apt/archives/partial
als Eintrag in der
Datei
/etc/rc.local
dauerhaft Abhilfe schaffen.
7.5.4. Empfehlungen zum Zeitpunkt des Aufräumens
Wann Sie am besten aufräumen, hängt etwas von der Nutzung und dem
verfügbaren Plattenplatz ab. In den meisten Fällen ist
nach
dem
Installieren und Aktualisieren der Pakete ein guter Zeitpunkt.
aptitude
bietet dies sogar über die Option
Aptitude::Autoclean-After-Update
an (siehe unten).
Ist jedoch der Plattenplatz recht knapp, so kann auch es auch helfen,
den Cache bereits
vor
dem Installieren und Aktualisieren aufzuräumen.
Das ist insbesondere dann sinnvoll, wenn Sie dies selbst nicht
regelmäßig machen und diese Aktion stattdessen per Cron-Job oder über
die Konfiguration der Paketverwaltung ausführen lassen. Es macht jedoch
keinen Sinn, wenn Sie beispielsweise gleichzeitig die APT-Option
APT::Periodic::Download-Upgradeable-Packages
eingeschaltet haben und
damit nachts automatisch alle aktualisierbaren Pakete herunterladen
lassen. Leeren Sie den Paketcache danach mit
apt-get clean
komplett, hat
das zur Folge, dass die frisch bezogenen Pakete wieder gelöscht werden
und ein nachfolgendes
apt-get upgrade
diese erneut herunterladen muss.
7.5.5. Automatisch und regelmäßig Aufräumen
Das manuelle Aufrufen der o.g. Kommandos kostet Zeit. Daher bieten APT
und
aptitude
unterschiedliche Möglichkeiten, um diese Vorgänge zu
automatisieren.
Das Paket
apt
bringt mit dem Skript
/etc/cron.daily/apt
einen Cron-Job mit, der diverse Aufgaben einmal pro Tag ausführen kann.
Konfiguriert wird das Skript ebenfalls über die Datei
/etc/apt/apt.conf
. Den Paketcache betreffen die beiden
Einstellungen
APT::Periodic::Download-Upgradeable-Packages
und
APT::Periodic::AutocleanInterval
Einstellung
APT::Periodic::Download-Upgradeable-Packages
Damit legen Sie die Regelmäßigkeit der Aktualisierung fest. Setzen Sie
den Wert auf
, so füllt der Cron-Job den Paketcache einmal pro Tag,
falls Paketaktualisierungen verfügbar sind. Setzen Sie den Wert hingegen
auf
, so lädt er verfügbare Paketaktualisierungen nur einmal die
Woche herunter. Der Wert
(Null) ist die Standardeinstellung und
deaktiviert die Funktionalität vollständig.
Einstellung
APT::Periodic::AutocleanInterval
Damit regeln Sie die Häufigkeit, mit der das Kommando
apt-get
autoclean
ausgeführt wird. Auch hier steht der Wert für den Abstand in
Tagen zwischen zwei Ausführungen. Der Wert
(Null) schaltet das
nächtliche Aufräumen ganz ab und ist auch die Standardvorgabe.
Die Dokumentation zu diesem Skript finden Sie in den Kommentarzeilen am
Anfang der Datei
/etc/cron.daily/apt
. Dort finden sich noch
weitere und feinere Einstellmöglichkeiten zum automatischen Aufräumen
des Paketcaches, z.B. anhand des Alters der Pakete.
aptitude
dagegen bietet eine Zeitsteuerung über Schalter und Optionen
an. Damit erfolgt das Aufräumen via
autoclean
oder
clean
vor oder
nach der Installation von Paketen automatisch:
Schalter
--clean-on-startup
entspricht dem Aufruf
aptitude clean
Schalter
--autoclean-on-startup
entspricht dem Aufruf
aptitude autoclean
Ähnliches ermöglicht Ihnen
aptitude
auch über die
Text-Modus-Bedienoberfläche. Setzen Sie in den Einstellungen unter
„Veraltete Paketdateien nach dem Laden von neuen Paketlisten löschen“
ein Häkchen, entspricht das der Konfigurationsoption
Aptitude::AutoClean-After-Update
. Damit löscht Aptitude nach jeder
Aktualisierung der Paketlisten (durch
aptitude
) alle Paketdateien aus
dem Paketcache, die nicht mehr von einem in
/etc/apt/sources.list
aufgeführten Paketmirror heruntergeladen
werden können.
Kapitel 8. Paketoperationen
8.1. Paketoperationen und deren Abfolge
Als Paketoperation verstehen wir hier im Buch ein Kommando oder einen
Aufruf eines Programms zur Paketverwaltung, mit dem Sie entweder den
aktuellen Paketbestand auf ihrem System ausgeben, in diesem Paketbestand
nach bestimmten Kriterien suchen oder Änderungen im lokalen Paketbestand
veranlassen. Für letzteres heißt das bspw. Paketlisten aktualisieren
oder modifizieren, Pakete hinzufügen und auch Pakete wieder
deinstallieren.
Wir besprechen die Paketoperationen in gleicher Reihenfolge. Den Anfang
machen Aufrufe ohne Änderung des Paketbestands, d.h. bspw.
Statusinformationen erhalten und die Recherche nach bestimmten
Kriterien (
Abschnitt 8.3, „Bekannte Paketnamen auflisten“
bis
Abschnitt 8.34, „Paketdatei nur herunterladen“
). Daran schließen sich Aufrufe an, die
den Paketbestand verändern, d.h. neue Pakete hinzufügen und einrichten
sowie Pakete deinstallieren und der Umgang mit Waisen
Abschnitt 8.35, „Installation zwischengespeicherter Pakete aus dem Paketcache“
bis
Abschnitt 8.46, „Paketstatusdatenbank reparieren“
). Den Abschluss bildet der Vorgang,
eine ganze Distribution auf den neuen Stand zu bringen oder zu einer
anderen Veröffentlichung zu wechseln (siehe
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
).
8.2. Paketlisten und Muster
Auch wenn bei den nachfolgend vorgestellten Paketoperationen und
Beispielen stets
Paketname
im Singular steht, können Sie beim Aufruf
einen oder mehrere exakte Paketnamen angeben. Diese Liste trennen Sie
durch Leerzeichen, wobei die Reihenfolge der genannten Pakete im
Allgemeinen keine Rolle spielt. Nachfolgend soll das an einem Aufruf mit
apt-get
zur Installation der Pakete
xpdf
kile
und
cssed
deutlich werden.
Installation der Pakete
xpdf
kile
und
cssed
mittels APT in einem Aufruf.
# apt-get install xpdf kile cssed
...
Zulässig sind ebenfalls ein Fragment eines Namens oder auch ein
Paketmuster über einen regulären Ausdruck. Dann werden alle Pakete
ausgewählt, die auf das Fragment bzw. Muster passen. Das betrifft
insbesondere die Kommandozeilenwerkzeuge
dpkg
, APT,
aptitude
und
ara
. Bei den graphischen Programmen wird das hingegen sehr
unterschiedlich gehandhabt.
Auflistung aller Dokumentationspakete zu
aptitude
über ein Muster.
# dpkg -l aptitude-doc*
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==================-==============-==============-==========================================
un aptitude-doc (keine Beschreibung vorhanden)
ii aptitude-doc-cs 0.6.8.2-1 all Czech manual for aptitude, a terminal-base
ii aptitude-doc-en 0.6.8.2-1 all English manual for aptitude, a terminal-ba
ii aptitude-doc-es 0.6.8.2-1 all Spanish manual for aptitude, a terminal-ba
ii aptitude-doc-fi 0.6.8.2-1 all Finnish manual for aptitude, a terminal-ba
ii aptitude-doc-fr 0.6.8.2-1 all French manual for aptitude, a terminal-bas
ii aptitude-doc-it 0.6.8.2-1 all Italian manual for aptitude, a terminal-ba
ii aptitude-doc-ja 0.6.8.2-1 all Japanese manual for aptitude, a terminal-b
Verwenden Sie das
multiarch
-Feature (siehe
Abschnitt 1.2.3, „Multiarch: Mehrere Architekturen gleichzeitig auf einem System“
), geben Sie hinter dem Paketnamen
noch einen Doppelpunkt und danach die gewünschte Architektur an. Damit
werden nur die Pakete berücksichtigt, die für die angegebene Architektur
bereitstehen. Benennen Sie keine Architektur explizit, werden die Pakete
ihrer Systemarchitektur benutzt.
Suche nach Paketen für die Architektur
i386
# dpkg -l "*:i386"
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii libc6:i386 2.19-11 i386 GNU C Library: Shared libraries
8.3. Bekannte Paketnamen auflisten
APT kann Ihnen ausgeben, welche Pakete es überhaupt kennt. Dazu verfügt
das Werkzeug
apt-cache
(aber nicht
apt
) über das Unterkommando
pkgnames
. Die Ausgabe, die Sie nach dessen Aufruf erhalten, hängt
von den von Ihnen genutzten Paketquellen und den darüber verfügbaren
Paketen ab.
Die nachfolgende Ausgabe listet die Pakete zusätzlich alphabetisch
aufsteigend sortiert und seitenweise auf. Im Aufruf kommen dazu die
beiden UNIX-Kommandos
sort
und
more
zum Einsatz.
Seitenweise und alphabetisch sortierte Ausgabe der Paketnamen, die APT kennt.
$ apt-cache pkgnames | sort | more
0ad
0ad-data
0ad-dbg
2ping
2vcard
3270-common
389-console
3dchess
...
Kennen Sie jedoch nur ein Fragment eines Paketnamens, gibt es verschiedene
Wege.
Der gebräuchliste Weg war für lange Zeit
apt-cache search -n
Suchmuster
. Seit APT 1.0 kann man sich aber das
-cache
sparen und
apt search -n
Suchmuster
verwenden. Allerdings sieht die Ausgabe
jeweils unterschiedlich aus, u.a. sind bei
apt
die Paketnamen noch
in grün hervogehoben und die Ausgabe ist mehrzeilig pro Paket.
In beiden Fällen schränkt der Schalter
-n
die Suche auf Paketnamen
inklusive bereitgestellter Paketnamen ein.
Will man
aptitude
verwenden, so braucht muss man statt dem
-n
an
das Suchmuster selbst
~n
vorne dranhängen und quoten, damit es von
der Kommandozeilen-Shell nicht als persönliches Verzeichnis eines
Nutzers interpretiert wurd:
aptitude search '~n …'
(Das Leerzeichen
nach
~n
ist optional. Im Beispiel unten wurde es weggelassen.)
Aptitude zeigt dann allerdings bei Systemen mit mehr als einer
installierten Architektur jedes Paket einmal pro Architektur an.
Suche nach dem Muster
lynx
in Paketnamen.
$ apt-cache search -n lynx
lynx - Klassischer Textmodus-Webbrowser (nicht graphisch)
lynx-common - Gemeinsame Dateien für Lynx
lynx-dbgsym - debug symbols for lynx
$ apt search -n lynx
Sortierung# Fertig
Volltextsuche# Fertig
lynx/bullseye,now 2.9.0dev.6-1 amd64 [Installiert,automatisch]
Klassischer Textmodus-Webbrowser (nicht graphisch)

lynx-common/bullseye,now 2.9.0dev.6-1 all [Installiert,automatisch]
Gemeinsame Dateien für Lynx

lynx-dbgsym/bullseye-debug,now 2.9.0dev.6-1 amd64 [installiert]
debug symbols for lynx

$ aptitude search '~nlynx'
i A lynx - Klassischer Textmodus-Webbrowser (nicht graphisch)
p lynx:i386 - Klassischer Textmodus-Webbrowser (nicht graphisch)
i A lynx-common - Gemeinsame Dateien für Lynx
v lynx-common:i386 - Gemeinsame Dateien für Lynx
i lynx-dbgsym - debug symbols for lynx
p lynx-dbgsym:i386 - debug symbols for lynx
Weiß man den Anfang des Paketnamens, aber den Rest nicht, kann man
auch noch
apt-cache pkgnames
mit Parameter verwenden oder aber eine
der o.g. Suchen mit dem Anker
zum Markieren des Anfangs der
Zeichenkette:
Suche nach dem Muster
links
am Anfang des Paketnamens.
$ apt-cache pkgnames links
links2
links
links-dbgsym
links2-dbgsym
$ apt-cache search -n '^links'
links - Textmodus-Webbrowser
links2 - Webbrowser für den grafischen und den Textmodus
links-dbgsym - debug symbols for links
links2-dbgsym - debug symbols for links2
$ apt search -n '^links'
Sortierung# Fertig
Volltextsuche# Fertig
links/bullseye,now 2.21-1+b1 amd64 [Installiert,automatisch]
Textmodus-Webbrowser

links-dbgsym/bullseye-debug,now 2.21-1+b1 amd64 [installiert]
debug symbols for links

links2/bullseye,now 2.21-1+b1 amd64 [Installiert,automatisch]
Webbrowser für den grafischen und den Textmodus

links2-dbgsym/bullseye,now 2.21-1+b1 amd64 [installiert]
debug symbols for links2

$ aptitude search '~n^links'
i A links - Textmodus-Webbrowser
p links:i386 - Textmodus-Webbrowser
i links-dbgsym - debug symbols for links
p links-dbgsym:i386 - debug symbols for links
i A links2 - Webbrowser für den grafischen und den Textmodus
p links2:i386 - Webbrowser für den grafischen und den Textmodus
i links2-dbgsym - debug symbols for links2
p links2-dbgsym:i386 - debug symbols for links2
Will man nur nach dem Ende eines Paketnamens suchen, so kommt man um
die Verwendung des Zeichenketten-Ende-Ankers
nicht umhin. Auch
dieser sollte wieder gequotet werden, um in der Kommandozeilen-Shell
nicht als Beginn einer Variablen angesehen zu werden.
Suche nach dem Muster
mlinks
am Ende eines Paketnamens.
$ apt-cache pkgnames | egrep 'mlinks$'
symlinks
python3-sphinx-paramlinks
$ apt-cache search -n 'mlinks$'
python3-sphinx-paramlinks - Sphinx extension to make param links linkable (Python 3 version)
symlinks - Scannen und Ändern symbolischer Links
$ apt search -n 'mlinks$'
Sortierung# Fertig
Volltextsuche# Fertig
python3-sphinx-paramlinks/unstable,unstable 0.5.0-1 all
Sphinx extension to make param links linkable (Python 3 version)

symlinks/unstable,testing,now 1.4-4 amd64 [Installiert,automatisch]
Scannen und Ändern symbolischer Links

$ aptitude search '~n mlinks$'
p python3-sphinx-paramlinks - Sphinx extension to make param links linkable (Python
i A symlinks - Scannen und Ändern symbolischer Links
p symlinks:i386 - Scannen und Ändern symbolischer Links
Daß eine Suche nach "links" nicht nur am Anfang oder Ende des
Paketnamens zu wesentlich mehr Treffern führt, sei dem Leser als Übung
überlassen.
Will man zwingend nur die Paketnamen sehen, gibt es ebenfalls mehrere
Möglichkeiten:
O.g. Ausgaben von
apt-cache
mittels
awk
cut
oder
sed
nach
dem ersten Leerzeichen abschneiden.
Die Ausgabe von
apt-cache pkgnames
mittels
grep
o.ä. durchsuchen.
dglob
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
mit der Option
-a
und einem Muster verwenden.
Da
dglob
einiges anders macht als in den o.g. Paketen, schauen wir
es uns hier getrennt an.
Das Werkzeug
dglob
setzt auf
grep-aptavail
und
grep-dctrl
auf um
die von APT heruntergeladenen Paketlisten zu durchsuchen. Im
Gegensatz zu
apt
apt-cache
und
aptitude
arbeitet es nicht mit
regulären Ausdrücken sondern mit Platzhaltern
(engl. "wildcards"). Dies ist ähnlich zu
dpkg -l
, allerdings sind
Platzhalter für beliebige Zeichenketten an Anfang und Ende des
Suchmusters bei
dglob
implizit.
Ebenfalls áhnlich zu
dpkg -l
listet
dglob ohne weitere Schalter nur
installierte Pakete auf. Mit dem Schalter `-a
ändern Sie seine
Verhaltensweise dahingehend, daß es alle bekannten Paketen in Erwägung
zieht — unabhängig davon, ob diese jeweils auf Ihrem System
installiert sind oder nicht. Ohne die Option beschränkt sich
dglob
nur auf die bereits installierten Pakete.
Suche nach
elinks
mit
dglob
dglob -a
und
dpkg -l
im Vergleich.
$ dpkg -l elinks
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
ii elinks 0.13.2-1+b1 amd64 advanced text-mode WWW browser
$ dpkg -l '*elinks*'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-===========================================
ii elinks 0.13.2-1+b1 amd64 advanced text-mode WWW browser
ii elinks-data 0.13.2-1 all advanced text-mode WWW browser - data files
un elinks-doc (keine Beschreibung vorhanden)
un elinks-lite (keine Beschreibung vorhanden)
$ dglob elinks
elinks:amd64
elinks-data:all
$ dglob -a elinks
elinks:amd64
elinks-data:all
elinks-doc:all
elinks:i386
elinks-dbgsym:amd64
elinks-dbgsym:i386
8.4. Paketstatus erfragen
Diese Aktion betrifft meist nur ein einzelnes Paket, welches auf dem
System installiert ist oder war. Im Alltag ergeben sich mehrere
Situationen, in denen das Wissen über den Zustand eines Pakets wichtig
ist.
Die Grundfrage ist häufig, ob derzeit ein bestimmtes Paket oder Programm
auf Ihrem Linuxsystem installiert ist, und falls ja, in welchem Zustand
befindet sich dieses Paket. Es kann vollständig oder nur teilweise
installiert sein, liegt in nicht konfiguriertem Status vor oder wurde
möglicherweise bereits wieder entfernt. Zu klären ist in dem Fall auch,
ob es vollständig entfernt wurde oder noch „Reste“ übrig sind. Dazu
zählen die Konfigurationsdateien zu den Paketen bzw. den Programmen
daraus. Darüberhinaus ist interessant, welche zusätzlichen Dateien
verfügbar sind, bspw. Übersetzungen bzw. Sprachpakete.
Eine kompakte Übersicht erhalten Sie mit Hilfe des Kommandos
dpkg -l
Paketname
. In
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
besprechen wir das genauer. Ausführlicher sind die Ausgaben zu den
dpkg
-Schaltern
-s
und
-I
sowie den Aufrufen von
aptitude show
apt-cache show
sowie
apt-mark
8.4.1.
dpkg -s
Paketname
und
dlocate -s
Paketname
Mit diesen beiden Aufrufen ermitteln Sie den Status eines installierten
Pakets. Die Langform zu
-s
ist
--status
. Intern greift
dpkg
auf
dpkg-query
zurück, so daß Sie die gleichen Schalter verwenden können.
Paketname bezeichnet hier den Namen eines Debianpakets.
Die Ausgabe beinhaltet bspw. die Paketfelder Paketname (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
), Status, Priorität (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
), Paketkategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
), installierte Größe,
Maintainer, Architektur ( siehe
Abschnitt 1.2, „Debian-Architekturen“
) und Version
(siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
) aus. Darunter listet
dpkg
die
dazugehörige, hinterlegte Paketbeschreibung auf.
Der nachfolgende Aufruf ist zudem identisch zu
grep-status -F Package
-X htop
, wobei Sie mit
-F
das entsprechende Paketfeld und mit
-X
den Paketnamen angeben. Das Kommando
grep-status
ist Bestandteil des
Pakets
dctrl-tools
[Debian-Paket-dctrl-tools]
Status des Pakets
htop
mittels
dpkg
ermitteln.
$ dpkg -s htop
Package: htop
Status: install ok installed
Priority: optional
Section: utils
Installed-Size: 195
Maintainer: Eugene V. Lyubimkin
Architecture: i386
Version: 1.0.1-1
Depends: libc6 (>= 2.3.4), libncursesw5 (>= 5.6+20070908), libtinfo5
Suggests: strace, ltrace
Description: interactive processes viewer
Htop is an ncursed-based process viewer similar to top, but it
allows one to scroll the list vertically and horizontally to see
all processes and their full command lines.
Tasks related to processes (killing, renicing) can be done without
entering their PIDs.
Homepage: http://htop.sourceforge.net
8.4.2.
dpkg -I
deb-Datei
Im Gegensatz zu
dpkg -s
verarbeitet der Schalter
-I
(Langform
--info
) lokal vorliegende deb-Dateien. Daraus extrahiert
dpkg
bzw.
dessen Hilfsprogramm
dpkg-deb
die Einträge der Steuerdatei sowie die
Paketinformationen.
Detailinformationen des Pakets
htop
mittels
dpkg
ermitteln.
$ dpkg -I htop_1.0.3-1_amd64.deb
neues Debian-Paket, Version 2.0.
Größe 75316 Byte: control-Archiv= 1156 Byte.
593 Byte, 17 Zeilen control
618 Byte, 10 Zeilen md5sums
185 Byte, 7 Zeilen * postinst #!/bin/sh
160 Byte, 5 Zeilen * postrm #!/bin/sh
Package: htop
Version: 1.0.3-1
Architecture: amd64
Maintainer: Eugene V. Lyubimkin
Installed-Size: 204
Depends: libc6 (>= 2.15), libncursesw5 (>= 5.6+20070908), libtinfo5
Suggests: strace, ltrace
Section: utils
Priority: optional
Homepage: http://hisham.hm/htop/
Description: interactive processes viewer
Htop is an ncursed-based process viewer similar to top, but it
allows one to scroll the list vertically and horizontally to see
all processes and their full command lines.
Tasks related to processes (killing, renicing) can be done without
entering their PIDs.
8.4.3.
apt-cache show
Paketname
apt-cache
ist Bestandteil des Debian-Pakets
apt
[Debian-Paket-apt]
. Der Aufruf
apt-cache show
Paketname
liefert ein
ähnliches Ergebnis wie obiges
dpkg -s
Paketname
, ist jedoch noch
ausführlicher. Neben einer übersetzten Paketbeschreibung (Lokalisierung,
sofern vorhanden) erscheinen zusätzlich die Debtags (siehe
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
) zum Paket, der Dateiname
und Pfad im Paketmirror und die GPG-Keys zur Validierung des Pakets
(siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
).
Status des Pakets
htop
mit
apt-cache
ermitteln.
$ apt-cache show htop
Package: htop
Version: 1.0.1-1
Installed-Size: 195
Maintainer: Eugene V. Lyubimkin
Architecture: i386
Depends: libc6 (>= 2.3.4), libncursesw5 (>= 5.6+20070908), libtinfo5
Suggests: strace, ltrace
Description-de: Interaktiver Prozessbetrachter
Htop ist ein ncurses-basierter Prozessbetrachter ähnlich wie top, jedoch
ermöglicht er Ihnen die Liste vertikal und horizontal zu durchlaufen, um
alle Prozesse und deren vollständige Kommandozeilen zu sehen.
Mit Prozessen verbundene Aufgaben wie das (zwangsweise) Beenden und die
Neufestlegung der Priorität können ohne Eingabe der PIDs erledigt werden.
Homepage: http://htop.sourceforge.net
Description-md5: 8eb5aa19b3c92a975dc78e2165f6688d
Tag: admin::monitoring, interface::text-mode, role::program, scope::utility,
uitoolkit::ncurses, use::monitor, works-with::software:running
Section: utils
Priority: optional
Filename: pool/main/h/htop/htop_1.0.1-1_i386.deb
Size: 71634
MD5sum: 9a12ed8d648a0b16a08f16aa06a6ee9c
SHA1: 25eb706b210a165efae3a149338c129c383b82df
SHA256: b41970322366d8a8fd174aa32b223dd54d05e4ab1dafddd97390e0fc5f17ed41
8.4.4.
apt-cache showpkg
Paketname
Desweiteren verfügt
apt-cache
über das Unterkommando
showpkg
. Primär
dient es dazu, die verfügbaren Paketvarianten samt deren Abhängigkeiten
und Übersetzungen darzustellen. Die Ermittlung der einfachen und
umgekehrten Paketabhängigkeiten besprechen wir ausführlicher unter
„Paketabhängigkeiten anzeigen“ in
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
Die nachfolgenden Ausgaben zeigen die Detailansicht für die Pakete
htop
und
openvpn
. Für ersteres steht nur ein Paket zur Verfügung,
bei dem zweiten hingegen eine aktualisierte Variante. Daher umfaßt die
Ausgabe zwei Einträge mit den Versionen 2.3.4-5 und 2.3.4-5+deb8u1,
wobei die letztgenannte Version noch auf dem Paketmirror liegt.
Detailansicht zum Paket
htop
via
apt-cache showpkg
(Debian 7
Wheezy
).
$ apt-cache showpkg htop
Package: htop
Versions:
1.0.1-1 (/var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages
MD5: 8eb5aa19b3c92a975dc78e2165f6688d
Description Language: de
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-de
MD5: 8eb5aa19b3c92a975dc78e2165f6688d
Description Language: en
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-en
MD5: 8eb5aa19b3c92a975dc78e2165f6688d

Reverse Depends:
education-common,htop
Dependencies:
1.0.1-1 - libc6 (2 2.3.4) libncursesw5 (2 5.6+20070908) libtinfo5 (0 (null)) strace (0 (null)) ltrace (0 (null))
Provides:
1.0.1-1 -
Reverse Provides:
Detailansicht zum Paket
openvpn
via
apt-cache showpkg
(Debian 8
Jessie
).
apt-cache showpkg openvpn
Package: openvpn
Versions:
2.3.4-5+deb8u1 (/var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_binary-amd64_Packages
MD5: 2ebe91e411d46309a61861db507e5c2f
Description Language: de
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_i18n_Translation-de
MD5: 2ebe91e411d46309a61861db507e5c2f
Description Language: en
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_i18n_Translation-en
MD5: 2ebe91e411d46309a61861db507e5c2f

2.3.4-5 (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_binary-amd64_Packages
MD5: 2ebe91e411d46309a61861db507e5c2f
Description Language: de
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_i18n_Translation-de
MD5: 2ebe91e411d46309a61861db507e5c2f
Description Language: en
File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_jessie_main_i18n_Translation-en
MD5: 2ebe91e411d46309a61861db507e5c2f

Reverse Depends:
openvpn:i386,openvpn
openvpn-auth-radius,openvpn 2
openvpn-auth-ldap,openvpn 2
network-manager-openvpn,openvpn 2.1~rc9
kvpnc,openvpn
gadmin-openvpn-server,openvpn
gadmin-openvpn-client,openvpn
eurephia,openvpn 2
collectd-core,openvpn
Dependencies:
2.3.4-5+deb8u1 - debconf (18 0.5) debconf-2.0 (0 (null)) libc6 (2 2.15) liblzo2-2 (0 (null)) libpam0g (2 0.99.7.1) libpkcs11-helper1 (2 1.11) libssl1.0.0 (2 1.0.0) init-system-helpers (2 1.18~) initscripts (2 2.88dsf-13.3) iproute2 (0 (null)) openssl (0 (null)) resolvconf (0 (null)) easy-rsa (0 (null)) openvpn:i386 (0 (null))
2.3.4-5 - debconf (18 0.5) debconf-2.0 (0 (null)) libc6 (2 2.15) liblzo2-2 (0 (null)) libpam0g (2 0.99.7.1) libpkcs11-helper1 (2 1.11) libssl1.0.0 (2 1.0.0) init-system-helpers (2 1.18~) initscripts (2 2.88dsf-13.3) iproute2 (0 (null)) openssl (0 (null)) resolvconf (0 (null)) easy-rsa (0 (null)) openvpn:i386 (0 (null))
Provides:
2.3.4-5+deb8u1 -
2.3.4-5 -
Reverse Provides:
8.4.5.
aptitude show
Paketname
Das Ergebnis des Aufrufs von
aptitude show
Paketname
kombiniert die
Ausgabe von
dpkg -s
mit Teilen von
apt-cache show
. Hervorzuheben
sind die vollständig übersetzte Ausgabe samt Paketbeschreibung
(Lokalisierung), die Paketflags (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
) und die Debtags
(siehe
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
) zum Paket.
Abbildung 8.1. Ausgabe der Statusinformationen zum Paket
htop
mittels
aptitude
8.4.6. Anfragen mit
apt-mark
apt-mark
ist ebenfalls ein Kommando aus dem Paket
apt
. Es zeigt
Ihnen einerseits die Pakete an, die bereits mit einem bestimmten
Paketflag (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
) versehen wurden, andererseits erlaubt
es Ihnen auch, diese Paketflags explizit zu setzen.
Mit den beiden Schaltern
showauto
und
showmanual
zeigen Sie die
automatisch bzw. manuell installierten Pakete an. Die nachfolgende
Ausgabe zeigt letzteres, auf automatisch installierte Pakete gehen wir
in
Abschnitt 8.10, „Automatisch installierte Pakete anzeigen“
genauer ein.
Manuell installierte Pakete anzeigen.
$ apt-mark showmanual '.*tex$'
dblatex
texlive-xetex
Für Pakete, deren aktueller Zustand gehalten werden soll, hilft Ihnen
dieser Aufruf mit dem Schalter
showhold
. Hier sehen Sie das in
Kombination mit den beiden Schaltern
hold
und
unhold
zum Setzen und
Entfernen der Markierung am Beispiel des Pakets
xpdf
Pakete, deren Zustand gehalten wird.
# apt-mark hold xpdf
xpdf auf Halten gesetzt.
# apt-mark showhold xpdf
xpdf
# apt-mark unhold xpdf
Halten-Markierung für xpdf entfernt.
Weiterführende Informationen zu den vier Schaltern
auto
manual
hold
und
unhold
erhalten Sie unter „Paketflags“ (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
), „Festlegen einer Paketversion durch explizites Setzen
einer Markierung mit
apt-mark
“ (siehe
Kapitel 16,
Ausgewählte Pakete nicht aktualisieren
) sowie in „Warum ist ein
Paket (nicht) installiert“ (siehe
Abschnitt 8.17, „Warum ist ein Paket installiert“
).
8.5. Liste der installierten Pakete anzeigen und deuten
Diese Aktion betrifft häufig nicht nur ein einzelnes Paket, sondern den
Gesamtbestand an Software, die auf Ihrem Linuxsystem installiert sind
oder waren. Im Alltag ergeben sich eine ganze Reihe von
Anwendungsfällen, bei denen diese Aktion durchgeführt wird.
Hintergrund für den
Fall 1
ist der Wunsch nach einem Überblick zum
Gesamtzustand eines Systems und vor allem der Software, die darauf
installiert ist. Das betrifft insbesondere die Rechnersysteme, die Sie
nicht selbst eingerichtet haben und deren Betreuung Ihnen obliegt, bspw.
Geräte im Auslieferungszustand oder im Rahmen der Wartung als
Bestandteil eines Kundenauftrags. Dabei kommt häufig die
Berücksichtigung „gewachsener Infrastruktur“ ins Spiel.
Fall 2
betrifft „großflächige“ Änderungen auf einem Rechnersystem.
Sie überprüfen, ob diese korrekt abgelaufen sind.
Fall 3
betrifft die
Entwicklung, hier ist die Fehlersuche bei den Paketwerkzeugen zu nennen.
Zu den konkreten Aktionen zählt weiterhin das Herausfinden, ob ein
bestimmtes Paket oder Programm auf Ihrem Rechnersystem überhaupt
installiert ist, und falls ja, ob dieses vollständig installiert und
(bereits) konfiguriert wurde. Wurde es hingegen entfernt, ist zu klären,
ob es vollständig entfernt wurde oder noch „Reste“ übrig sind, bspw.
paketspezifische Konfigurationsdateien.
Für die Kommandozeile existieren mittlerweile drei grundlegende
Möglichkeiten. Einerseits ist das
dpkg -l
, andererseits
aptitude search '~i'
und drittens
apt list --installed
. Die
Darstellung in den graphischen Programme klären wir weiter unten genauer.
8.5.1.
dpkg -l
Paketname
(Langform
--list
dpkg
wird für diese Aufgabe sehr häufig genutzt. Intern leitet
dpkg
den
Aufruf an das Abfragewerkzeug
dpkg-query
weiter.
Ausgabe von
dpkg
interpretieren
Die ersten drei Spalten jeder ausgegebenen Zeile interpretieren Sie
anhand der
Tabelle 8.1, „Paketzustand deuten“
. Die Begriffe in Klammern nennen die
englischen Übersetzungen – i.d.R. ist das die Langform der jeweiligen
Option. Mit Ausnahme von
für
aWaited trigger
entspricht dabei
der verwendete Buchstabe in der Spalte jeweils dem Anfangsbuchstaben der
Langform der Option.
Tabelle 8.1. Paketzustand deuten
gewünschte Aktion durch den Paketmanager
Paketstatus
Fehler-Schalter
: Unbekannt (
unknown
: Paket ist nicht installiert (
not
installed
(leer): kein Fehler
: Installieren (
installed
: nur die Konfigurationsdatei ist
vorhanden (
configured
: eine Neuinstallation ist notwendig (
reinstall
: Halten (
hold
: Paket ist nur halb installiert (
half
installed
: Entfernen (
remove
: Paket wurde entpackt (
unpacked
: Vollständig Löschen (
purge
: Fehlgeschlagene
Konfiguration (
failed
: Trigger erwartet (
aWaited trigger
: Trigger anhängig (
trigger
: Installiert (
installed
Kleinbuchstaben zeigen dabei an, dass alles im grünen Bereich ist.
Großbuchstaben heben hingegen Fehlerfälle oder auch Zustände hervor, die
ihrerseits eine genauere Begutachtung und eine Aktion zu diesem Paket
erfordern. Obige Darstellung mit Buchstaben verwendet sowohl
dpkg
, als
auch
aptitude
Tabelle 8.2, „Alltägliche Kombinationen zum Paketzustand“
zeigt Ihnen die
Status-Kombinationen, die Ihnen häufig im Alltag begegnen werden.
Tabelle 8.2. Alltägliche Kombinationen zum Paketzustand
Paketstatus
Beschreibung
ii
das Paket ist vollständig und fehlerfrei installiert sowie
konfiguriert.
rc
das Paket wurde gelöscht, aber die Konfigurationsdateien sind
noch gespeichert (Abkürzung für
removed, configured, no error
).
un
unbekanntes, nicht installiertes Paket (Abkürzung für
unknown,
not installed
).
hi
das Paket ist installiert, aber auf
hold
gesetzt. Bei
Softwareaktualisierungen wird das Paket nicht berücksichtigt und in
seinem derzeitigen Zustand belassen (siehe Paketflags in
Abschnitt 2.15, „Lokale Paketmarkierungen“
).
Vollständige Paketliste anzeigen
Ohne die Angabe des Paketnamens zeigen Sie alle Pakete und Paketreste an, die
auf Ihrem System derzeit installiert sind. In nachfolgender Paketliste zeigen
die einzelnen Spalten nacheinander den Paketzustand, den Namen des Pakets
(siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
), dessen Version und die dazugehörige
Kurzbeschreibung dazu.
Vollständige Paketliste mit
dpkg
$ dpkg -l
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Beschreibung
+++-=========================================-====================================-==========================
====================================================
ii a2ps 1:4.14-1.1 GNU a2ps - 'Anything to Po
stScript' converter and pretty-printer
rc bsh 2.0b4-12 Java scripting environment
(BeanShell) Version 2
...
un xfce4-icon-theme (keine Beschreibung vorhanden)
Liste anhand von Filtern einschränken
dpkg
akzeptiert Paketnamen als Filter. Geben Sie ein oder mehrere Pakete
als Parameter durch Leerzeichen getrennt an, erhalten Sie nur Informationen
zu diesen benannten Paketen. Das nachfolgende Beispiel listet ausschließlich
die Informationen zum Paket
nmap
auf.
Informationen zu einem ausgewählten Paket anzeigen.
$ dpkg -l nmap
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
ii nmap 7.93+dfsg1-1 amd64 The Network Mapper
Weiterhin versteht
dpkg
als Parameter auch Paketmuster. Die Angabe des
Paketmusters lehnt sich an Reguläre Ausdrücke an, entspricht diesem jedoch nur
teilweise. Das nachfolgende Beispiel zeigt, wie Sie alle Pakete auflisten, die
die Zeichenkette
map
im Paketnamen besitzen und dabei über ein Präfix aus
beliebigen Zeichen verfügen. Als Suchmuster kommt
*map
zum Einsatz, wobei der
für alle Zeichen in beliebiger Menge steht.
Suche nach Paketen anhand eines Musters.
dpkg -l '*map'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
un bitmap (keine Beschreibung vorhanden)
ii nmap 7.93+dfsg1-1 amd64 The Network Mapper
un ruby-net-imap (keine Beschreibung vorhanden)
un xmodmap (keine Beschreibung vorhanden)
un xstdcmap (keine Beschreibung vorhanden)
un zenmap (keine Beschreibung vorhanden)
Eine Einschränkung auf bestimmte Zeichen erreichen Sie über eckige Klammern im
Muster. Die Angabe
*[nt]map
passt auf alle Namen bestehend aus beliebigen
Zeichen (
) gefolgt von einem
oder
[nt]
) und der Zeichenkette
map
. Gefunden werden die drei Pakete
bitmap
nmap
und
zenmap
, wobei
nur das Paket
nmap
installiert ist und die anderen beiden Pakete nicht.
Suche nach Paketen anhand eines ausgefeilten Musters.
$ dpkg -l '*[nt]map'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
un bitmap (keine Beschreibung vorhanden)
ii nmap 7.93+dfsg1-1 amd64 The Network Mapper
un zenmap (keine Beschreibung vorhanden)
Ausgabe minimieren
Geht es Ihnen lediglich um die Namen der derzeit vollständig installierten Pakete
ohne deren Versionsnummer und Beschreibung, haben Sie drei Möglichkeiten zur
Lösung — a)
dpkg-query
mit einem speziellen Formatstring für die Ausgabe in
Kombination mit
egrep
awk
und
sort
, b) die Kombination aus
dpkg
egrep
awk
und
sort
sowie c) die Verwendung von
dpkg-awk
dpkg
selbst bietet von
sich aus bislang keinen entsprechenden, einzelnen Schalter an, der diese
spezifische Ausgabe ermöglicht.
Für den
Fall a)
nutzen Sie den Schalter
-W
(Langform
--show
) und den
Formatstring
-f='${db:Status-Abbrev} ${binary:Package}\n'
. Dabei kürzt
-f
die Langform
--showformat
ab. Die Angabe
'${db:Status-Abbrev}'
liefert
Ihnen den Installationsstatus des Pakets und
$'{binary:Package}\n'
den
Paketnamen aus der Paketbeschreibung samt Zeilenumbruch am Ende der Zeile.
Der vollständige Aufruf ist dann wie folgt:
Nur die Paketnamen ausgeben (
dpkg-query
).
$ dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' * | egrep "^ii" | awk '{ print $2 }' | sort
aapt
acl
acpi
adduser
adwaita-icon-theme
...
Fall b)
ist kürzer und kombiniert die Werkzeuge
dpkg
egrep
awk
und
sort
miteinander:
Nur die Paketnamen ausgeben (
dpkg
egrep
awk
und
sort
kombiniert).
$ dpkg -l | egrep "^ii" | awk ' {print $2} ' | sort
aapt
acl
acpi
adduser
adwaita-icon-theme
...
Der dritte
Fall c)
benutzt das Werkzeug
dpkg-awk
aus dem gleichnamigen Paket
[Debian-Paket-dpkg-awk]
. Das Paket gehört nicht zur Standardinstallation und
ist daher von ihnen vor der Benutzung nachzuinstallieren.
dpkg-awk
wertet die
beiden Dateien
/var/lib/dpkg/status
und
/var/lib/dpkg/available
aus.
Mit dem nachfolgenden Aufruf erhalten Sie eine Liste aller Pakete, die
auf ihrem System gerade installiert sind.
dpkg-awk
filtert alle Zeilen
heraus, auf die der regulräre Ausdruck
Status: .* installed$
passt. Mit der
Angabe
Package
weisen Sie
dpkg-awk
an, nur in die Felder mit den Paketnamen
zu durchsuchen.
Die Liste der installierten Pakete mit
dpkg-awk
ermitteln.
$ dpkg-awk "Status: .* installed$" -- Package
Package: libasan0

Package: libvorbisfile3

Package: libquadmath0

Package: libxkbfile1

...
Obige Ausgabe bearbeiten Sie mit UNIX/Linux-Tools weiter, bspw. mit
cut
oder
sort
, um die Ausgabe ihren Wünschen anzupassen.
8.5.2. Suche mit
aptitude
Das Werkzeug
aptitude
kennt dafür das Unterkommando
. Nach diesem
erwartet
aptitude
entweder einen Paketnamen oder das Flag
~i
für
„installierte Pakete“ (Langform
?installed
). Geben Sie beides an, ignoriert
aptitude
den Paketnamen.
Ergebnis ist eine Liste aller installierten Pakete. Daraus filtern wir im
nachfolgenden Beispiel mittels
grep
nur die Zeilen heraus, in denen das
Wort
texlive
enthalten ist.
Wie bereits oben genannt, verwendet
aptitude
in der Ausgabe die
gleichen Buchstaben wie
dpkg
(siehe
Tabelle 8.1, „Paketzustand deuten“
). Der
Buchstabe
bezeichnet ein installiertes Paket,
in der dritten
Spalte markiert „automatisch installiert“ und deutet auf eine
automatisch erfüllte Paketabhängigkeit hin (siehe dazu
Abschnitt 8.10, „Automatisch installierte Pakete anzeigen“
). Daneben sehen Sie in der
Ausgabe noch den Namen und die Kurzbeschreibung zum jeweiligen Paket.
aptitude
listet die installierten LaTeX-Pakete auf.
$ aptitude search '~i' | grep texlive
i texlive - TeX Live: Eine anständige Auswahl der TeX-
i A texlive-base - TeX Live: Grundlegende Programme und Datei
i A texlive-bibtex-extra - TeX Live: Extra BibTeX styles
i A texlive-binaries - Binärdateien für TeX Live
i A texlive-common - TeX Live: Basiskomponenten
i A texlive-doc-base - TeX Live: Dokumentation für TeX Live
Geht es Ihnen nur um die Namen der installierten Pakete auf ihrem System, hilft
folgende Kombination aus
aptitude
sed
und
awk
weiter:
Paketliste mittels
aptitude
ausgeben.
$ aptitude search '~i' | sed -E 's/i [A ]? //'| awk ' { print $1 } '
aapt
acl
acpi
adduser
adwaita-icon-theme
alsa-base
...
Die Angabe
-E 's/i [A ]? //'
bei
sed
aktiviert zunächst erweiterte Reguläre
Ausdrücke (Schalter
-E
) und ersetzt danach alle Vorkommen der Zeichenkette
aus einem kleinen
gefolgt von einem Leerzeichen, einem möglichen
oder
Leerzeichen sowie einem abschließenden Leerzeichen durch nichts (es löscht die
Zeichen aus der Zeile). Die Angabe von
' { print $1 } '
bei
awk
gibt danach
lediglich erste Spalte jeder Zeile aus, die den Paketnamen enthält. Alle
weiteren Informationen, die
aptitude
bereitgestellt hatte, entfallen.
8.5.3.
apt list --installed
Seit der Version 1.0 verfügt
apt
ebenfalls über einen Schalter
list
. In
Verbindung mit dem Schalter
--installed
erhalten Sie eine Ausgabe aller
derzeit installierten Pakete. Jede Zeile der Ausgabe beinhaltet den Paketnamen,
den Status der Veröffentlichung, die Versionsnummer, die Architektur und den
Status der Installation.
Vollständige Paketliste anzeigen
Ohne weitere Angaben erhalten Sie eine vollständige Paketliste. Die Ausgabe
sieht dann so aus:
apt
listet die installierten Pakete auf.
$ apt list --installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Auflistung...
aapt/oldstable,now 1:7.0.0+r33-1 amd64 [Installiert,automatisch]
acl/oldstable,now 2.2.52-3+b1 amd64 [installiert]
acpi/oldstable,now 1.7-1+b1 amd64 [installiert]
adduser/oldstable,now 3.115 all [installiert]
adwaita-icon-theme/oldstable,now 3.22.0-1+deb9u1 all [Installiert,automatisch]
...
Liste anhand von Filtern einschränken
Analog zu
dpkg
kann auch
apt
mit Filtern umgehen, um darüber die Ausgabe
einzuschränken.
apt
akzeptiert dazu als Parameter sowohl eine Liste von
Paketnamen, als auch Muster. Das nachfolgende Beispiel schränkt die Ausgabe
auf die beiden Pakete
nmap
und
nmap-common
ein.
Liste auf bestimmte Pakete eingrenzen.
$ apt list --installed nmap nmap-common
Auflistung… Fertig
nmap-common/stable,stable,now 7.93+dfsg1-1 all [Installiert,automatisch]
nmap/stable,now 7.93+dfsg1-1 amd64 [installiert]
Für den Umgang mit Mustern folgt
apt
dem gleichen Prinzip wie
dpkg
. Das
nachfolgende Beispiel zeigt die Recherche nach allen installierten Paketen,
die die Zeichenkette
map
im Namen beinhalten. Die Angabe eines Sterns (
vor und nach der Zeichenkette interpretiert
apt
als alle Zeichen in beliebiger
Menge.
Liste mit der Angabe eines Musters eingrenzen.
$ apt list --installed '*map*'
Auflistung… Fertig
libchromaprint1/stable,now 1.5.1-2+b1 amd64 [Installiert,automatisch]
libdevmapper-event1.02.1/stable,now 2:1.02.185-2 amd64 [Installiert,automatisch]
libdevmapper1.02.1/stable,now 2:1.02.185-2 amd64 [installiert]
libunicode-map-perl/stable,now 0.112-13+b1 amd64 [Installiert,automatisch]
nmap-common/stable,stable,now 7.93+dfsg1-1 all [Installiert,automatisch]
nmap/stable,now 7.93+dfsg1-1 amd64 [installiert]
xbitmaps/stable,stable,now 1.1.1-2.2 all [Installiert,automatisch]
Ausgabe minimieren
Um die Ausgabe auf die Paketnamen einzugrenzen, helfen Ihnen wiederum die
beiden Werkzeuge
awk
und
tail
weiter.
awk
filtert den Paketnamen aus
jeder Zeile heraus und
tail
entsorgt die ersten vier Zeilen inklusive der
Warnung. Die Angabe
2>1
hinter
apt
lenkt zuvor noch den Fehlerkanal
stderr
auf die Standardausgabe
stdout
um.
apt
listet die installierten Pakete auf (Paketliste).
$ apt list --installed 2>1 | awk -F '/' ' { print $1 } ' | tail +4
aapt
acl
acpi
adduser
adwaita-icon-theme
...
8.5.4. Weitere Möglichkeiten
Graphische Programme wie beispielsweise Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) und SmartPM (siehe
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) verwenden
keine Buchstaben zur Kennzeichnung des Paketstatus, sondern nutzen
stattdessen verschiedenfarbige Kästchen („Icons“). In
Abbildung 8.2, „Icons zur Darstellung des Paketstatus“
sehen Sie alle Möglichkeiten in der vollständigen
Übersicht. Installierte Pakete erkennen Sie an der grünen Farbe,
weiß/hellgrau kennzeichnet nicht installierte Pakete und rot steht hier
für defekte Pakete (Status „broken“).
Abbildung 8.2. Icons zur Darstellung des Paketstatus
8.6. Liste der installierten Kernelpakete anzeigen
Bei dieser Aufgabe hilft Ihnen das Werkzeug
dlocate
[Debian-Paket-dlocate]
und zeigt Ihnen an, welche Linux-Kernel und
dazugehörigen Pakete auf Ihrem Linuxsystem installiert sind. Es kennt
dazu zwei Aufrufvarianten –
dlocate -k
für die Basisinformationen und
dlocate -K
für eine ausführlichere Darstellung.
Die Basisvariante enthält lediglich eine Auflistung der installierten
Pakete und zeigt daher nur den Paketnamen (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
) an. Die Ausgabe erfolgt dabei ohne
Sortierung.
Auflistung der installierten Kernelpakete mit
dlocate
$ dlocate -k
linux-image-686-pae
linux-headers-3.2.0-4-686-pae
linux-image-2.6-686
linux-image-3.2.0-4-686-pae
linux-headers-3.2.0-4-common
linux-headers-686-pae
Die ausführliche Darstellung entspricht einer Ausgabe von
dpkg
und zeigt den Installationsstatus, den Paketnamen, die Version und die
Paketbeschreibung.
Auflistung der installierten Kernelpakete analog zu
dpkg
$ dlocate -K
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-====================-====================-==========================================================
ii linux-headers-3.2.0- 3.2.51-1 i386 Header files for Linux 3.2.0-4-686-pae
ii linux-headers-3.2.0- 3.2.51-1 i386 Common header files for Linux 3.2.0-4
ii linux-headers-686-pa 3.2+46 i386 Header files for Linux 686-pae configuration (meta-pack
ii linux-image-2.6-686 3.2+46 i386 Linux for modern PCs (dummy package)
ii linux-image-3.2.0-4- 3.2.51-1 i386 Linux 3.2 for modern PCs
ii linux-image-686-pae 3.2+46 i386 Linux for modern PCs (meta-package)
8.7. Liste der installierten, nicht-freien Pakete anzeigen
8.7.1. Recherche mit
aptitude
Mit Hilfe einer spezialisierten Suchanfrage ermöglicht
aptitude
das Aufspüren
nicht-freier Pakete. Es erwartet die Angabe eines Bereichs mit Hilfe des
Schlüsselwortes
section
gefolgt vom Namen des Bereichs. Hier listen wir
beispielhaft alle installierten Pakete aus dem Bereich
non-free-firmware
auf.
Suche nach installierten Paketen aus dem Bereich non-free-firmware.
$ aptitude search '~i ?section(non-free-firmware)'
i amd64-microcode - Processor microcode firmware for AMD CPUs
i firmware-amd-graphics - Binary firmware for AMD/ATI graphics chips
i firmware-iwlwifi - Binary firmware for Intel Wireless cards
i firmware-realtek - Binary firmware for Realtek wired/wifi/BT adapters
Zudem können mehrere Bereiche in einer Anfrage miteinander kombiniert werden.
Hier sind es die zwei Bereiche
non-free
und
non-free-firmware
Suche nach installierten Paketen aus den beiden Bereichen non-free und non-free-firmware.
$ aptitude search '~i ?section(non-free) |~i ?section(non-free-firmware)'
i amd64-microcode - Processor microcode firmware for AMD CPUs
i firmware-amd-graphics - Binary firmware for AMD/ATI graphics chips
i firmware-iwlwifi - Binary firmware for Intel Wireless cards
i firmware-realtek - Binary firmware for Realtek wired/wifi/BT adapters
i icc-profiles - ICC color profiles for use with color profile aware software
aptitude
unterstützt auch Wildcards. Damit vereinfacht sich obiger Aufruf wie folgt:
Vereinfachter Aufruf zur Suche mit Wildcards.
$ $ aptitude search '~i ?section(non-free*)'
...
8.7.2. Recherche mit
check-dfsg-status
(vormals
vrms
Mit dem Kommando
check-dfsg-status
(ab Debian 12
Bookworm
bzw.
vrms
(bis Debian 11
Bullseye
) aus dem jeweils gleichnamigen
Paket
check-dfsg-status
[Debian-Paket-check-dfsg-status]
bzw.
vrms
[Debian-Paket-vrms]
erhalten Sie eine Übersicht, welche
nicht-freien Pakete auf Ihrem System installiert sind.
vrms
steht
dabei als Abkürzung für „Virtual Richard M. Stallman“ und erinnert
an den Initiator der GNU-Projektes. Da dieser in den letzten Jahren zu
einer eher umstrittenen Person wurde, wurde das Paket 2022 umbenannt
in
check-dfsg-status
, einem deutlich neutraleren und auch
debian-spezifischeren Namen.
Das nachfolgende Beispiel listet die einzelnen Pakete auf, die aus den
beiden Bereichen
non-free
und
contrib
ausgewählt wurden, Neben jedem
Paket sehen Sie eine Kurzbeschreibung. Die Darstellung entspricht dem
Schalter
-e
(Langform
--explain
) und ist seit Debian 8
Jessie
die
Standardeinstellung.
Ausgabe von
vrms -e
auf einem Desktop-System (Debian 7
Wheezy
).
$ vrms -e

Non-free packages installed on efho-mobil

firmware-iwlwifi Binary firmware for Intel PRO/Wireless 3945 and 802.11
nautilus-dropbox Dropbox integration for Nautilus
openttd-opensfx sound set for use with the OpenTTD game
opera Fast and secure web browser and Internet suite
skype Skype
unrar Unarchiver for .rar files (non-free version)

Contrib packages installed on efho-mobil

flashplugin-nonfree Adobe Flash Player - browser plugin

6 non-free packages, 0.2% of 2696 installed packages.
1 contrib packages, 0.0% of 2696 installed packages.
Ausgabe von
check-dfsg-status
auf einem Desktop-System (Debian 12
Bookworm
).
$ check-dfsg-status
Non-free packages installed on c6

cpp-12-doc documentation for the GNU C preprocessor (cpp)
gcc-12-doc documentation for the GNU compilers (gcc, gobjc, g++)
gdb-doc The GNU Debugger Documentation
intel-media-va-driver-non-free VAAPI driver for the Intel GEN8+ Graphics family
intel-microcode Processor microcode firmware for Intel CPUs
libretro-snes9x Libretro wrapper for Snes9x
Reason: No commercial distribution
manpages-posix Manual pages about using POSIX system
manpages-posix-dev Manual pages about using a POSIX system for developmen
tar-doc documentation for the tar package
tegrarcm Tool to upload payloads in Tegra SoC recovery mode
unrar Unarchiver for .rar files (non-free version)
Reason: Modifications problematic
wap-wml-tools Wireless Markup Language development and test tools

Contrib packages installed on c6

anbox Android in a box
cpp-doc documentation for the GNU C preprocessor (cpp)
gcc-doc documentation for the GNU compilers (gcc, gobjc, g++)
gcc-doc-base several GNU manual pages
libdvd-pkg DVD-Video playing library - installer
torbrowser-launcher helps download and run the Tor Browser Bundle

12 non-free packages, 0.2% of 6022 installed packages.
6 contrib packages, 0.1% of 6022 installed packages.

Benötigen Sie hingegen lediglich eine Paketliste ohne zusätzliche
Informationen, hilft Ihnen der Schalter
-s
(Langform
--sparse
weiter. Der Name jedes Pakets wird in einer einzelnen Zeile ausgegeben.
Nach den Paketen aus dem Bereich
non-free
listet
vrms
die
contrib
-Pakete auf. Die Auflistung beider Bereiche wird durch eine
schlichte Leerzeile voneinander getrennt und erlaubt somit eine leichte
Weiterverarbeitung, bspw. in einem Shellskript.
Ausgabe von
vrms -s
auf einem Desktop-System (Debian 8
Jessie
).
$ vrms -s
firmware-iwlwifi
ldraw-parts
skype

flashplugin-nonfree
virtualbox
virtualbox-dkms
virtualbox-guest-dkms
virtualbox-guest-utils
virtualbox-guest-x11
virtualbox-qt
8.8. Neue Pakete anzeigen
Zu den neuen Paketen zählen die Pakete, die derzeit nicht installiert
sind bzw. die noch nie installiert waren. Wurde ein Paket von Ihnen
deinstalliert, aber die Konfigurationsdatei blieb erhalten, gilt das
entsprechende Paket hingegen nicht mehr als neu. Haben Sie jedoch die
Konfigurationsdatei mittels
purge
ebenfalls gelöscht, hat
aptitude
keine Erinnerung mehr an das Paket und betrachtet es wieder als neu.
aptitude
verfügt mit
~N
(Langform
?new
) über ein Suchmuster, um
diese Pakete aufzuspüren. Jede ausgegebene Zeile beginnt mit dem
Paketstatus — hier der Kleinbuchstabe
zur Kennzeichnung als
neues
Paket
— , gefolgt vom Paketnamen und der Kurzbeschreibung zum Paket.
Auflistung aller neuen Pakete mittels
aptitude
(Auszug).
$ aptitude search '~N'
p 0ad - Echtzeit-Strategiespiel über antike Kriegs
p 0ad-data - Real-time strategy game of ancient warfare
p 0ad-dbg - Echtzeit-Strategiespiel über antike Kriegs
p 2ping - Ping-Hilfswerkzeug, um gerichteten Paketve
p 2vcard - Perl-Skript zur Konvertierung eines Adress
...
Die Werkzeuge
dpkg
apt
und
apt-get
verfügen nicht über einen
entsprechenden Schalter, um neue Pakete aufzulisten.
8.9. Pakete nach Prioritäten finden
Wie bereits in „Paket-Priorität und essentielle Pakete“ in
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
beschrieben, ist jedem
Debianpaket eine bestimmte Wichtigkeit zugeordnet. Dazu zählen
erforderlich (
required
), wichtig (
important
), standard (
standard
),
optional (
optional
), extra (
extra
) und die Markierung essentiell
essential
).
Mit
aptitude
können Sie die Paketliste nach diesen Mustern filtern.
Dafür kennt das Programm die Suchoption
?priority(wichtigkeit)
bzw.
~pWichtigkeit
als Kurzform. Als
Wichtigkeit
tragen Sie das
entsprechende englische Schlüsselwort ein, bspw.
extra
für
?priority(extra)
. Nachfolgend sehen Sie die Pakete, die entsprechend
markiert wurden.
Auflistung der
extra
-Pakete durch
aptitude
$ aptitude search '?priority(extra)'
p 0ad-dbg - Echtzeit-Strategiespiel über antike Kriegs
p 389-console - 389 Management Console
p 4digits - Zahlenratespiel oder »Bulls and Cows«
p 4store - Engine zur Datenbankspeicherung und -abfra
p 7kaa-dbg - Seven Kingdoms Ancient Adversaries - Debug
...
Essentielle Pakete bezeichnen grundlegende Pakete im Paketbestand.
aptitude
verfügt über eine spezielle Option
~E
(alternativ als
Langform
?essential
), um diese essentiellen Pakete anzuzeigen. Dazu
rufen Sie es wiederum mit dem Unterkommando
auf und erhalten
eine Ausgabe auf dem Terminal, die ähnlich zu nachfolgender ist:
Auflistung der essentiellen Pakete durch
aptitude
$ aptitude search '~E'
i A apt - Paketverwaltung für die Befehlszeile
i base-files - Verschiedene Dateien für das Debian-Basiss
i base-passwd - Debian Base System Password- und Group-Dat
i bash - GNU Bourne Again SHell
i bsdutils - Minimalauswahl von Kommandos aus 4.4BSD-Li
i coreutils - Grundlegende GNU-Werkzeuge
i A dash - POSIX-konforme Shell
i debianutils - Verschiedene Hilfsprogramme speziell für D
i A diffutils - Hilfsprogramme zum Dateivergleich
i dpkg - Debian-Paketverwaltungssystem
i e2fsprogs - ext2-/ext3-/ext4-Dateisystemwerkzeuge
i findutils - Werkzeuge zum Auffinden von Dateien - find
i grep - GNU grep, egrep und fgrep
i gzip - GNU-Werkzeuge zur Dateikomprimierung
i hostname - Werkzeug zum Einrichten und Anzeigen des H
i A libc-bin - Die »Embedded GNU C Library«: Binärdateien
i login - System-Login-Werkzeuge
i mount - Tools für das Mounten und die Manipulation
i ncurses-base - Beschreibungen gebräuchlicher Terminaltype
i ncurses-bin - terminalbezogene Programme und Handbuchsei
i perl-base - Minimales Perl-System
i sed - Der GNU Streameditor sed
i sysvinit - System-V-artige Init-Werkzeuge
i sysvinit-utils - System-V-artige Init-Werkzeuge
i tar - GNU-Version des tar-Archivierungsprogramms
i util-linux - Verschiedene System-Kommandos
Auffällig an obiger Auflistung ist, dass diese das Paket
apt
enthält,
obwohl wir in
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
geschrieben
haben, dass Sie ein autarkes System auch problemlos ohne APT betreiben
können. Der Grund hierfür ist, dass APT sich selbst als essentiell
ansieht und sich deswegen selbst nicht deinstallieren will. Da Aptitude
zum Teil APTs Bibliotheken benutzt, sieht es diesen Fall
genauso
[24]
8.10. Automatisch installierte Pakete anzeigen
Darunter fallen Pakete, die automatisch von der Paketverwaltung auf
Ihrem System installiert wurden. Das geschieht, wenn Abhängigkeiten von
anderen Paketen erfüllt werden müssen.
dpkg
kann diese Information
nicht auswerten, jedoch stehen Ihnen mit
apt-mark
und
aptitude
gleich zwei Varianten auf dem Terminal bereit.
8.10.1.
apt-mark
benutzen
Das Paket
apt
[Debian-Paket-apt]
beinhaltet das Werkzeug
apt-mark
Über das Unterkommando
showauto
erhalten Sie alle entsprechend
markierten Pakete. Möchten Sie die Liste einschränken, akzeptiert
apt-mark
als weiteren Parameter ein Textfragment des Paketnamens oder
einen passenden regulären Ausdruck. Das nachfolgende Beispiel zeigt
Ihnen alle automatisch installierten Pakete, deren Paketnamen auf die
Zeichenfolge
tex
enden. Das Muster ist als regulärer Ausdruck
formuliert.
Automatisch installierte Pakete mit
apt-mark
anzeigen.
$ apt-mark showauto '.*tex$'
jadetex
luatex
texlive-luatex
Eine ausführliche Beschreibung zu den genutzten Paketflags sowie ein
Beispiel für das Aufspüren manuell installierter Pakete mit
apt-mark
erhalten Sie in
Abschnitt 2.15.4, „Lesen und Anzeigen einer Markierung mit
apt-mark
8.10.2.
aptitude
benutzen
Auf der Kommandozeile suchen Sie im Paketbestand Ihres Linuxsystems
mittels
aptitude
über das Unterkommando
und dem speziellen
Muster
~M
(Langform
?automatic
). Sie erhalten danach eine Liste, die
den Paketstatus, den Paketnamen und eine kurze Paketbeschreibung
enthält. In der Ausgabe sind alle Pakete mit dem Buchstaben
für
automatisch installiert
gekennzeichnet.
Automatisch installierte Pakete mit
aptitude
anzeigen.
$ aptitude search '~M' | more
i A a2ps - GNU a2ps - »Alles nach PostScript«-Konvert
i A abiword-common - Effiziente, mächtige Textverarbeitung, unt
i A abiword-plugin-grammar - Grammatik-Prüfung für AbiWord
i A abiword-plugin-mathview - Gleichungs-Editor-Erweiterung für AbiWord
i A accountsservice - Abfragen und Ändern von Informationen von
i A acl - Programme für Zugriffskontroll-Listen
...
Die gleiche Liste erhalten Sie über die Textoberfläche. Dazu filtern Sie
die Paketliste mit der Taste
und tragen im Suchfeld entweder die
Kurzform
~M
oder die Langvariante
?automatic
ein. Das Ergebnis
entspricht
Abbildung 8.3, „Ansicht der automatisch installierten Pakete in
aptitude
Abbildung 8.3. Ansicht der automatisch installierten Pakete in
aptitude
8.11. Obsolete Pakete anzeigen
Softwarepakete und insbesondere deren Verfügbarkeit unterliegen einem
stetigen Wandel. Im Alltag kommt es ab und zu vor, dass ein Paket,
welches Sie auf ihrem System installiert haben, nicht mehr von einem
Paketmirror in aktualisierter Form beziehen können. Die Ursachen dafür
können sehr vielfältig sein
[Hertzog-Obsolete-Packages]
Das Paket wurde umbenannt und ist inzwischen unter einem anderen Namen
verfügbar. Der Maintainer des Pakets hat die Übergangspakete (siehe
„transitional packages“ in
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
) für die
aktuelle Veröffentlichung unter dem bisherigen Namen belassen. Später
wurden die Übergangspakete entfernt.
Die letzte verfügbare Version der Software könnte unter einem anderen
Namen paketiert worden sein. Entweder waren die Menge der Änderungen so
wichtig, dass eine automatische Aktualisierung auf die letzte verfügbare
Version nicht bevorzugt wurde, oder einfach weil der Maintainer Ihnen
als Benutzer die Möglichkeit geben möchte, mehrere Versionen parallel zu
installieren. Ersteres betrifft beispielsweise
request-tracker
und
nagios
, letzteres den Linuxkernel, den Python-Interpreter und viele
Bibliotheken.
Der Entwickler („upstream author“) hat bereits vor längerer Zeit
aufgehört, die Software weiter zu warten und niemand anderes hat die
Aufgabe von ihm übernommen. Daraufhin hat sich der zuständige Maintainer
entschlossen, das Paket aus Debian wieder zu entfernen. Üblicherweise
existieren in diesem Fall adäquate Alternativen im Paketbestand.
Das Paket war seit längerer Zeit in Debian verwaist, niemand hat sich
des Pakets angenommen und zusätzlich gab es nur wenige Nutzer. Das
Debian-Team zur Qualitätssicherung könnte um dessen Entfernung gebeten
haben.
Das Paket ist ein Kernel-Modul und wurde mit dem Werkzeug
module-assistant
[Debian-Paket-module-assistant]
gebaut und
installiert
[25]
Das Paket wurde mit
dpkg -i
installiert und war nie über eine
APT-Paketquelle verfügbar.
Diese Pakete werden als
obsolete Pakete
bezeichnet und profitieren
nicht oder nicht mehr von den regelmäßigen Sicherheitsaktualisierungen.
Je länger diese Pakete auf Ihrem System erhalten bleiben, um
wahrscheinlicher wird es, dass sich aufgrund der Abhängigkeiten zu
anderen Paketen die Aktualisierung ihres gesamten Softwarebestands
verzögert und vor allem schwieriger gestaltet. Die Probleme bei der
Auflösung von Paketabhängigkeiten nehmen zu.
8.11.1. Recherche auf der Kommandozeile
Mit Hilfe von
aptitude
, dessen Suchfunktion und dem speziellen Muster
~o
(Langform
?obsolete
) spüren Sie diese obsoleten Pakete auf. Trotz
des Namens des Suchmusters werden diese Pakete in der
Text-Modus-Bedienoberfläche von
aptitude
unter dem Eintrag
Veraltete
und selbst erstellte Pakete
(engl.: „Obsolete and Locally Created
Packages“) aufgelistet. Dies wird insbesondere dem letzten o.g. Punkt
gerecht.
Die nachfolgende Ausgabe umfasst den Paketstatus, den Paketnamen und die
entsprechende Kurzbeschreibung zum Paket. Sie sehen dabei auch, dass
hierbei für das Paket
pdfstudio
keine Kurzbeschreibung vorliegt und
dieses damit nicht die üblichen Qualitätsstandards von Debian erfüllt.
Suche nach obsoleten Paketen mittels
aptitude
$ aptitude search '~o'
i cupswrapperhl2250dn - Brother HL2250DN CUPS wrapper driver
i foxitreader - FoxitReader is a browsing program designed for read
i gtkdiskfree - A program to show free/used space on filesystems
i hl2250dnlpr - Brother HL-2250DN LPR driver
i language-env - simple configuration tool for native language envir
i A libdvdcss2 - Simple foundation for reading DVDs - runtime librar
i A libqt3-mt - Qt GUI Library (Threaded runtime version), Version
i odeskteam - oDesk Team - complete time-logging and verification
i opera - Fast and secure web browser and Internet suite
i pdfedit - Editor for manipulating PDF documents
i pdfstudio -
i skype - Wherever you are, wherever they are
i tpp - text presentation program
i youtube-dl - downloader of videos from YouTube and other sites
8.11.2. Recherche in graphischen Programmen
Bei diesen kann u.E. lediglich Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) die
obsoleten Pakete anzeigen. Bei den anderen Programmen fehlt bislang
diese Möglichkeit.
Dazu wählen Sie zunächst aus der linken Spalte den Knopf
Status
aus. Aus der darüberliegenden Liste selektieren Sie
danach den Eintrag
installiert (lokal oder veraltet)
. Als
Ergebnis erhalten Sie eine Paketliste, welche nur noch die obsoleten
Pakete enthält. In
Abbildung 8.4, „Ansicht der obsoleten Pakete in Synaptic“
wurden daraus
beispielhaft
foxitreader
und
libdvdcss2
markiert.
Abbildung 8.4. Ansicht der obsoleten Pakete in Synaptic
8.11.3. Umgang mit diesen Paketen
Ein obsoletes Paket wird aus Sicht der Paketverwaltung wie alle anderen
Pakete behandelt und bleibt auf Ihrem Linuxsystem unverändert erhalten,
solange dessen Abhängigkeiten nicht verletzt werden. Problematisch ist
jedoch die Aktualisierung, da kein Nachfolgepaket existiert. In diesem
Fall bestehen nur zwei Möglichkeiten – das Beibehalten der aktuell
installierten Version oder der Wechsel auf eine andere, ähnliche
Software. Ersteres ist insofern bedenklich, da es die Aktualisierung
anderer Pakete über die definierten Paketabhängigketen verhindert.
Dieser Schritt ist genauso abzuwägen wie der Wechsel zu einer anderen
Software, welche vielleicht nicht in allen Punkten ihren Erwartungen und
Bedürfnissen entspricht.
8.12. Aktualisierbare Pakete anzeigen
Sowohl APT als auch
aptitude
zeigen Ihnen an, für welche Pakete eine
neuere Version bereitsteht. Alle Werkzeuge bieten dafür recht
unterschiedliche Parameter und Ausgaben auf dem Terminal.
8.12.1.
apt-get
verwenden
APT mit dem Kommando
apt-get upgrade -u
(Langform
--show-upgraded
zeigt Ihnen an, welche Pakete aktualisiert werden. Sie erhalten eine
Ausgabe, die der nachfolgenden ähnelt. Die mögliche Option
-s
(Langform
--simulate
) simuliert die Ausführung der Aktualisierung.
Letzteres ist nützlich, um zu sehen, was sich ändern wird, wenn Sie das
Kommando ausführen.
Anzeige aller Pakete mit
apt-get
, für die eine neue Version bereitsteht.
# 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 ]
...
8.12.2.
apt
benutzen
Das Werkzeug
apt
kennt für diesen Fall das Unterkommando
list
und
den Schalter
--upgradable
. In der Praxis sieht das wie folgt aus
(die nachfolgende Ausgabe stammt von einem Ubuntu 18
Bionic
):
Aktualisierbare Pakete mit
apt
anzeigen.
$ apt list --upgradable
Auflistung... Fertig
aspell/bionic-updates,bionic-security 0.60.7~20110707-4ubuntu0.1 amd64 [aktualisierbar von : 0.60.7~20110707-4]
distro-info-data/bionic-updates,bionic-updates,bionic-security,bionic-security 0.37ubuntu0.6 all [aktualisierbar von : 0.37ubuntu0.5]
...
8.12.3.
aptitude
verwenden
aptitude
kennt für diesen Zweck die Suchoption
~U
. Diese steht als
Kurzform für
?upgradable
Aktualisierbare Pakete mit
aptitude
anzeigen.
$ aptitude search '~U'
i A cups-common - Common UNIX Printing System(tm) - gemeinsa
i iceweasel - Webbrowser auf Basis von Firefox
i A libc-bin - Die »Embedded GNU C Library«: Binärdateien
i A libc-dev-bin - Embedded GNU C Library: Entwicklungsbinärd
i libc6 - Die »Embedded GNU C Library«: Laufzeitbibl
i A libc6-dev - Die »Embedded GNU C Library«: Entwicklungs
...
8.12.4. Synaptic verwenden
Bei den graphischen Programmen zur Paketverwaltung kann lediglich
Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) die aktualisierbaren Pakete anzeigen.
Dazu wählen Sie zunächst den Knopf
Benutzerdefinierte Filter
aus der
linken Spalte aus. Aus der darüberliegenden Liste selektieren Sie danach
den Eintrag
Aktualisierbar (Upstream)
. Als Ergebnis erhalten Sie eine
Paketliste, welche nur noch die Pakete enthält, die erneuerbar sind
(siehe
Abbildung 8.5, „Ansicht der aktualisierbaren Pakete in Synaptic“
).
Abbildung 8.5. Ansicht der aktualisierbaren Pakete in Synaptic
8.13. Verfügbare Versionen eines Paketes anzeigen
8.13.1.
aptitude
verwenden
aptitude
bietet Ihnen mehrere Wege an, um diese Frage zu beantworten.
Zur Verfügung stehen die beiden Unterkommandos
versions
und
Um alle verfügbaren Varianten eines Pakets für alle Veröffentlichungen
anzuzeigen, nutzen Sie die
aptitude
-Option
versions
. Nachfolgende
Ausgabe illustriert die Recherche nach den Paketen, in denen die
Zeichenkette
tzdata
im Paketnamen enthalten ist. Hier werden zudem
ausschließlich Pakete aus der Veröffentlichung
stable
bezogen. Die
Sortierung erfolgt paketweise, d.h. zunächst erhalten Sie eine Zeile mit
dem Paketnamen und darunter zusätzliche Informationen zur verfügbaren
Version. Die erste Spalte zeigt dabei den Paketstatus an, danach die
Versionsnummer, die Veröffentlichung und als letztes die Priorität
(siehe dazu „Veröffentlichungen mischen“ in
Kapitel 20,
Veröffentlichungen mischen
).
Die verfügbaren Versionen zu den Paketen
tzdata
anzeigen.
$ aptitude versions 'tzdata'
Paket tzdata:
p 2015f-0+deb8u1 stable 500
i 2015g-0+deb8u1 stable- 500

Paket tzdata-java:
p A 2015f-0+deb8u1 stable 500
i A 2015g-0+deb8u1 stable- 500
Wünschen Sie nur eine kompakte Ausgabe zu einem konkreten Paket ohne
Darstellung des Paketnamens, helfen Ihnen die beiden Schalter
--show-package-names
mit dem Wert
never
und
--group-by
mit dem
Wert
none
weiter. Ersteres blendet den Paketnamen aus, während der
zweite Schalter die Gruppierung in der Ausgabe deaktiviert.
Ausführlicher gehen wir auf die Gruppierung in
Abschnitt 10.11, „
aptitude
-Gruppierung“
ein.
Kompakte Ausgabe ohne Paketname.
$ aptitude versions 'tzdata-java' --show-package-names=never --group-by=none
p A 2015f-0+deb8u1 stable 500
i A 2015g-0+deb8u1 stable- 500
Aktualisierbare Pakete finden Sie mit Hilfe des Suchfilters
search '~U'
bzw.
search '?upgradable'
in der Langform. Ergebnis ist eine Liste der
Pakete, welche den Installationsstatus, den Paketnamen und die kurze
Paketbeschreibung umfasst.
Ausgabe von
aptitude
zur Liste der aktualisierbaren Pakete.
$ aptitude search '~U'
i acpi-support - Skripte zur Verwaltung von ACPI-Ereignissen
i acpi-support-base - Skripte zur Verarbeitung grundlegender ACPI-Ereignisse
i iceweasel - Webbrowser auf Basis von Firefox
i A libc-bin - Die »Embedded GNU C Library«: Binärdateien
i A libc-dev-bin - Embedded GNU C Library: Entwicklungsbinärdaten
i libc6 - Die »Embedded GNU C Library«: Laufzeitbibliotheken
i A libc6-dev - Die »Embedded GNU C Library«: Entwicklungsbibliotheken
i libc6-i686 - »Embedded GNU C Library«: Laufzeitbibliotheken [optimi
i A libmozjs24d - Mozilla SpiderMonkey JavaScript library
i A xulrunner-24.0 - XUL + XPCOM application runner
8.13.2. Mit
apt
stöbern
Auch
apt
liefert mittlerweile einen Schalter mit, der Ihnen bei der
Recherche nach neuen Versionen weiterhilft. Dieser heißt
--all-versions
und entfaltet seine Wirkung in Kombination mit dem Unterkommando
list
Ohne weitere Angabe eines Paketes überprüft es alle Pakete im Repository.
Das nachfolgende Beispiel stammt von einem Debian 9
Stretch
, während
bereits der Nachfolger 10
Buster
als stabile Veröffentlichung gilt. Sie
sehen, dass
apt
die beiden Pakete
mc
und
xpdf
überprüft und die Pakete
der Veröffentlichung
oldstable
zuordnet.
mc
war bereits installiert, da
die Konfigurationsdateien noch vorhanden sind.
xpdf
ist hingegen noch
vollständig installiert. Beide Pakete stehen in einer neueren Version im
Repository bereit.
apt
listet nach dem Namen die Paketversion und die
Architektur auf.
Status der installierten Pakete anzeigen.
$ apt list --all-versions mc xpdf
Auflistung... Fertig
mc/oldstable,now 3:4.8.18-1 amd64 [Konfiguration-verbleibend]

xpdf/oldstable,now 3.04-4 amd64 [installiert]

8.13.3.
apt-show-versions
verwenden
Als gleichwertige Alternative zu
aptitude
und
apt
steht Ihnen auch das
Werkzeug
apt-show-versions
aus dem gleichnamigen Debianpaket zur Verfügung
[Debian-Paket-apt-show-versions]
(siehe auch „Aus welchem Repo kommen die
Pakete“ in
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
). Dieses Paket gehört
nicht zur Standardinstallation und ist daher zusätzlich zu installieren.
Die nachfolgende Ausgabe zeigt den Status des Pakets
base-files
an. Daraus
erkennen Sie, daß dieses Paket installiert ist und für dieses eine neuere
Version bereitsteht.
apt-show-versions
zeigt Ihnen zudem an, auf welche
konkrete Version sie das bestehende Paket aktualisieren können.
Kompakte Ausgabe mittels
apt-show-versions
$ apt-show-versions base-files
base-files:amd64/jessie 8+deb8u2 upgradeable to 8+deb8u3
Gibt es keine aktuellere Version, sehen Sie die folgende Ausgabe:
Ausgabe von
apt-show-versions
für ein aktuelles Paket.
$ apt-show-versions xpdf
xpdf:amd64/stretch 3.04-4 uptodate
Ist das Paket jedoch noch nicht auf ihrem System installiert, ist es
etwas schmallippig:
Ausgabe von
apt-show-versions
für ein noch nicht installiertes Paket.
$ apt-show-versions mc
mc:amd64 not installed
8.13.4.
apt-cache
benutzen
Das Werkzeug
apt-cache
verfügt über das Unterkommando
madison
. Damit
finden Sie heraus, welche Pakete derzeit von den Spiegelservern in einer
neueren Version verfügbar sind. Nachfolgender Ausdruck zeigt das für das
Paket
apt-doc
[Debian-Paket-apt-doc]
Ausgabe von
apt-cache
mit dem Unterkommando
madison
für
apt-doc
unter Debian 9
Stretch
auf einem System mit der Architektur
i386
$ apt-cache madison apt-doc
apt-doc | 1.4.6 | http://ftp.ch.debian.org/debian stretch/main i386 Packages
apt | 1.4.6 | http://ftp.ch.debian.org/debian stretch/main Sources
8.13.5.
rmadison
einsetzen
Möchten Sie hingegen wissen, welche Versionen für die jeweiligen
Veröffentlichungen bereitstehen, hilft Ihnen das Werkzeug
rmadison
aus
dem Paket
devscripts
weiter
[Debian-Paket-devscripts]
. Es fragt dazu
per HTTP eine regelmäßig aktualisierte Quelle im Internet ab, d.h. Sie
brauchen Internetzugriff, um
rmadison
zu nutzen.
Als Parameter erwartet
rmadison
einen oder mehrere Paketnamen, nach
denen es dann recherchiert. Als Ergebnis sehen Sie in der linken Spalte
den Paketnamen, gefolgt von der Versionsnummer des Pakets, der
Veröffentlichung und am Schluss die Architektur, für die das Paket
verfügbar ist. Im nachfolgenden Beispielaufruf ist die Architektur
all
, da es sich um das Dokumentationspaket
apt-doc
handelt, welches
auf allen Plattformen gleich ist.
Auflistung der verfügbaren Paketversionen mit
rmadison
$ rmadison apt-doc
apt-doc | 0.9.7.9+deb7u7 | oldoldstable | all
apt-doc | 1.0.9.8 | oldstable-kfreebsd | all
apt-doc | 1.0.9.8.4 | oldstable | all
apt-doc | 1.4.6 | stable | all
apt-doc | 1.4.6 | testing | all
apt-doc | 1.5~beta1 | unstable | all
Obige Ausgabe umfaßt die vier Spalten Paketname, Versionsnummer,
Veröffentlichung und Architektur. Möchten Sie die Ausgabe hingegen auf
eine bestimmte Veröffentlichung oder Architektur einschränken,
akzeptiert
rmadison
die Schalter
-a
Architektur
und
-s
Veröffentlichung
. Um zu sehen, welche Version des Paketes
base-files
für die Veröffentlichung Debian 9
Stretch
und die Architektur
amd64
bereitstehen, nutzen Sie den folgenden Aufruf:
Gefilterte Auflistung der verfügbaren Paketversionen mit
rmadison
$ rmadison -s stretch -a amd64 base-files
base-files | 9.9 | stable | amd64
8.13.6.
grep-available
und
grep-aptavail
benutzen
In eine ähnliche Richtung gehen die beiden Werkzeuge
grep-available
und
grep-aptavail
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
Beide liefern Ihnen Informationen darüber, ob und in welcher Version das
von Ihnen angefragte Paket aus den Paketquellen zur Verfügung steht.
Während
grep-available
weitestgehend die Informationen ausgibt, die Sie
mittels
dpkg -s
erhalten, liefert Ihnen
grep-aptavail
die
vollständigen Informationen, so bspw. auch, wo Sie das Paket in der
Verzeichnishierarchie der Paketquellen finden. Nachfolgendes Beispiel
zeigt die Recherche anhand des Pakets
xpdf
Paketinformationen zu
xpdf
$ grep-aptavail -PX xpdf
Package: xpdf
Version: 3.04-4
Installed-Size: 371
Maintainer: Debian QA Group
Architecture: amd64
Replaces: xpdf-common, xpdf-reader
Provides: pdf-viewer
Depends: libc6 (>= 2.4), libgcc1 (>= 1:3.0), libpoppler64 (>= 0.48.0), libstdc++6 (>= 5), libx11-6, libxm4 (>= 2.3.4), libxt6
Recommends: poppler-utils, poppler-data, gsfonts-x11, cups-bsd
Conflicts: xpdf-common, xpdf-reader
Description: Portable Document Format (PDF) reader
Homepage: http://www.foolabs.com/xpdf
Description-md5: fa7a14f325304cc49bbc0086a88d330e
Tag: implemented-in::c++, interface::graphical, interface::x11,
role::program, scope::application, uitoolkit::motif, use::viewing,
works-with-format::pdf, works-with::text, x11::application
Section: text
Priority: optional
Filename: pool/main/x/xpdf/xpdf_3.04-4_amd64.deb
Size: 159144
MD5sum: 8341b3ced6214b35185fdb42d8e7dcd7
SHA256: 926673359583d0e4ecd1f57774642303e5fed5d95ad90b5debde6df4c43e8237
8.14. Aus welchem Repo kommen die Pakete
Nutzen Sie Pakete aus verschiedenen Paketquellen in
/etc/apt/sources.list
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
), ist
es hilfreich zu wissen, woher APT ein Paket bei der Installation oder
Aktualisierung entnehmen würde. Bei der Beantwortung dieser Frage helfen
Ihnen die Programme
apt-cache
apt-show-versions
apt
und
aptitude
weiter – aber jedes auf seine Art.
8.14.1. Paketquellen untersuchen mit
apt-cache policy
Dazu rufen Sie
apt-cache
mit dem Schalter
policy
und
ohne
Angabe
eines Pakets auf. Das Programm untersucht daraufhin jede einzelne
Paketquelle, die Sie in
/etc/apt/sources.list
eingetragen haben. Das
Ergebnis der Analyse ist zweispaltig. In der linken Spalte erscheint ein
Zahlenwert zur Priorität des jeweiligen Eintrags, wie er von
apt-pinning
genutzt wird (siehe dazu
Kapitel 23,
Paketformate mischen
). In der
rechten Spalte sehen Sie die Paketquelle anhand der heruntergeladenen,
lokalen Paketliste mit zusätzlichen Informationen wie bspw. der
Veröffentlichung oder des Distributionsbereichs. Nachfolgende
Darstellung zeigt die Ausgabe für eine Standardinstallation von Debian
Wheezy
in der Version 7.5 mit dem Nutzungsschwerpunkt Deutschland.
Bewertung der Paketquellen mit
apt-cache policy
$ apt-cache policy
Paketdateien:
100 /var/lib/dpkg/status
release a=now
500 http://security.debian.org/ wheezy/updates/non-free Translation-en
500 http://security.debian.org/ wheezy/updates/main Translation-en
500 http://security.debian.org/ wheezy/updates/contrib Translation-en
500 http://security.debian.org/ wheezy/updates/non-free i386 Packages
release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=non-free
origin security.debian.org
500 http://security.debian.org/ wheezy/updates/contrib i386 Packages
release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=contrib
origin security.debian.org
500 http://security.debian.org/ wheezy/updates/main i386 Packages
release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=main
origin security.debian.org
500 http://ftp.de.debian.org/debian/ wheezy/non-free Translation-en
500 http://ftp.de.debian.org/debian/ wheezy/main Translation-en
500 http://ftp.de.debian.org/debian/ wheezy/main Translation-de_DE
500 http://ftp.de.debian.org/debian/ wheezy/main Translation-de
500 http://ftp.de.debian.org/debian/ wheezy/contrib Translation-en
500 http://ftp.de.debian.org/debian/ wheezy/non-free i386 Packages
release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=non-free
origin ftp.de.debian.org
500 http://ftp.de.debian.org/debian/ wheezy/contrib i386 Packages
release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=contrib
origin ftp.de.debian.org
500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=main
origin ftp.de.debian.org
Mit Pinning verwaltete Pakete:
8.14.2. Informationen für ein bestimmtes Paket erhalten
Geben Sie hingegen beim Aufruf als Parameter einen Paketnamen an, prüft
apt-cache
, ob das Paket bereits auf Ihrem System installiert ist oder
ob es ein neueres Paket gibt und falls ja, von welchem Paketmirror das
Paket in diesem Fall käme.
Beispiel 1
zeigt das Vorgehen anhand des Pakets
gdm3
. Im
vorliegenden Fall ist dieses bereits installiert (Status von
dpkg
Falls es das noch nicht wäre, käme das Paket aus dem deutschen
Debian-Repository.
Verfügbarkeit für das Paket
gdm3
feststellen.
$ apt-cache policy gdm3
gdm3:
Installiert: 3.4.1-8
Installationskandidat: 3.4.1-8
Versionstabelle:
*** 3.4.1-8 0
500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
100 /var/lib/dpkg/status
Beispiel 2
betrifft das Paket
linux-libc-dev
. Dieses ist bereits in
Version 3.2.51-1 installiert, aber es gibt eine aktuellere Variante
(3.2.57-3) sowie zusätzlich eine Sicherheitsaktualisierung
(Security-Update) mit der Versionsnummer 3.2.46-1+deb7u1. In diesem Fall
ist die Version 3.2.57-3 der Installationskandidat, da dieses Paket die
aktuellste Variante darstellt.
Verfügbarkeit für das Paket
linux-libc-dev
feststellen.
$ apt-cache policy linux-libc-dev
linux-libc-dev:
Installiert: 3.2.51-1
Installationskandidat: 3.2.57-3
Versionstabelle:
3.2.57-3 0
500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
*** 3.2.51-1 0
100 /var/lib/dpkg/status
3.2.46-1+deb7u1 0
500 http://security.debian.org/ wheezy/updates/main i386 Packages
Als
Beispiel 3
steht das Paket
kteatime
im Fokus. Dieses ist noch
nicht installiert und könnte nachgezogen werden. Dabei käme das Paket
aus dem deutschen Debian-Repository.
Verfügbarkeit für das Paket
kteatime
feststellen.
$ apt-cache policy kteatime
kteatime:
Installiert: (keine)
Installationskandidat: 4:4.8.4-1
Versionstabelle:
4:4.8.4-1 0
500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
8.14.3. Verfügbare Paketversionen ermitteln
Hier spielen die Programme
apt-cache
rmadison
aptitude
apt
und
apt-show-versions
ihre Stärken aus. Darauf gehen wir ausführlich in
Abschnitt 8.13, „Verfügbare Versionen eines Paketes anzeigen“
ein.
8.15. Installationsgröße eines Pakets
Die Frage, wieviel Platz ein installiertes Paket auf dem Speichermedium
belegt, beantworten Sie am besten mit dem Aufruf
dlocate -du Paketname
[Debian-Paket-dlocate]
. Als Ergebnis erhalten Sie eine Auflistung mit
einer Datei pro Zeile, bei der die jeweilige Größe in der ersten Spalte
in Kilobyte angegeben ist. Die letzte Zeile summiert die Einzelwerte
auf. Nachfolgendes Listing zeigt den Aufruf für das Paket
htop
Ermittlung der Installationsgröße des Pakets
htop
mit
dlocate
$ dlocate -du htop
136 /usr/bin/htop
4 /usr/share/applications/htop.desktop
4 /usr/share/doc/htop/AUTHORS
8 /usr/share/doc/htop/changelog.Debian.gz
8 /usr/share/doc/htop/changelog.gz
4 /usr/share/doc/htop/copyright
4 /usr/share/doc/htop/README
4 /usr/share/man/man1/htop.1.gz
4 /usr/share/menu/htop
4 /usr/share/pixmaps/htop.png
180 insgesamt
Möchten Sie den benötigten Speicherplatz bereits vor der Installation
wissen, hilft Ihnen
aptitude
weiter. Mit Hilfe des zusätzlichen
Schalters
-Z
ergänzt
aptitude
die Größenangabe hinter jedem Paket,
hier beispielhaft für
aptitude-doc-it
und
aptitude-doc-ru
. Wird ein
vor der Zahl dargestellt, wird dieser Speicherplatz zur Installation
des Paketes benötigt, ein
vor der Zahl gibt hingegen den frei
werdenden Platz an, wenn das Paket entfernt wird. Die Gesamtsumme der
Änderungen erfahren Sie in der Statusnachricht darunter.
Ausgabe der Installationsgröße eines Pakets mit
aptitude
# aptitude -Z install aptitude-doc-it aptitude-doc-ru
Die folgenden NEUEN Pakete werden zusätzlich installiert:
aptitude-doc-it <+1.082 kB> aptitude-doc-ru <+1.408 kB>
0 Pakete aktualisiert, 2 zusätzlich installiert, 0 werden entfernt
und 14 nicht aktualisiert.
636 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken
werden 2.490 kB zusätzlich belegt sein.
...
8.16. Größtes installiertes Paket finden
8.16.1. dpkg
dpkg
bzw.
dpkg-query
ist in der Lage, die Größe eines installierten Paketes
anzuzeigen. Es benötigt dafür eine spezielle Suchanfrage bestehend aus dem
Parameter
-Wf
gefolgt von den beiden Spalten
Installed-size
(Installationsgröße)
und
Package
(Paketname) für das Ausgabeformat. Ergebnis ist eine alphabetisch
sortierte Liste anhand der Paketnamen. Mit Hilfe der drei UNIX-Kommandos
column
sort
und
head
erhalten wir die zehn Softwarepakete, die den meisten Speicherplatz
belegen, ausgegeben in absteigender Reihenfolge. In der linken Spalte sehen Sie die
Paketgröße und in der rechten Spalte den Paketnamen.
Aufspüren der zehn größten installierten Softwarepakete.
$ dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t | sort -nr | head
1414534 texlive-fonts-extra
398647 linux-image-6.1.0-12-amd64
398283 linux-image-6.1.0-10-amd64
334238 fonts-noto-extra
271679 llvm-14-dev
217530 firefox-esr
206065 texlive-lang-english
187651 openjdk-17-jre-headless
168399 pandoc
138224 libboost1.74-dev
8.16.2. dpigs
Mit dem Programm
dpigs
[26]
aus
dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
zeigen Sie
die Programme bzw. Programmpakete an, die den meisten Speicherplatz auf
ihrem Debiansystem belegen. Es wertet dazu die Ausgabe des Kommandos
grep-status
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
aus. Ausführlicher besprechen wir die Werkzeuge im Abschnitt Schlagworte
verwenden (Debtags) (siehe
Abschnitt 13.6, „Suche anhand der Schlagworte“
)].
Ein Aufruf ohne weitere Parameter listet Ihnen die zehn größten
Speicherfresser auf ihrem System auf. Dabei enthält die erste Spalte die
Größe in Kilobyte und die zweite Spalte den Paketnamen.
Ausgabe von
dpigs
$ dpigs
399871 texlive-fonts-extra
377071 texlive-latex-extra-doc
129158 libreoffice-core
91551 pdfstudio
88963 libgl1-mesa-dri
86913 texlive-lang-greek
86446 texlive-pstricks-doc
80298 libwine
80178 openjdk-6-jre-headless
80175 linux-image-3.2.0-4-686-pae
dpigs
verfügt nur über einige wenige, aber durchaus nützliche
Schalter. Um beispielsweise die Anzahl der ausgegebenen Pakete zu
begrenzen, nutzen Sie die Option
-nZahl
(Langform
--lines=Zahl
),
wobei
Zahl
der Wert für die gewünschte Anzahl ist. Der Schalter
-S
zeigt die Pakete an, die hingegen die größten Quelldaten haben. Mit dem
Schalter
-H
rechnet
dpigs
die Größenangaben in menschlich lesbare
Werte um. Der Schalter
-H
steht hierbei als Abkürzung für
human
readable
. Kombinieren Sie die drei letztgenannten Schalter, sieht die
Recherche nach den fünf Paketen, die am meisten Quellcode benötigen,
folgendermaßen aus:
Ausgabe von
dpigs
mit Einschränkung auf die fünf Spitzenreiter für den Quelltext.
$ dpigs -S -n5 -H
1.0G texlive-extra
299.7M libreoffice
274.7M texlive-base
131.4M chromium-browser
120.5M calligra
8.16.3.
aptitude
aptitude
kann mit dem o.g. vorgestellten Programm
dpigs
problemlos
mithalten. Es macht nur ein wenig mehr Mühe, die gewünschten
Informationen zu erhalten.
Mit dieser Schrittfolge erhalten Sie eine entsprechend sortierte Liste in
aufsteigender Reihenfolge in der Text-Modus-Oberfläche:
Mit
Ctrl
oder
F10
öffnen Sie die Menüleiste.
Dort wählen Sie den Eintrag
Ansichten
Neue einfache Paketansicht
aus.
Darin schränken Sie nun die Ansicht auf die installierten Pakete ein.
Dazu drücken Sie
(für „limit“) und geben als Filter
~i
für
„nur installierte Pakete“ ein. Den Vorgang schließen Sie mit der
Eingabetaste ab.
Nun fehlt nur noch die passende Sortierung. Diese erhalten Sie durch
das Drücken von
und der Eingabe von
installsize
. Mit
der Eingabetaste schließen Sie den Vorgang ab.
Jetzt springen Sie mit der
Ende
-Taste ans Ende der Liste und
sehen die schlimmsten Plattenplatzverbraucher ihres Systems.
Im Terminal finden Sie die zehn Pakete mit dem meisten
Plattenplatzverbrauch durch eine Kombination von
aptitude
und dem
Standard-UNIX-Kommando
tail
. An
aptitude
übergeben Sie dabei neben
dem Unterkommando
mehrere Optionen. Während
--sort
installsize
für die Sortierung nach dem Paketattribut „belegter
Plattenplatzverbrauch“ sorgt, filtert
'~i'
nur alle installierten
Pakete aus der Liste heraus. Die Ausgabe enthält den Paketstatus, den
Namen des Pakets und die Paketbeschreibung in Kurzform (siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
). Der
anschließende Aufruf des Kommandos
tail
ohne weitere Optionen
beschränkt die Darstellung auf die letzten zehn Zeilen der Ausgabe von
aptitude
und somit die zehn größten Pakete.
Suche nach den größten installierten Paketen mit
aptitude
(Namensliste).
$ aptitude search --sort installsize '~i' | tail
i A cube2-data - demo game and content for the Cube2 engine
i A nexuiz-data - Nexuiz game data files
i A torcs-data-tracks - data files for TORCS game - Tracks set
i A supertuxkart-data - 3D kart racing game (data)
i A flightgear-data-aircrafts - FlightGear Flight Simulator -- standard ai
i A flightgear-data-ai - FlightGear Flight Simulator -- standard AI
i A nexuiz-textures - Textures for Nexuiz
i A sauerbraten - 3D first-person shooter game
i A flightgear-data-base - FlightGear Flight Simulator -- base files
i A 0ad-data - Real-time strategy game of ancient warfare
Möchten Sie zudem wissen, wieviel Platz die einzelnen Pakete
verbrauchen, hilft Ihnen der Schalter
-F
(Langform
--display-format
gefolgt von einem Formatstring weiter. Darüber steuern Sie die Ausgabe
des Suchergebnisses von
aptitude
. Mit einem Formatstring legen Sie die
Informationen und deren Reihenfolge fest, in der diese ausgegeben werden
sollen (siehe
aptitude
-Formatstrings in
Abschnitt 10.8, „
aptitude
Format Strings“
).
In unserem Fall benötigen wir lediglich den Plattenplatzverbrauch und
den Paketnamen. Die beiden Spalteninhalte spezifizieren Sie über die
beiden Formatbezeichner
%I
für die Installationsgröße (engl.
„installed size“) und
%p
für den Paketnamen (engl. „package
name“). Nachfolgende Darstellung ist aufsteigend, d.h. das
zehntkleinste Paket sehen Sie in der ersten und das größte in der
letzten Zeile der Auflistung.
Suche nach den größten Paketen mit
aptitude
(Größe und Paketname), aufsteigende Sortierung.
$ aptitude search -F '%I %p' --sort installsize '~i' | tail
272 MB cube2-data
278 MB nexuiz-data
302 MB torcs-data-tracks
306 MB supertuxkart-data
320 MB flightgear-data-aircrafts
466 MB flightgear-data-ai
523 MB nexuiz-textures
652 MB sauerbraten
751 MB flightgear-data-base
1359 MB 0ad-data
Für eine umgekehrte, absteigende Darstellung kommt noch das hilfreiche
UNIX-Kommando
tac
ins Spiel. Über eine Pipe leiten Sie die Ausgabe von
tail
and
tac
weiter. Dieses dreht die Ausgabe um, sodass die letzte
Zeile zuerst ausgegeben wird, danach die vorletzte u.s.w. Die
nachfolgende Ausgabe zeigt eine Auflistung der fünf größten Pakete in
absteigender Reihenfolge. Da
tail
ohne Parameter stets 10 Zeilen
ausgibt, wurde dessen Aufruf noch um die Angabe
-5
ergänzt.
Suche nach den größten Paketen mit
aptitude
(Größe und Paketname), absteigende Sortierung.
$ aptitude search -F '%I %p' --sort installsize '~i' | tail -5 | tac
1359 MB 0ad-data
751 MB flightgear-data-base
652 MB sauerbraten
523 MB nexuiz-textures
466 MB flightgear-data-ai
8.17. Warum ist ein Paket installiert
Mit der Zeit sammeln sich auf Ihrem System recht viele Pakete an.
Bedingt durch die vorab definierten Paketabhängigkeiten schaufelt die
Paketverwaltung etliches an Daten auf die Platte und füllt den
verfügbaren Speicherplatz stetig, aber gnadenlos.
Möchten Sie klären, warum ein Paket installiert wurde, gibt Ihnen
aptitude
dazu bereitwillig Auskunft. Es versteht dazu das
Unterkommando
why
, mit dem es Ihnen die Gründe auflistet, die zur
Installation des besagten Pakets geführt haben. Grundlage dafür sind
einerseits die Paketflags (siehe dazu
Abschnitt 2.15, „Lokale Paketmarkierungen“
) und andererseits
die Einträge in der Paketbeschreibung.
aptitude
wertet daraus die fünf
Felder
Recommends
Conflicts
Depends
Replaces
und
Provides
aus (siehe
Abschnitt 4.1, „Konzepte und Ideen dahinter“
). Über diese vorgenannten
Felder legt der Paketmaintainer die Beziehungen zu anderen Paketen fest.
Nachfolgendes Beispiel zeigt den Aufruf zum Paket
xpdf
. Ersichtlich
wird daraus, dass das Paket
texpower
wiederum
xpdf
oder ein Paket aus
der Gruppe
pdf-viewer
empfiehlt. Die Alternative wird hier durch einen
senkrechten Strich – das Pipe-Symbol – dargestellt. Das Paket
xpdf
ist
bereits installiert, wird jedoch wiederum auch vom Paket
texlive-latex-extra
genutzt. Das Paket
texpower
wurde automatisch
installiert, was Sie anhand des Buchstabens
in der dritten Spalte
der dritten Zeile in nachfolgender Ausgabe sehen können.
Ausgabe von
aptitude
zur Klärung der Installation (Variante 1).
$ aptitude why xpdf
i texlive-latex-extra Empfiehlt texpower (>= 0.2-2)
i A texpower Empfiehlt xpdf | pdf-viewer
Für eine wesentlich ausführlichere Ausgabe nutzen Sie den Schalter
-v
Dieser besitzt die übliche Langform
--verbose
und ergänzt die Ausgabe
um alle Pakete, die zur Installation führen können. Hintergrund dafür
ist, dass
aptitude
aus den Paketinformationen sämtliche Abhängigkeits-
und Installationspfade errechnet und Ihnen diese auflistet.
Ausführliche Darstellung der Installationspfade (Ausschnitt).
$ aptitude --verbose why xpdf
i mc Schlägt vor xpdf | pdf-viewer

i nautilus Schlägt vor evince | pdf-viewer
i xpdf Liefert pdf-viewer

i dot2tex Empfiehlt pgf (>= 2.00) | texlive-pstricks
i A texlive-pstricks Hängt ab von texlive-base (>= 2012.20120516)
i A texlive-base Schlägt vor xpdf-reader | pdf-viewer
i xpdf Liefert pdf-viewer

...
In Kombination mit dem Schalter
--show-summary
fassen Sie diese
Informationen zusammen und erhalten eine kompaktere Darstellung. Der
Schalter erlaubt die fünf Werte
no-summary
first-package
first-package-and-type
all-packages
und
all-packages-with-dep-versions
. Geben Sie den Schalter beim Aufruf
nicht an, wird
show-summary
auf den Wert
no-summary
gesetzt.
Spezifizieren Sie keinen Wert für
show-summary
, wird hingegen
first-package
angenommen. Damit erhalten Sie bei einem Aufruf die
folgende Ausgabe – hier beispielhaft für das Paket
foomatic-db
Zusammenfassung für das Paket
foomatic-db
$ aptitude -v --show-summary why foomatic-db
Pakete, die foomatic-db erfordern:
bluetooth
cups-pdf
printer-driver-gutenprint
Der Wert
first-package-and-type
liefert Ihnen zudem eine Begründung
für die Abhängigkeit:
Zusammenfassung für das Paket
foomatic-db
(mit Begründung).
$ aptitude -v --show-summary=first-package-and-type why foomatic-db
Pakete, die foomatic-db erfordern:
[Hängt ab von] bluetooth
[Hängt ab von] cups-pdf
[Hängt ab von] printer-driver-gutenprint
Eine Übersicht zu allen Paketpfaden, die zum genannten Paket führen,
erhalten Sie mit Hilfe des Wertes
all-packages
. Dabei stehen die
Buchstaben hinter den Paketnamen für
Recommends
),
Conflicts
),
Depends
),
Replaces
) und
Provides
).
Zusammenfassung für das Paket
foomatic-db
(ausführlicher).
$ aptitude -v --show-summary=all-packages why foomatic-db
Pakete, die foomatic-db erfordern:
bluetooth E: bluez-cups H: cups E: foomatic-filters E: foomatic-db-engine E: foomatic-db
cups-pdf H: cups E: foomatic-filters E: foomatic-db-engine E: foomatic-db
printer-driver-gutenprint H: cups E: foomatic-filters E: foomatic-db-engine E: foomatic-db
Benötigen Sie zudem noch die Versionsnummer, von der dieses Paket
abhängt, setzen Sie den Wert von
--show-summary
auf den Wert
all-packages-with-dep-versions
Zusammenfassung für das Paket
foomatic-db
(ausführlicher mit Versionsangabe).
$ aptitude -v --show-summary=all-packages-with-dep-versions why foomatic-db
Pakete, die foomatic-db erfordern:
bluetooth E: bluez-cups H: cups E: foomatic-filters (>= 4.0) E: foomatic-db-engine (>= 4.0) E: foomatic-db
cups-pdf H: cups E: foomatic-filters (>= 4.0) E: foomatic-db-engine (>= 4.0) E: foomatic-db
printer-driver-gutenprint H: cups (>= 1.3.0) E: foomatic-filters (>= 4.0) E: foomatic-db-engine (>= 4.0) E: foomatic-db
Bestehen hingegen keine Gründe für eine Installation oder
aptitude
kann diese nicht zweifelsfrei ermitteln, liefert es die nachfolgende
Ausgabe – hier am Beispiel des Pakets
libruby-extras
Ausgabe von
aptitude
zur Klärung der Installation (Variante 2).
$ aptitude why libruby-extras
Kann keinen Grund für die Installation von libruby-extras finden.
Das Gegenstück zum Unterkommando
why
ist
why-not
aptitude
listet
damit den Grund auf, warum das Paket
bislang nicht
installiert oder
bereits wieder entfernt
wurde. Nachfolgendes Beispiel zeigt das anhand
des Audioprogramms
mplayer
. Dieses Paket wird von
rtmpdump
vorgeschlagen, welches automatisch installiert wurde und vom Paket
youtube-dl
empfohlen wird. Außerdem kollidieren die beiden Pakete
mplayer
und
mplayer2
miteinander, sodass im Bedarfsfall nur eines
von beiden auf ihrem System installiert sein darf.
Ausgabe von
aptitude
zur Klärung der Installation (Variante 3).
$ aptitude why-not mplayer
i youtube-dl Empfiehlt rtmpdump
i A rtmpdump Schlägt vor mplayer
p mplayer2 Liefert mplayer
p mplayer2 Kollidiert mit mplayer
Kann
aptitude
keinen Grund für die Entfernung finden, meldet es sich
mit einer kurzen Meldung dazu zurück – hier am Beispiel des KDE Desktop
Managers aus dem Paket
kdm
Ausgabe von
aptitude
zur Klärung der Installation (Variante 4).
$ aptitude why-not kdm
Kann keinen Grund für die Entfernung von kdm finden.
8.18. Liste der zuletzt installierten Pakete anzeigen
Als Verantwortlicher für Ihr Linuxsystem möchten Sie ab und an wissen,
was zuletzt auf dem System passiert ist. Dazu zählt insbesondere das
Auswerten der Logdateien und beinhaltet die Änderungen der Paketliste –
was wurde installiert, gelöscht bzw. aktualisiert etc. Sowohl
dpkg
als auch
apt
lassen Sie die Aktionen nachverfolgen.
8.18.1. Statusdaten von
dpkg
dpkg
erfasst alle Änderungen im Paketbestand in der Logdatei
/var/log/dpkg.log
. Ältere
dpkg
-Logdateien werden vom Programm
logrotate
nach dem Rotationsprinzip archiviert und irgendwann auch
komprimiert. Die zweit- und drittjüngsten Logdateien finden Sie
beispielsweise in den beiden Dateien
/var/log/dpkg.log.1
und
/var/log/dpkg.log.2.gz
wieder. Nachfolgender Auszug zeigt die Suche in
der aktuellen Logdatei von
dpkg
mittels
grep
anhand des
Schlüsselwortes „install“.
Recherche in den Logdateien von
dpkg
mittels
grep
$ grep " install " /var/log/dpkg.log
2014-08-06 15:12:19 install texlive-games:all 2012.20120611-2
2014-08-06 15:59:34 install qxw:i386 20110923-1
2014-08-08 10:46:42 install games-thumbnails:all 20120227
2014-08-08 10:46:43 install goplay:i386 0.5-1.1
2014-08-08 19:42:14 install ocrad:i386 0.22~rc1-2
Reicht Ihnen dieses Ergebnis noch nicht aus, suchen Sie zusätzlich noch
in allen wegrotierten Logdateien. Zur Anwendung kommt hier das Kommando
zcat
aus dem Paket
gzip
, welches ein
essentielles
Paket darstellt.
Dies ist auf einer Standard-Installation der Fall. Es gibt jedoch auch
noch eine alternative Implementation im Paket
zutils
[Debian-Paket-zutils]
Untenstehende Ausgabe wurde zusätzlich mittels
sort
aufsteigend nach
Datum sortiert, d.h. die untersten Einträge enthalten die jüngsten
Änderungen im Paketbestand. Mit dem UNIX-Kommando
tail
beschränken Sie
die Ausgabe des Rechercheergebnisses auf lediglich zehn Einträge.
Recherche in den Logdateien von
dpkg
mittels
zcat
$ zcat -f /var/log/dpkg.log* | grep " install " | sort | tail
2014-07-23 20:18:35 install libparse-debianchangelog-perl:all 1.2.0-1
2014-07-23 20:18:36 install libxml-simple-perl:all 2.20-1
2014-07-23 20:18:36 install patchutils:i386 0.3.2-1.1
2014-07-23 20:18:37 install lintian:all 2.5.10.4
2014-07-26 16:03:02 install libapt-pkg-doc:all 0.9.7.9+deb7u2
2014-08-06 15:12:19 install texlive-games:all 2012.20120611-2
2014-08-06 15:59:34 install qxw:i386 20110923-1
2014-08-08 10:46:42 install games-thumbnails:all 20120227
2014-08-08 10:46:43 install goplay:i386 0.5-1.1
2014-08-08 19:42:14 install ocrad:i386 0.22~rc1-2
Die hier verwendete Option
-f
benötigen Sie, damit
zcat
auch
nicht-komprimierte Dateien – in diesem Fall
/var/log/dpkg.log
ausgibt.
[27]
Alternativ können Sie auch
zgrep
verwenden, das spart ein klein wenig
Tipparbeit. Damit die Sortierung gelingt, muss dort allerdings die
Ausgabe von vorangestellten Dateinamen mit der Option
-h
unterdrückt
werden:
Recherche in den Logdateien von
dpkg
mittels
zgrep
$ zgrep -h " install " /var/log/dpkg.log* | sort | tail -7
2014-07-23 20:18:37 install lintian:all 2.5.10.4
2014-07-26 16:03:02 install libapt-pkg-doc:all 0.9.7.9+deb7u2
2014-08-06 15:12:19 install texlive-games:all 2012.20120611-2
2014-08-06 15:59:34 install qxw:i386 20110923-1
2014-08-08 10:46:42 install games-thumbnails:all 20120227
2014-08-08 10:46:43 install goplay:i386 0.5-1.1
2014-08-08 19:42:14 install ocrad:i386 0.22~rc1-2
8.18.2. Statusdaten von
apt
apt
erfasst alle Änderungen im Paketbestand in der Logdatei
/var/log/apt/history.log
. Neben dem vollständigen Aufruf sind alle
Pakete berücksichtigt, die in einer anderen Version eingespielt wurden.
Nachfolgender Auszug zeigt die Installation des Paketes
apt-rdepends
am 20. Juli 2016:
Installation des Paketes
apt-rdepends
Start-Date: 2016-07-20 16:00:48
Commandline: apt-get install apt-rdepends
Install: apt-rdepends:amd64 (1.3.0-3)
End-Date: 2016-07-20 16:00:49
Nehmen Sie eine Aktualisierung der Software vor, resultiert das bspw. in
folgendem Eintrag:
Aktualisierung des Paketes
wireshark
samt dessen Abhängigkeiten.
Start-Date: 2016-07-08 15:41:42
Upgrade: wireshark-common:amd64 (1.12.1+g01b65bf-4+deb8u6, 1.12.1+g01b65bf-4+deb8u7), wireshark-qt:amd64 (1.12.1+g01b65bf-4+deb8u6, 1.12.1+g01b65bf-4+deb8u7), wireshark:amd64 (1.12.1+g01b65bf-4+deb8u6, 1.12.1+g01b65bf-4+deb8u7)
End-Date: 2016-07-08 15:41:48
Analog zu
dpkg
werden ältere Logdateien vom Programm
logrotate
nach
dem Rotationsprinzip archiviert und von Zeit zu Zeit komprimiert. Die
zweit- und drittjüngsten Logdateien finden Sie beispielsweise in den
beiden Dateien
/var/log/apt/history.log.1.gz
und
/var/log/apt/history.log.2.gz
wieder.
8.19. Paketabhängigkeiten anzeigen
Wie in der Einführung zum Buch bereits genannt, besteht Debian aus einer
riesigen Menge einzelner Pakete. Dabei werden größere, komplexe
Funktionalitäten in kleine, separate Bausteine zerlegt. Diese Bausteine
sind als einzelne
deb
-Pakete verfügbar, die häufig einander bedingen.
In der Paketbeschreibung jedes
deb
-Pakets ist der Bezug zu den anderen
Paketen hinterlegt — die Paketabhängigkeiten. Wie diese konkret
formuliert werden, lesen Sie unter „Debian-Paketformat im Detail“ in
Kapitel 4,
Debian-Paketformat im Detail
nach.
Vor der Veränderung des Paketbestands – d.h. dem Hinzufügen, Entfernen
und Aktualisieren eines oder mehrerer Pakete – prüfen APT und
aptitude
, ob diese Paketabhängigkeiten nach den Änderungen des Bestand
auf ihrem System weiterhin erfüllt sind. Die Abhängigkeiten müssen
erfüllt sein, damit Ihr Linuxsystem weiterhin zuverlässig funktioniert
und dieses für Sie benutzbar bleibt.
Sind die Abhängigkeiten jedoch nicht erfüllt, weigern sich APT und
aptitude
zunächst, Software einzuspielen. Sie zeigen Ihnen an, welche
Pakete und Einzelschritte erforderlich sind, die zur Wiedererlangung
eines sauberen Paketbestands durchzuführen sind. Nur mit etwas Nachdruck
können Sie den Zustand auf eigene Verantwortung hin übergehen — mehr
dazu erfahren Sie in „Paketoperationen erzwingen“ in
Abschnitt 8.45, „Paketoperationen erzwingen“
8.19.1. Die Abhängigkeiten eines Pakets auflisten
Hier sehen Sie, von welchen weiteren Paketen ein Paket abhängt. Zu
dieser Information gelangen Sie mit mehreren Werkzeugen. Dazu zählen
dpkg-deb
apt-cache
mit den beiden Unterkommandos
show
und
depends
aptitude
mit speziellen Suchoptionen,
apt-rdepends
sowie
grep-aptavail
und
grep-status
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
. Als weitere Information benötigen die
genannten Programme noch den Namen des Pakets, zu dem es die
Paketabhängigkeiten ausgeben sollen. Die nachfolgenden Ausgaben
illustrieren die Wirkung anhand des Pakets
xpdf
Unterschied zwischen
apt-cache
und
aptitude
bei der Suche nach Abhängigkeiten
Hier ist die Bedeutung der Unterkommandos bzw. Schalter zwischen den
beiden Werkzeugen genau entgegengesetzt. Während
apt-cache depends
alle Abhängigkeiten eines gegebenen Pakets heraussucht, „denkt“
aptitude search ?depends(…)
andersherum und durchsucht die
Abhängigkeiten aller Pakete nach einem Muster, sucht also nach
Abhängigkeiten auf ein Paket bzw. einer Zeichenkette oder einem
regulären Ausdruck.
Daher entspricht
apt-cache depends
dem Aufruf
aptitude search '~R'
bzw.
aptitude search ?reverse-depends(…)
sowie
apt-cache rdepends
dem Aufruf
aptitude search '~D'
bzw.
aptitude search ?depends(…)
Ausgabe der Paketabhängigkeiten mit
dpkg-deb
Das Kommando
dpkg-deb
ist Bestandteil des essentiellen Pakets
dpkg
[Debian-Paket-dpkg]
. Über den Schalter
-f
(Langform
--field
) und
der Angabe des Feldnamens liest es die Paketinformationen und gibt
anschließend den Inhalt des spezifizierten Feldes aus. Das ist identisch
zum Aufruf von
dpkg -f
(Langform
dpkg --field
).
Beachten Sie bitte beim Aufruf die etwas unintuitiven Abfolge der
Parameter — erst den Schalter, danach den Dateinamen der
deb
-Datei
und am Ende der Feldname. Für diese Information muss das entsprechende
Paket nicht auf ihrem System installiert sein, sondern nur als Datei in
einem Verzeichnis liegen und erreichbar sein.
Ausgabe der Abhängigkeiten mittels
dpkg-deb
$ dpkg-deb -f xpdf_3.03-17+b1_amd64.deb Depends
libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2), libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
Ausgabe der Paketabhängigkeiten mit
apt-cache
Variante 1
verfolgt einen typischen UNIX-Ansatz — es kombiniert die
beiden Werkzeuge
apt-cache
und
grep
miteinander. Dazu filtert es die
Ausgabe der vollständigen Paketinformationen, wie es
apt-cache
mit dem
Unterkommando
show
liefert. Über eine Pipe und mittels
grep
filtert
es danach die Zeile mit den Abhängigkeiten heraus, die mit dem
Schlüsselwort
Depends
beginnt. Für diese Information muss das
entsprechende Paket nicht auf ihrem System installiert sein, sondern nur
in der Paketdatenbank als Paket gelistet sein.
Suche mittels
grep
in der Ausgabe von
apt-cache
$ apt-cache show xpdf | grep Depends
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2), libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
Variante 2
verwendet das spezifische Unterkommando
depends
apt-cache
gibt jedes benötigte Debianpaket in einer einzelnen Zeile in
alphabetisch aufsteigender Reihenfolge und ohne die Versionsnummer aus.
Für diese Information muss das entsprechende Paket nicht auf ihrem
System installiert sein, aber in der Paketdatenbank gelistet sein.
Detaillierte Ausgabe der Paketabhängigkeiten.
$ apt-cache depends xpdf
xpdf
Hängt ab von: libc6
Hängt ab von: libgcc1
Hängt ab von: libpoppler46
Hängt ab von: libstdc++6
Hängt ab von: libx11-6
Hängt ab von: libxm4
Hängt ab von: libxt6
Empfiehlt: poppler-utils
poppler-utils:i386
Empfiehlt: poppler-data
Empfiehlt: gsfonts-x11
Empfiehlt: cups-bsd
cups-bsd:i386
Kollidiert mit:
Kollidiert mit:
Kollidiert mit:
Kollidiert mit:
Ersetzt:
Ersetzt:
Ersetzt:
Ersetzt:
Kollidiert mit: xpdf:i386
Ohne weitere Optionen enthält die Ausgabe alle Abhängigkeiten,
Empfehlungen und Konflikte zu dem Paket. Mit den folgenden Optionen
spezifizieren Sie die Ausgabe noch genauer.
-i
(Langform
--important
Einschränkung auf die wichtigen Abhängigkeiten, d.h. nur unerfüllte
unmet
) und direkte Abhängigkeiten (
depends
und
pre-depends
). Es
entspricht damit exakt den Angaben im Feld
Depends
der
Paketinformationen.
Beschränkung auf die wichtigen Abhängigkeiten mittels
-i
$ apt-cache depends -i xpdf
xpdf
Hängt ab von: libc6
Hängt ab von: libgcc1
Hängt ab von: libpoppler46
Hängt ab von: libstdc++6
Hängt ab von: libx11-6
Hängt ab von: libxm4
Hängt ab von: libxt6
--no-pre-depends
blendet die Pakete aus, die vorher installiert sein müssen
--no-depends
direkte Abhängigkeiten ausblenden
--no-recommends
die Empfehlungen für weitere Pakete ausblenden
--no-suggests
Angaben für Vorschläge werden unterdrückt
--no-conflicts
blendet die Pakete aus, die mit dem Paket in Konflikt stehen, d.h. nicht gleichzeitig installiert sein dürfen
--no-breaks
blendet die Pakete aus, die das Paket funktionsunfähig machen
--no-replaces
Pakete, die das aktuelle Paket ersetzen, werden nicht angezeigt
--no-enhances
Pakete, die das aktuelle Paket erweitern, werden nicht angezeigt
--installed
begrenzt die Ausgabe nur auf die installierten Pakete
--recurse
führt die Unterkommandos
depends
und
rdepends
rekursiv aus, so dass
alle erwähnten Pakete einmal ausgegeben werden. Diese Liste kann sehr
lang sein.
Die nachfolgende Ausgabe grenzt die Auflistung auf die Pakete ein, die
lediglich als Vorschlag oder Empfehlung hinterlegt sind. Im Aufruf
nutzen Sie dafür die Option
--no-depends
Ausgabe der vorgeschlagenen und empfohlenen Pakete zu
xpdf
$ apt-cache depends xpdf --no-depends
xpdf
Empfiehlt: poppler-utils
poppler-utils:i386
Empfiehlt: poppler-data
Empfiehlt: gsfonts-x11
Empfiehlt: cups-bsd
cups-bsd:i386
Kollidiert mit:
Kollidiert mit:
Kollidiert mit:
Kollidiert mit:
Ersetzt:
Ersetzt:
Ersetzt:
Ersetzt:
Kollidiert mit: xpdf:i386
Recherche mit
apt-rdepends
Deutlicher wird
apt-rdepends
aus dem gleichnamigen Paket. Es löst die
Abhängigkeiten noch weitaus stärker auf. Nachfolgende Darstellung zeigt
daher nur einen Ausschnitt. Für diese Information muss das entsprechende
Paket nicht auf ihrem System installiert sein, aber in der
Paketdatenbank gelistet sein.
Ausgabe der Paketabhängigkeiten mit
apt-rdepends
(Ausschnitt).
$ apt-rdepends xpdf | more
xpdf
Depends: libc6 (>= 2.4)
Depends: libgcc1 (>= 1:4.1.1)
Depends: libpoppler46 (>= 0.26.2)
Depends: libstdc++6 (>= 4.1.1)
Depends: libx11-6
Depends: libxm4 (>= 2.3.4)
Depends: libxt6
libc6
Depends: libgcc1
libgcc1
Depends: gcc-4.9-base (= 4.9.2-10)
...
Das Ergebnis von
apt-rdepends
wird vielleicht leichter verständlich,
wenn Sie die Paketabhängigkeiten graphisch darstellen. Bei der
Veranschaulichung hilft Ihnen das Programm
dotty
aus dem Paket
graphviz
[Graphviz]
. Für das Paket
tcpdump
sieht der Aufruf wie
folgt aus.
Erzeugung der Abhängigkeiten als
dot
-Datei.
$ apt-rdepends -d tcpdump | dot > tcpdump.dot
Reading package lists... Done
Building dependency tree
Reading state information... Done
Das Ergebnis der von
apt-rdepends
zu
dot
weitergeleiteten und in der
Datei
tcpdump.dot
abgespeicherten Relationsmenge zeigen Sie
mit dem Programm
dotty
an (siehe
Abbildung 8.6, „Darstellung der umgekehrten Paketabhängigkeiten mit
dotty
).
Aufruf von
dotty
$ dotty tcpdump.dot
Abbildung 8.6. Darstellung der umgekehrten Paketabhängigkeiten mit
dotty
Ausgabe der Paketabhängigkeiten mit
aptitude
aptitude
versteht eine Reihe von speziellen Suchmustern. Eines davon
ist
~Rmuster
als Abkürzung für die Langform
?reverse-depends(
Paketname
, welches Sie mit dem Unterkommando
kombinieren.
muster
bezeichnet hier den Namen oder das
Textfragment eines Pakets. Für diese Information muss das entsprechende
Paket nicht auf ihrem System installiert sein, aber in der
Paketdatenbank gelistet sein.
Mit dem nachfolgenden Aufruf erhalten Sie alle Pakete, die
xpdf
benötigt. Es entspricht dem Aufruf
apt-cache depends -i xpdf
. Die
Ausgabe beinhaltet nur die notwendigen Abhängigkeiten ohne weitere
Empfehlungen. Analog zur Ausgabe von
dpkg
umfaßt die verwendete
Darstellungsform den Installationsstatus, den Namen und die
Kurzbeschreibung des Pakets (siehe dazu „Liste der installierten Pakete
anzeigen und deuten“ in
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
).
Anzeige der Paketabhängigkeiten mit
aptitude
$ aptitude search '~Rxpdf'
i libc6 - GNU C-Bibliothek: Dynamische Bibliotheken
i libgcc1 - GCC Support-Bibliothek
i A libpoppler46 - Bibliothek zur PDF-Darstellung
i libstdc++6 - GNU-Implementierung der Standard-C++-Bibli
i A libx11-6 - Clientseitige X11-Bibliothek
i A libxm4 - Motif - X/Motif shared library
i A libxt6 - X11-Bibliothek mit wesentlichen Werkzeugen
Ausgabe der Paketabhängigkeiten mit
grep-status
Die beiden Werkzeuge
grep-aptavail
und
grep-status
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
filtern die gewünschten
Felder aus der Paketbeschreibung heraus. Während
grep-status
eher die
Sichtweise von
dpkg
benutzt und sich nur auf die (jemals)
installierten Pakete in der aktuellen Architektur bezieht, entspricht
grep-aptavail
eher
aptitude
und durchsucht alle lokalen Paketlisten.
Benutzen Sie bspw. mehrere Archtekturen (Multiarch), erhalten Sie einen
Suchtreffer pro Paketliste der Architektur.
Für diese Information muss das entsprechende Paket nicht auf ihrem
System installiert sein, aber in der Paketdatenbank gelistet sein.
Im nachfolgenden Aufruf kommen
-F Package
zum Abgleich des Musters mit
dem Paketnamen und
-s Depends
zur Ausgabe des Feldes für die
Paketabhängigkeiten zum Einsatz.
Ausgabe der Paketabhängigkeiten mit
grep-status
$ grep-status -F Package -s Depends xpdf
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2), libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
Eine kürzere Schreibweise erlaubt der Schalter
-P
, welcher dem
Schalter
-F Package
entspricht. Nachfolgende Ausgabe zeigt
grep-aptavail
mit den Feldern für die Paketabhängigkeit (
Depends
),
den Paketnamen (
Package
) und die Architektur (
Architecture
).
Ausgabe der Paketabhängigkeiten mit
grep-aptavail
$ grep-aptavail -P -s Package,Depends,Architecture xpdf
Package: xpdf
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2), libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
Architecture: amd64

Package: xpdf
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2), libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
Architecture: i386

8.19.2. Anzeige der umgekehrten Paketabhängigkeiten
Diese Aktivität übersetzen Sie mit der Frage „Welche anderen Pakete
benötigen Paket
?“, auch genannt
Rückwärtsabhängigkeit
. Zur
Beantwortung der Frage helfen Ihnen einerseits wiederum
apt-cache
mit
dem Unterkommando
depends
, andererseits das Kommando
apt-rdepends
aus dem gleichnamigen Paket
apt-rdepends
[Debian-Paket-apt-rdepends]
und auch
aptitude
selbst weiter.
Unterschied zwischen
apt-cache
und
aptitude
bei der Suche nach Abhängigkeiten
Hier ist die Bedeutung der Unterkommandos bzw. Schalter zwischen den
beiden Werkzeugen genau entgegengesetzt. Während
apt-cache depends
alle Abhängigkeiten eines gegebenen Pakets heraussucht, „denkt“
aptitude search ?depends(…)
andersherum und durchsucht die
Abhängigkeiten aller Pakete nach einem Muster, sucht also nach
Abhängigkeiten auf ein Paket bzw. einer Zeichenkette oder einem
regulären Ausdruck.
Daher entspricht
apt-cache depends
dem Aufruf
aptitude search '~R'
bzw.
aptitude search ?reverse-depends(…)
sowie
apt-cache rdepends
dem Aufruf
aptitude search '~D'
bzw.
aptitude search ?depends(…)
Recherche mit
apt-cache
Über das Unterkommando
rdepends
zeigt
apt-cache
alle Pakete an.
Pakete, die von weiteren Paketen abhängen, sind in der Ausgabe von
apt-cache
mit einem senkrechten Strich („Pipe“) gekennzeichnet.
Für diese Information muss das entsprechende Paket nicht auf ihrem
System installiert sein, aber in der Paketdatenbank gelistet sein.
Ausgabe der umgekehrten Paketabhängigkeiten mit
apt-cache
für das Paket
xpdf
$ apt-cache rdepends xpdf
xpdf
Reverse Depends:
|xmds-doc
xfe
wiipdf
|vim-latexsuite
python-scapy
|ruby-tioga
|python-tables-doc
|page-crunch
|octave-doc
|muttprint-manual
mozplugger
mlpost
libmlpost-ocaml-dev
|mc
|libjgoodies-forms-java-doc
|libinventor1
|gprolog-doc
|geomview
libfontconfig1
eficas
|auctex
Recherche mit
apt-rdepends
apt-rdepends
löst die Abhängigkeiten der Pakete zueinander noch
weitaus stärker auf. Für diese Information muss das entsprechende Paket
nicht auf ihrem System installiert sein, aber in der Paketdatenbank
gelistet sein.
Ausgabe der umgekehrten Paketabhängigkeiten mit
apt-rdepends
$ apt-rdepends -r xpdf
Reading package lists... Done
Building dependency tree
Reading state information... Done
xpdf
Reverse Depends: eficas (6.4.0-1-1.1)
Reverse Depends: muttprint-manual (0.73-5.1)
Reverse Depends: wiipdf (1.4-2)
eficas
muttprint-manual
wiipdf
Recherche mit
aptitude
Mit einer Reihe von speziellen Suchmustern zum Unterkommando
unterstützt Sie
aptitude
bei der Recherche in der
Paketdatenbank. Eines davon ist
~D
muster
und dessen Langform
?depends(
muster
. Sie suchen in den
Abhängigkeiten
[28]
aller
Pakete nach dem regulrären Ausdruck
muster
. Dabei findet es nicht nur
vollständige Paketnamen sondern auch Bestandteile von Paketnamen. Für
diese Information muss das entsprechende Paket nicht auf ihrem System
installiert sein, aber in der Paketdatenbank vorhanden sein.
Um beispielsweise alle Pakete zu erhalten, die eine Abhängigkeit auf ein
Paket mit der Zeichenkette
xpdf
im Paketnamen haben, nutzen Sie das
Kommando
aptitude search '~Dxpdf'
. Das Ergebnis ist eine mehrspaltige
Auflistung der Pakete mit deren Installationsstatus, Paketnamen und
Kurzbeschreibung (siehe dazu „Liste der installierten Pakete anzeigen
und deuten“ in
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
).
Auflistung aller Pakete, deren Abhängigkeiten die Zeichenkette
xpdf
beinhalten, mit
aptitude
$ aptitude search '~Dxpdf'
p eficas - Graphical editor for Code Aster command files
p impressive - Werkzeug zur Präsentation von PDF-Dateien mit
p muttprint-manual - Handbuch für muttprint
p page-crunch - PDF and PS manipulation for printing needs
p wiipdf - Präsentiert eine PDF-Datei mittels Wiimote
Diese Liste beinhaltet auch das Paket
impressive
, welches eine
Abhängigkeit auf
poppler-utils
mupdf-tools
und
xpdf-utils
hat.
Will man nur Abhängigkeiten auf das Paket
xpdf
, so muß man Anfangs-
und End-Anker verwenden:
Auflistung aller Pakete, die eine harte Abhängigkeit auf das Paket
xpdf
beinhalten, mit
aptitude
$ aptitude search '~D^xpdf$'
p eficas - Graphical editor for Code Aster command files
p muttprint-manual - Handbuch für muttprint
p wiipdf - Präsentiert eine PDF-Datei mittels Wiimote
8.19.3. Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
APT liefert über das Werkzeug
apt-get
und dessen Unterkommando
check
ein kleines Diagnosewerkzeug mit. Es aktualisiert den
Paketzwischenspeicher (siehe
Kapitel 7,
Paketcache
) und prüft, ob auf Ihrem
Linuxsystem beschädigte Abhängigkeiten vorliegen. Das beinhaltet alle
installierten Pakete sowie die bereits entpackten, aber noch nicht
konfigurierten Pakete
[Debian-Anwenderhandbuch-apt-optionen]
Prüfung auf beschädigte Abhängigkeiten mit
apt-get check
# apt-get check
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
8.19.4. Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
Das Werkzeug
apt-cache
zeigt Ihnen eine Zusammenfassung aller
unerfüllten Abhängigkeiten im Paketzwischenspeicher (siehe
Kapitel 7,
Paketcache
). Dazu bietet es das Unterkommando
unmet
, welches Sie
auch noch um einen Paketnamen bzw. eine Liste davon ergänzen können. Die
dargestellte Liste zeigt die Funktionalität zum Paket
wireshark
und
beinhaltet auch die nicht installierten Vorschläge der Pakete.
Auflistung aller unerfüllten Abhängigkeiten für Pakete, die mit
wireshark
beginnen.
$ 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)
Paket libwireshark-dev Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit:
Ersetzt: wireshark-dev (< 1.4.0~rc2-1)
Paket wireshark-dev Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit:
Ersetzt: ethereal-dev (< 1.0.0-3)
frank@efho-mobil:~$ apt-cache unmet wireshark
Paket wireshark Version 1.8.2-5wheezy10 hat eine unerfüllte Abhängigkeit:
Ersetzt: ethereal (< 1.0.0-3)
8.20. Pakete über den Namen finden
Diese Suchvariante ist der häufigste Weg zur Recherche nach gewünschten
Paketen. Alle Werkzeuge zur Paketverwaltung bieten eine entsprechende
Suchfunktion an, variieren dabei jedoch stark in der Form sowie der
Menge der Möglichkeiten. Namentlich ähnliche Pakete sind mit
dpkg
apt-cache
und
aptitude
über ein Unterkommando und ein Muster
auffindbar.
dpkg
hat ein eigenes Musterformat,
apt-cache
und
aptitude
unterstützen hingegen Reguläre Ausdrücke. Bei den graphischen
Programmen ist die Suche über Muster bislang nicht oder lediglich
eingeschränkt implementiert.
Ergänzend stehen Ihnen mehrere Dienste für eine Recherche mittels
Webbrowser zur Verfügung. Das umfaßt Dienste, die vom Debianprojekt
unterhalten und gepflegt werden, aber auch kommerzielle Anbieter und
private Initiativen.
8.20.1. Systemwerkzeuge
dpkg
dpkg
sucht nur in der Paketliste. Dazu bietet es die Option
-l
(Langform
--list
) und listet darüber nur derzeit oder früher schon
einmal installierte Pakete auf. Es erwartet als weiteren Parameter
entweder einen vollständigen Paketnamen oder einen Suchausdruck mit
Platzhalter (engl.
Wildcard
). Bitte schließen Sie den Suchausdruck in
einfache oder doppelte Hochkommata ein, damit die Shell nicht versucht,
den Platzhalter selbst auszuwerten.
Fahndung nach den Paketen für
xpdf
mittels
dpkg
$ dpkg -l 'xpdf*'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
+++-==============-============-============-=================================
ii xpdf 3.03-10 amd64 Portable Document Format (PDF) re
un xpdf-reader (keine Beschreibung vorhanden)
un xpdf-utils (keine Beschreibung vorhanden)
Obiger Ausgabe entnehmen Sie, dass nur das Paket
xpdf
installiert ist.
Die beiden anderen Pakete namens
xpdf-reader
und
xpdf-utils
waren
schon einmal installiert und sind daher
dpkg
bereits bekannt. Deswegen
erscheint als Paketstatus die Buchstabenfolge
un
für „nicht mehr
installiert“.
Ausgabeformat des Paketstatus
Das Ausgabeformat sowie die Buchstaben am Zeilenanfang erklären wir
ausführlicher in den beiden Abschnitten
dpkg
und „Liste der
installierten Pakete anzeigen und deuten“ (siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
).
APT und
apt-cache
Das Kommando
apt-cache
rufen Sie mit dem Unterkommando
, dem
Schalter
-n
(Langform
--names-only
) und den gewünschten
Suchbegriffen als Parameter auf. Danach führt
apt-cache
eine Suche
ausschließlich über den Paketnamen durch. Es bezieht dabei alle Pakete
mit ein, die über die hinterlegten Paketlisten bei Ihnen verfügbar sind
und findet somit auch die Pakete, die derzeit nicht auf ihrem System
installiert sind. Ohne weitere Aufrufparameter zur Ausgabesteuerung
besteht das Suchergebnis aus einer Liste mit dem Paketnamen gefolgt von
der ersten Zeile der Kurzbeschreibung des jeweiligen Pakets.
Jeder Suchbegriff wird als Regulärer Ausdruck gemäß dem POSIX-Standard
interpretiert. Eine Unterscheidung zwischen Groß- und Kleinschreibung
findet nicht statt. Nachfolgend sehen Sie das Suchergebnis zum Begriff
clint
. Es beinhaltet die gefundenen Pakete sowie deren
Kurzbeschreibung.
Suche nach dem Begriff
clint
mittels
apt-cache search
$ apt-cache search --names-only clint
python-clint - Python Command-line Application Tools
python3-clint - Python Command-line Application Tools
Mehrere Suchbegriffe trennen Sie im Aufruf mittels Leerzeichen
voneinander. Diese Begriffe werden dann mittels "und" als boolescher
Ausdruck miteinander verknüpft. Das Suchergebnis enthält dann nur
Ergebnisse, in denen beide Suchbegriffe vorkommen. Das nächste Beispiel
verwendet
lint
und
rpm
und listet nur das Paket
rpmlint
auf.
Einfache Suche nach verfügbaren Paketen mittels
apt-cache search
und zwei Suchbegriffen.
$ apt-cache search --names-only lint rpm
rpmlint - RPM package checker
aptitude
Rufen Sie
aptitude
über die
Kommandozeile
auf, berücksichtigt es bei
der Suche üblicherweise nur den Paketnamen. Es sucht jedoch auf Wunsch
auch in der Paketliste und der Paketbeschreibung (siehe
Abschnitt 8.21.2, „Suche mit Hilfe von
aptitude
). Beinhaltet der
Paketname eine Tilde (
) oder ein Fragezeichen (
), wird der
Paketname als Suchmuster aufgefasst. In Folge werden alle Pakete
berücksichtigt, die diesem Suchmuster entsprechen. Dazu füttern Sie
aptitude
mit den folgenden Optionen:
~nsuchbegriff
(Langform
?name(suchbegriff)
Suche nach
suchbegriff
im Namen des Pakets.
suchbegriff
wird hier
als Teilzeichenkette betrachtet und findet bspw. bei
apt
die Pakete
apt
aptitude
und
synaptic
?exact-name(suchbegriff)
Suche nach Paketen, deren Paketnamen exakt mit dem Suchbegriff übereinstimmen.
?term(suchbegriff)
Volltextsuche nach
suchbegriff
im Namen und der Beschreibung des Pakets.
?term-prefix(suchbegriff)
Volltextsuche nach Begriffen, die den
suchbegriff
als Präfix
beinhalten. Suche im Namen und der Beschreibung des Pakets.
Der Kommandozeilenaufruf von
aptitude
ist ähnlich zu
apt-cache
auch hier folgt auf das Unterkommando
die Suchoption oder nur
der Suchbegriff zur Recherche.
aptitude
interpretiert den Suchbegriff
als Regulären Ausdruck im POSIX-Format.
Beispielhaft interessierte uns das Paket
xpdf
. Das Suchergebnis zeigt,
dass insgesamt drei Pakete verfügbar sind, die
xpdf
im Namen tragen.
Davon ist nur das erste auf dem System installiert.
Suche nach allen Paketen, in denen
xpdf
enthalten ist.
$ aptitude search xpdf
i xpdf - Leseprogramm für das Portable Document Format (PDF)
p xpdf-reader - Übergangspaket für xpdf
p xpdf-utils
Wie oben genannt, grenzen Sie die Suche auf den exakten Paketnamen ein,
indem Sie dem gesuchten Paketnamen ein
?exact-name()
voranstellen.
Damit findet
aptitude
nur noch ein einziges Paket:
Suche nach dem exakten Paketnamen
xpdf
mittels
aptitude
$ aptitude search '?exact-name(xpdf)'
i xpdf - Leseprogramm für das Portable Document Format (PDF)
Obiger Aufruf ist identisch mit
aptitude search ~n'^xpdf$'
. Der
Suchbegriff ist hier als Regulärer Ausdruck angegeben und begrenzt das
Textfragment auf die Zeichenkette
xpdf
, wobei mittels
davor und
dahinter keine weiteren Zeichen erlaubt sind.
Beim Aufruf auf der
Textoberfläche
verhält sich
aptitude
genau
entgegengesetzt zur Kommandozeile. Es zeigt nur die Paketnamen in der
Auflistung an, die exakt mit dem angegebenen Suchmuster übereinstimmen.
Die Auswahl der angezeigten Pakete begrenzen Sie mit der Taste
In das Eingabefeld tragen Sie dann das gewünschte Suchmuster ein (siehe
Abbildung 8.7, „Paketliste limitieren über die Aptitude-TUI“
für den Eingabedialog).
Abbildung 8.7. Paketliste limitieren über die Aptitude-TUI
Nach aktuellem Entwicklungsstand erlaubt es die Textoberfläche von
`aptitude ` nicht, bei der Suche Reguläre Ausdrücke oder anderweitig
Muster anzugeben. Das gelingt Ihnen nur über die Kommandozeile.
grep-available
und
grep-status
Die beiden Werkzeuge
grep-available
und
grep-status
sind Bestandteil
des Pakets
dctrl-tools
[Debian-Paket-dctrl-tools]
. Dieses gehört
nicht zur Standardinstallation und ist somit von Ihnen zusätzlich zu
installieren.
Ohne die Angabe weiterer Parameter durchsucht
grep-available
die
gesamte Paketbeschreibung (siehe
Abschnitt 8.21.3, „Suche mit
grep-available
und
grep-status
). Mit Hilfe
der Option
-F
(Langform
--field
) schränken Sie den Vorgang auf einen
darüber ausgewählten Feldnamen ein. Nachfolgender Aufruf zeigt Ihnen von
allen verfügbaren Paketen die Paketnamen an, bei denen in der
Beschreibung oder im Paketnamen die Zeichenfolge
xpdf
enthalten ist.
Durch den Schalter
-i
(Langform
--ignore-case
) erfolgt die Suche
dabei unabhängig von der Groß- und Kleinschreibung. Das abschließende
sort
-Kommando sorgt darüber hinaus für eine Ausgabe in alphabetisch
aufsteigender Abfolge.
Verfügbare Pakete mittels
grep-available
anzeigen, bei denen in der Beschreibung und im Paketnamen die Zeichenfolge
xpdf
enthalten ist.
$ grep-available -F Description -F Package -i xpdf | grep Package | sort
Package: flpsed
Package: libpoppler19
Package: libpoppler3
Package: libpoppler5
Package: libpoppler-cpp0
Package: libpoppler-glib3
Package: libpoppler-glib4
Package: libpoppler-glib8
Package: libpoppler-qt2
Package: libpoppler-qt4-3
Package: poppler-utils
Package: python-poppler
Package: xpdf
Um den Aufruf für den Paketnamen zu vereinfachen, stellt Ihnen
grep-available
zudem die beiden Abkürzungen
-P
für
-F Package
und
-S
für
-F Source:Package
bereit. Darüber filtern Sie ganz nach
Bedarf nach Binär- und Quellpaketen, deren Namen durchaus
unterschiedlich sein können.
Obige Liste enthält alle Pakete – unabhängig davon, ob diese auf ihrem
System installiert sind, oder nicht. Um das einzugrenzen, kommt das
Werkzeug
grep-status
ins Spiel. Mit dem nachfolgenden Aufruf
reduzieren Sie die Liste entsprechend. Dabei kommt der Schalter
-s
(Langform
--show-field
) zum tragen, der den Paketstatus noch passend
auswertet.
Lediglich die installierten Pakete anzeigen, bei denen in der Beschreibung und im Paketnamen die Zeichenfolge
xpdf
enthalten ist.
$ grep-status -F Description -P -i -s Package xpdf | grep Package | sort
Package: flpsed
Package: libpoppler19
Package: libpoppler-cpp0
Package: libpoppler-glib8
Package: libpoppler-qt4-3
Package: poppler-utils
Package: python-poppler
Package: xpdf
Analog zu
grep
verfügt
grep-status
ebenfalls über den hilfreichen
Schalter
-v
(Langversion
--invert-match
). Bei Bedarf verkehren Sie
somit das Suchergebnis in das Gegenteil.
Synaptic
Bis zur Version 0.8 bot Ihnen Synaptic aus
Abschnitt 6.4.1, „Synaptic“
zwei
Varianten zur Suche an – einerseits eine Schnellsuche und andererseits
eine ausführliche Suche. Die
Schnellsuche
verschwand mit der Version
0.8.
Erstere verbirgt sich hinter dem Suchfenster oben rechts und ist mit dem
Begriff
Schnellauswahl-Filter
betitelt. Geben Sie dort einen Text
ein, durchsucht Synaptic die Paketliste und filtert nur die heraus,
deren Paketname mit dem Text beginnen. Dabei werden Platzhalter und
Reguläre Ausdrücke nicht unterstützt. Als Ergebnis wird die dargestellte
Paketliste auf die gefundenen Pakete eingeschränkt.
Die
ausführlichere Suche
erreichen Sie mittels
Ctrl
, dem
Menüeintrag
Bearbeiten
Suchen …
oder alternativ über den Knopf
mit der Lupe in der Werkzeugleiste. Es öffnet sich ein Fenster mit einem
Eingabefeld für den Suchtext. Darunter befindet sich ein Auswahlfeld, wo
Sie die Suche entweder nach Paketname, Beschreibung und Paketname,
Betreuer („Maintainer“), Paketversion, Abhängigkeiten und den
bereitgestellten Paketen genauer spezifizieren können. Bei dieser Suche
versteht Synaptic auch Fragmente, d.h. es interpretiert den Suchtext als
Teilstring. Reguläre Ausdrücke versteht es hingegen nicht.
Abbildung 8.8, „Ergebnis der Suche nach dem Fragment
fce
in Synaptic“
zeigt das Suchergebnis für das
Fragment
fce
Abbildung 8.8. Ergebnis der Suche nach dem Fragment
fce
in Synaptic
SmartPM
SmartPM (
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
) besitzt nur eine einfachere Suchfunktion.
Diese ist als Suchfeld in die graphische Bedienoberfläche integriert.
Das Suchfeld erreichen Sie ebenfalls über die Tastenkombination
Ctrl
. SmartPM versteht auch Fragmente, d.h. es
interpretiert den Suchtext als Teilstring, sucht bislang jedoch nur im
Paketnamen. Reguläre Ausdrücke bei der Formulierung des Suchstrings
unterstützt es bislang nicht.
Abbildung 8.9. Ergebnis der Suche nach dem Fragment
top
in SmartPM
8.20.2. Browserbasierte Suche
In Paketen blättern mittels
dpkg-www
Das Projekt
dpkg-www
umfasst ein CGI-Skript und stellt Ihnen damit den
Zugang zu sämtlicher Dokumentation zu den einzelnen Paketen zur
Verfügung, die auf ihrem eigenen oder einem fremden Debian-System
installiert sind. Dazu analysiert
dpkg-www
zunächst das Verzeichnis
/usr/share/doc
. Als Ergebnis erhalten Sie zu jedem Paket eine
graphische Auflistung der dazugehörigen, verfügbaren Textdateien,
README-Dokumente, Manpages und GNU Info-Dokumente. Auch das manuelle
Durchblättern des Verzeichnisses
/usr/share/doc
gehört dazu. Ist
ebenfalls das Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
installiert, können Sie mittels
dpkg-www
auch nach anderen Paketen und
insbesondere nach den darin enthaltenen Dateien suchen.
Die Grundlage bildet das gleichnamige Paket
dpkg-www
[Debian-Paket-dpkg-www]
. Obwohl dieses seine letzte reguläre
Aktualisierung bereits 2008 erhielt und derzeit als verwaist eingestuft
ist (d.h, dass das Paket keinen Maintainer mehr hat), sind gemäß
Popularity Contest
[Debian-Popularity-Contest]
noch etwa 350
Installationen in Benutzung (siehe dazu auch „Verbreitungsgrad von
Paketen“ in
Abschnitt 2.14, „Verbreitungsgrad von Paketen“
).
Bitte beachten Sie, dass Sie ohne Anpassung der Konfiguration lediglich
im Paketbestand des Systems stöbern können. Aus der Bedienoberfläche
heraus können Sie im Auslieferungszustand keine Veränderung ihres
Paketbestands vornehmen. Auch die Autoren raten davon ab, da sie es als
Sicherheitsrisiko einstufen. Um das dennoch zu ermöglichen, sind
zunächst noch Änderungen an den beiden Konfigurationsdateien
/etc/dpkg-www.conf
(Apache) und
/etc/dwww/dwww.conf
(Webserver) erforderlich. Die Informationen dazu entnehmen Sie bitte der
Dokumentation zu
dpkg-www
dpkg-www
setzt auf einem installierten Webserver wie Apache oder Nginx
auf. Daher ist die primäre Schnittstelle zur Bedienung des Programms
auch ihr
Webbrowser
. Das Analyseergebnis stellt
dpkg-www
zweispaltig
dar. Links stehen die verschiedenen Paketkategorien (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
), rechts finden Sie die
einzelnen Pakete, die der jeweiligen Kategorie zugeordnet sind (siehe
Abbildung 8.10, „Auswahl der Hilfeseiten zum Menüpunkt
Netzwerkkommunikation
). Jedes Paket wird dabei mit seinem Titel, einer
Kurzbeschreibung, dem dazugehörigen Paketnamen und mit der Angabe der
bereitstehenden Formate der Dokumentation oder der weiterführenden
Dokumente aufgelistet. In der Regel sind das HTML, Plaintext, PDF,
Postscript oder SGML.
Abbildung 8.10. Auswahl der Hilfeseiten zum Menüpunkt
Netzwerkkommunikation
Wählen Sie ein Paket aus der Liste aus, erhalten Sie detailliertere
Informationen dazu.
Abbildung 8.11, „Auswahl der Hilfeseiten zu Synaptic“
zeigt das Vorgehen
beispielhaft anhand des Pakets
synaptic
[Debian-Paket-synaptic]
Abbildung 8.11. Auswahl der Hilfeseiten zu Synaptic
dpkg-www
verfügt auch über eine sekundäre Schnittstelle — die
Kommandozeile
. Darüber fragen Sie sowohl Informationen zu ihrem
eigenen System, als auch zu entfernten Rechnern ab. Letzteres gelingt
nur, sofern dort
dpkg-www
auch installiert und über das Netzwerk
erreichbar ist. Nutzen Sie den Apache Webserver, muss diese
Funktionalität zuvor in der Datei
/etc/apache2/conf.d/dpkg-www
freigeschaltet worden sein.
Neben dem Paketnamen versteht das Programm die folgenden beiden
Schalter:
-s
(Langform
--stdout
die Ausgabe erfolgt nicht im Webbrowser, sondern auf dem Terminal.
-h Hostname
Hostname des angefragten Rechners.
Für das Paket
bash
auf dem
lokalen Rechner
und der späteren Ausgabe
im Webbrowser nutzen Sie den nachfolgenden Aufruf. Dazu aggregiert
dpkg-www
nacheinander die Ergebnisse drei Kommandos
dpkg-query -S
bash
dpkg-query -l bash
und
dpkg-query -L bash
zur Paketsuche und
zur Bestimmung der Dateien in dem angefragten Paket (siehe auch
Abschnitt 8.26, „Paketinhalte anzeigen“
). Zur Ausgabe im Webbrowser wertet
dpkg-www
die Umgebungsvariable
$BROWSER
aus, startet das darüber
benannte Programm und öffnet ein zusätzliches Fenster zur Darstellung
(siehe dazu auch
Kapitel 18,
Alternative Standard-Programme mit Debians Alternativen-System
).
Lokale Hilfedokumente zum Paket
bash
mittels
dpkg-www
anzeigen.
$ dpkg-www bash
Um die Informationen zu dem gleichen Paket zu erhalten, welches jedoch
auf dem entfernten Rechner mit dem Hostnamen
kiste
installiert ist,
funktioniert dieser Aufruf mit dem zusätzlichen Schalter
-h
Entfernte Hilfedokumente zum Paket
bash
mittels
dpkg-www
im Webbrowser anzeigen.
$ dpkg-www -h kiste bash
Möchten Sie diese Informationen stattdessen auf ihrem aktuellen Terminal
ausgeben, ergänzen Sie den obigen Aufruf um den Parameter
-s
wie
folgt (hier am Beispiel des Pakets
htop
):
Entfernte Hilfedokumente zum Paket
htop
mittels
dpkg-www
im Terminal anzeigen.
$ dpkg-www -h kiste -s htop
Package: htop
Status: install ok installed
Priority: optional
Section: utils
Installed-Size: 195
Maintainer: Eugene V. Lyubimkin [Debian Bug Report]
Architecture: i386
Version: 1.0.1-1
Depends: libc6 (>= 2.3.4), libncursesw5 (>= 5.6+20070908), libtinfo5
Suggests: strace, ltrace
Description: interactive processes viewer
Htop is an ncursed-based process viewer similar to top, but it
allows one to scroll the list vertically and horizontally to see
all processes and their full command lines.

Tasks related to processes (killing, renicing) can be done without
entering their PIDs.

Homepage: http://htop.sourceforge.net

Files owned by package htop:

/usr
/usr/bin
/usr/bin/htop
/usr/share
/usr/share/applications
/usr/share/applications/htop.desktop
/usr/share/doc
/usr/share/doc/htop
/usr/share/doc/htop/AUTHORS
/usr/share/doc/htop/README
/usr/share/doc/htop/changelog.Debian.gz
/usr/share/doc/htop/changelog.gz
/usr/share/doc/htop/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/htop.1.gz
/usr/share/menu
/usr/share/menu/htop
/usr/share/pixmaps
/usr/share/pixmaps/htop.png
Suche über die Webseite des Debian-Projekts
Nicht nur für den Einstieg, sondern auch für den Alltag ist die
Paketsuche über die Webseite des Debian-Projekts (siehe
[Debian-Paketsuche]
) äußerst hilfreich und insbesondere sehr schnell.
Abbildung 8.12, „Ergebnis der Paketsuche nach
iftop
über https://packages.debian.org/“
zeigt das Ergebnis der Recherche nach dem
Paket
iftop
im Webbrowser
Iceweasel
an.
Neben dem Paketnamen beinhaltet jeder Suchtreffer die Distribution
(siehe
Abschnitt 2.9, „Distributionsbereiche“
), gefolgt von der Veröffentlichung
(hier genannt „Suite“) (siehe
Abschnitt 2.10, „Veröffentlichungen“
), der
Paketkategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
und den Debian-Architekturen (siehe
Abschnitt 1.2, „Debian-Architekturen“
), für die
passende Pakete zur Verfügung stehen. Damit sehen Sie sofort, ob das
Paket für ihre Veröffentlichung und Architektur existiert.
Klicken Sie einen der Links unterhalb des Suchfeldes an, schränken Sie
das Suchergebnis auf die jeweilige Veröffentlichung oder Architektur
weiter ein und erhalten daraufhin detailliertere Informationen zu dem
spezifisch ausgewählten Paket. Neben der Paketbeschreibung sehen Sie die
Debian Tags, die Paketabhängigkeiten und am rechten Rand weiterführende
Informationen zum Paket. Dazu zählen ein Screenshot von
screenshots.debian.net (sofern verfügbar), Fehlerberichte, die Liste der
Änderungen („Changelog“), die Quellcodepakete, den Paketbetreuer
(„Maintainer“), die Projektwebseite und eine Liste ähnlicher Pakete.
Abbildung 8.12. Ergebnis der Paketsuche nach
iftop
über
Aber nicht nur das — Sie können mit bestimmten Kurzformen der URL
direkt die entsprechende Suche einleiten oder ein gewünschtes Paket
anzeigen lassen:
suchbegriff
sucht nach Binärpaketen mit
suchbegriff
im Paketnamen, wobei der
Paketname nicht mit dem Suchbegriff beginnen muß. Ebenso unterscheidet
die Suche nicht zwischen Groß- und Kleinschreibung, sperrt sich aber
gegenüber Regulären Ausdrücken. So sieht bspw. der Aufruf für Pakete mit
screen
im Paketnamen aus:
suchbegriff
sucht nach Quellpaketen mit
suchbegriff
im Paketnamen, z.B. so für
Pakete mit
screen
im Namen:
release
paketname
zeigt die Informationen zum Binärpaket
paketname
in der
Veröffentlichung
release
an, z.B. so für die Paketbeschreibung und die
Abhängigkeiten des Paketes
screen
in der aktuellen, stabilen
Debian-Veröffentlichung:
sprachkürzel
release
paketname
zeigt die Informationen zum Paket
paketname
in der Veröffentlichung
release
in der gewählten Sprache an, z.B. so für die Paketbeschreibung
und die Abhängigkeiten des Paketes
screen
im aktuellen Stable-Release
von Debian auf Deutsch:
release
sourcepaketname
zeigt die Informationen zum Quellpaket
sourcepaketname
in der
Veröffentlichung
release
an, z.B. so für die Informationen und die
zum Bau notwendigen Pakete des Quellpaketes
screen
in Debian 12
Bookworm
Analog zu den Binärpaketen können Sie hier auch noch ein Sprachkürzel an
den Anfang des Pfades setzen, um eine bestimmte Sprache zu erzwingen.
release
zeigt alle Kategorien in der benannten Veröffentlichung (
release
) an,
hier für Debian
unstable
release
kategorie
zeigt alle Binärpakete in der entsprechenden Kategorie der gewählten
Veröffentlichung (
release
) an (siehe „Sortierung der Pakete nach
Verwendungszweck“ in
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
),
z.B. alle Binärpakete in der Kategorie
Mail
in der aktuellen, stabilen
Veröffentlichung von Debian:
Auch hier können Sie wieder ein Sprachkürzel an den Anfang des Pfades
setzen, um eine bestimmte Sprache auszuwählen.
Anstelle des Namens einer Veröffentlichung —
bullseye
bookworm
sid
, etc. — kann auch stets ein Entwicklungsstand —
stable
testing
unstable
, etc. — verwendet werden.
Suche über die Webseite von Debian-Derivaten
Einige Derivate von Debian nutzen dieselbe Webanwendung zur Auflistung ihrer
Pakete im Web. Das Derivat Ubuntu unterstützt bisher keine Suite-Namen, denn
es gibt auch nur genau einen Suite-Namen namens
devel
. Der Aufruf für die
Kategorie
mail
aus der Veröffentlichung
Xenial Xerus
in deutscher Sprache
sieht wie folgt aus:
Abbildung 8.13. Ergebnis der Paketsuche nach
aptsh
über
Bei
Linux Mint
gibt es zwar auch die Webseite
, aber diese verwendet eine auf PHP
basierende Software zur Recherche. Als Suchkriterien stehen Ihnen die
Veröffentlichung, ein Schlüsselwort für den Paketnamen und die
Paketbeschreibung sowie der Distributionsbereich zur Verfügung.
Letzteres Auswahlfeld ist als
Section
gekennzeichnet und stellt die
Bereiche
Main
Upstream
Import
Backport
Romeo
und
Any
bereit (siehe
Abbildung 8.14, „Ergebnis der Paketsuche nach
kdm
über http://packages.linuxmint.com/“
). Nach unseren
Recherchen funktionieren bislang keine der vom Debian-Projekt bekannten
Kurzformen.
Abbildung 8.14. Ergebnis der Paketsuche nach
kdm
über
Suche über apt-browse.org
Diese Webseite pflegt Thomas Orozco
[apt-browse]
. Vorrangiges Ziel
von ihm ist, die Suche in Paketen nach bestimmten Dateien und Inhalten
zu vereinfachen. Es ist ein nicht-kommerzieller Dienst, der in der
Programmiersprache Python entwickelt wurde und die Python-APT-Bibliothek
aus dem Paket
python-apt
[Debian-Paket-python-apt]
benutzt (siehe
auch „APT und Bibliotheken“ in
Kapitel 5,
APT und Bibliotheken
).
Die Suche erlaubt die gleichzeitige Recherche in mehreren Architekturen
und in mehreren Veröffentlichungen. Eingepflegt sind bis dato die
Veröffentlichungen Debian
stable
und
unstable
sowie die
Ubuntu-Varianten der letzten 4 Jahre.
Das Suchergebnis hebt die exakten Treffer hervor, andere Einträge folgen
in der Auflistung darunter (siehe
Abbildung 8.15, „Ergebnis der Paketsuche nach
htop
über https://apt-browse.org/“
). Die Auswahl eines Suchtreffers
öffnet detaillierte Angaben zum Paketinhalt mit dem Paketnamen, der
Architektur, der Paketbeschreibung und den Paketabhängigkeiten. Die
ebenso angezeigte Dateiliste des Paketinhalts läßt Sie in dem Paket
datei- und verzeichnisweise schmökern.
Abbildung 8.15. Ergebnis der Paketsuche nach
htop
über
Suche über apt-get.org
apt-get.org
[apt-get.org]
bietet Ihnen die Möglichkeit zur Recherche
nach Paketen aus einem inoffiziellen Repository (siehe
Abbildung 8.16, „Auswahl der Paketmirror für bei
apt-get.org
). Das können neuere Paketversionen sein, aber auch
Pakete, die noch nicht oder nicht mehr Bestandteil der
Debian-Distribution sind.
Bitte beachten Sie bei der Auswahl der Paketquelle über diesen Dienst,
dass nicht jedes der angezeigten Repositories Pakete für alle
Architekturen (siehe
Abschnitt 1.2, „Debian-Architekturen“
) und Veröffentlichungen
(siehe
Abschnitt 2.10, „Veröffentlichungen“
) bereithält. Die Auswahl der Paketquelle
sagt zudem nichts über die Qualität der darüber angebotenen Pakete aus.
Auch wenn diese im Allgemeinen sehr hoch ist, bergen nicht
verifizierbare Pakete ein gewisses Risiko.
Abbildung 8.16. Auswahl der Paketmirror für bei
apt-get.org
Sehr hilfreich und zumeist auch der erste Anlaufpunkt ist die Paketsuche
unter dem Menüpunkt
. Im Eingabefeld geben Sie ein
Textfragment aus dem Namen eines Pakets ein, nachdem dann
apt-get.org
seine Liste der Spiegelserver durchforstet. Das Ergebnis ist eine Liste,
aus der Sie entnehmen können, von welchem Spiegelserver Sie das
gewünschte Paket beziehen können. Neben der Architektur (siehe
Abschnitt 1.2, „Debian-Architekturen“
) sehen Sie auch die Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
) und den Distributionsbereich (siehe
Abschnitt 2.9, „Distributionsbereiche“
), in die das gefundene Paket einsortiert ist.
Abbildung 8.17, „Suchergebnis der Recherche bei
apt-get.org
zeigt beispielhaft das Suchergebnis nach dem
Paket
libdvdcss
an, welches bei älteren Veröffentlichungen wie Debian
Woody
, Debian 3.1
Sarge
oder auch bei
Sid
für die drei
Debian-Architekturen
all
i386
und
powerpc
zum Lesen von DVDs
benötigt wird und hierüber zur Verfügung steht.
Abbildung 8.17. Suchergebnis der Recherche bei
apt-get.org
8.20.3. Paketsuchmaschinen
Die bisher angesprochenen Möglichkeiten zur Recherche über die Webseiten des
Debian- bzw. Ubuntu-Projekts beinhalten nur Pakete, die in den offiziellen
Repositories der jeweiligen Distribution enthalten sind. Für andere, externe
Pakete existieren hingegen spezielle Suchmaschinen und Verzeichnisdienste.
Diese aggregieren diverse Paketquellen und machen die darüber bereitstehenden
Pakete über eine einheitliche Schnittstelle zugänglich, zumeist eine Webseite.
Bekannt sind uns Pkgs
[pkgs]
, Repology
[repology]
und Rpmfind
[rpmfind]
und Rpmseek
[rpmseek]
. Während die drei erstgenannten Projekte viele
Paketformate abdecken, fokussiert Rpmfind lediglich auf
rpm
-Pakete. In
Abbildung 8.18, „Auswahl der Pakete für Debian GNU/Linux mittels Pkgs“
sind die Veröffentlichungen und Architekturen zu sehen, die via
Pkgs verfügbar sind,
Abbildung 8.19, „Ergebnis der Paketsuche nach
htop
über http://www.rpmseek.com/“
zeigt Rpmseek.
Abbildung 8.18. Auswahl der Pakete für Debian GNU/Linux mittels Pkgs
Gefundene Pakete können Sie nicht nur inspizieren, sondern direkt von der
angegebenen Quelle beziehen und installieren. Bitte beachten Sie aber, dass mit
diesen Suchmaschinen gefundene Pakete nicht immer den Qualitätsansprüchen von
Debian entsprechen, einer nicht-freien Lizenz unterliegen oder schlicht nicht
auf Ihrem System installierbar sind, weil z.B. manche Abhängigkeiten nicht
erfüllt werden. Diese mühselige Arbeit bleibt bei Ihnen liegen.
Abbildung 8.19. Ergebnis der Paketsuche nach
htop
über
Integration distributionsfremder
deb
-Pakete
Wie die Einbindung und Verifizierung von
deb
-Paketen aus den
Paketquellen erfolgt, erklären wir Ihnen unter „Paketquellen und
Werkzeuge“ in
Kapitel 3,
Paketquellen und Werkzeuge
genauer. Möchten sie auch
rpm
-Pakete einpflegen, sorgt „Fremdformate mit
alien
hinzufügen“
in
Abschnitt 23.2, „Fremdformate mit
alien
hinzufügen“
für Erleuchtung. Andere
Paketformate betrachten wir im Buch nicht weiter.
8.21. Pakete über die Paketbeschreibung finden
Bleibt ihre Recherche über den Paketnamen ohne Erfolg, dehnen Sie ihre
Suche am besten auf die gesamte Paketbeschreibung aus. Zur Recherche
darin helfen Ihnen die darauf spezialisierten Programme
apt-cache
aus
dem Paket
apt
[Debian-Paket-apt]
aptitude
aus dem gleichnamigen
Paket sowie
grep-available
und
grep-status
(beide aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
).
8.21.1. Suche mit
apt-cache
Das Kommando
apt-cache
rufen Sie mit dem Unterkommando
und
den gewünschten Suchbegriffen als Parameter auf. Es durchsucht daraufhin
die Kurz- und Langbeschreibung des Pakets und gibt den Paketnamen samt
einem Auszug aus der Paketbeschreibung aus. Die Suche über den
Paketnamen besprechen wir ausführlich in
„APT und
apt-cache
Der nachfolgende Aufruf demonstriert die Suche zum Stichwort
lintian
Das Ergebnis ist eine zeilenweise Auflistung aus dem Paketnamen gefolgt
von einem Auszug aus der Kurzbeschreibung zum Paket.
Suche nach verfügbaren Paketen mittels
apt-cache search
und dem Suchbegriff
lintian
$ apt-cache search lintian
debaux - Debian-Hilfsprogramme
dput - Werkzeug für das Hochladen von Debian-Paketen
fixincludes - Repariert Header-Dateien, die nicht ANSI-kompatibel sind
gdebi - Einfaches Programm für Betrachtung und Installation von deb-Dateien - GNOME-GUI
lintian - Debian-Paketprüfung
devscripts - scripts to make the life of a Debian Package maintainer easier
elida - pbuilder mail interface
libconfig-model-dpkg-perl - editor for Dpkg source files with validation
libdebian-package-html-perl - generates HTML from a Debian source/binary package
pkg-perl-tools - collection of tools to aid packaging Perl modules in Debian
rpmlint - RPM package checker
Das Suchergebnis grenzen Sie ein, in dem Sie im Aufruf von
apt-cache
einen oder mehrere Suchbegriffe angeben. Hier sehen Sie obigen Aufruf
mit den beiden Suchbegriffen
lintian
und
rpm
. Wie Sie sehen,
reduziert sich die Liste der Suchtreffer auf zwei Pakete.
Suche nach verfügbaren Paketen mittels
apt-cache search
und zwei Suchbegriffen.
$ apt-cache search lintian rpm
debaux - Debian-Hilfsprogramme
rpmlint - RPM package checker
Für ein noch ausführlicheres Suchergebnis kommt der Schalter
-f
(Langform
--full
) ins Spiel. Damit ist die Ausgabe identisch zum
Aufruf
apt-cache search show
und gibt den vollständigen Datensatz für
das Paket aus. Dieser umfaßt den Paketnamen, den Hashwert zum Paket
sowie die hinterlegte Paketbeschreibung.
Suche nach verfügbaren Paketen mittels
apt-cache search
und zwei Suchbegriffen (vollständige Paketbeschreibung).
$ apt-cache search --full lintian rpm
Package: debaux
Description-md5: fee7fd0fa25d42a9151a2e3b88577a50
Description-de: Debian-Hilfsprogramme
Dies Paket enthält Perlprogramme und -module für die
Erstellung und Veröffentlichung von Debian-Paketen.
debaus-build lädt automatisch APT-Quellen vor dem Erzeugen
herunter, fügt Patches und zusätzliche Quellen hinzu. Es kann
die Pakete in einer chroot-Umgebung anlegen, die erzeugten
Pakete werden lintian geprüft, auf dem lokalen Rechner installiert
oder konvertiert nach RPM.
debaux-build besitzt experimentel die Unterstützung für das
downloaden von Perl-Modulen von CPAN und das Erzeugen
passender Debian-Pakete.
debaux-publish lädt die Pakete hoch und führt Skripte zum Erstellen
der APT-Quellen und Paketdateien auf dem entfernten Rechner aus.
debaux-publish unterstützt z.Zt. noch nicht die Pool-Struktur.

Package: rpmlint
Description-md5: b8da9a736db7db144d0b4163fc42d180
Description-en: RPM package checker
rpmlint is a tool for checking common errors in rpm packages. rpmlint
can be used to test individual packages before uploading or to check
an entire distribution. By default all applicable checks are
performed but specific checks can be performed by using command line
parameters.
rpmlint can check binary rpms (files and installed ones), source rpms,
and plain specfiles, but all checks do not apply to all argument
types. For best check coverage, run rpmlint on source rpms instead of
plain specfiles, and installed binary rpms instead of uninstalled
binary rpm files.
The idea for rpmlint is from the lintian tool of the Debian project.

apt-cache
bringt bislang keinen Schalter mit, um den Suchbegriff in
der Ausgabe farblich hervorzuheben. Hier bleibt Ihnen nur die
Erweiterung des Aufrufs mittels
grep
und dem dazugehörigen Schalter
--color
8.21.2. Suche mit Hilfe von
aptitude
Ohne weitere Parameter im Aufruf gleicht
aptitude
den Suchbegriff nur
mit den Paketnamen ab. Für die Suche über die Paketbeschreibung versteht
es eine Reihe von Parametern:
~dsuchbegriff
(Langform
?description(suchbegriff)
Suche nach dem
suchbegriff
in der Paketbeschreibung.
?term(suchbegriff)
Volltextsuche nach
suchbegriff
im Namen und der Beschreibung des Pakets.
?term-prefix(suchbegriff)
Volltextsuche nach Begriffen, die den
suchbegriff
als Präfix
beinhalten. Suche im Namen und der Beschreibung des Pakets.
Das nachfolgende Beispiel sucht nach allen Paketen, in deren
Paketbeschreibung der Begriff ‚lintian‘ vorkommt:
Suche in der Paketbeschreibung mittels
aptitude
$ aptitude search ~dlintian
p debaux - Debian-Hilfsprogramme
i devscripts - scripts to make the life of a Debian Package maintainer
i A dput - Werkzeug für das Hochladen von Debian-Paketen
p elida - pbuilder mail interface
p fixincludes - Repariert Header-Dateien, die nicht ANSI-kompatibel sind
p gdebi - Einfaches Programm für Betrachtung und Installation von
p libconfig-model-dpkg-perl - editor for Dpkg source files with validation
p libdebian-package-html-perl - generates HTML from a Debian source/binary package
i A lintian - Debian-Paketprüfung
p pkg-perl-tools - collection of tools to aid packaging Perl modules in Deb
p rpmlint - RPM package checker
Die anderen beiden Filter liefern eine ähnliche Ausgabe wie oben,
berücksichtigen jedoch sowohl den Paketnamen, als auch die
Paketbeschreibung.
8.21.3. Suche mit
grep-available
und
grep-status
Die beiden Werkzeuge
grep-available
und
grep-status
gehören zum
Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
. Mit den Angaben
-F Description
(Beschreibungsfeld, Langform
--field
),
-i
(unabhängig von Groß- und Kleinschreibung, Langform
--ignore-case
sowie dem Suchbegriff als Parameter durchstöbert
grep-available
die
gesamte Paketbeschreibung und liefert als Ergebnis den gesamten
Datensatz zum gefundenen Paket zurück.
Nachfolgender Aufruf für die Praxis schränkt die Ausgabe noch weiter ein
und zeigt Ihnen von allen gefundenen Paketen nur die entsprechenden
Paketnamen an.
grep
filtert dazu aus der Ausgabe die Zeile heraus, in
der das Suchwort
Package
vorkommt. Das abschließende
sort
-Kommando
sorgt darüberhinaus für eine Ausgabe in alphabetisch aufsteigender
Abfolge.
Verfügbare Pakete anzeigen, bei denen in der Beschreibung die Zeichenfolge
deb
enthalten ist.
$ grep-available -F Description -i deb | grep Package | sort
Package: base-files
Package: base-passwd
Package: debconf
Package: debconf-i18n
Package: debian-archive-keyring
Package: debianutils
Package: dpkg
Package: libapt-inst1.5
Package: libdebconfclient0
Package: tasksel
Package: tasksel-data
grep-available
findet alle Pakete – unabhängig davon, ob diese auf
ihrem System installiert sind, oder nicht. Mit dem nachfolgenden Aufruf
erhalten Sie die Liste der installierten Pakete, bei denen in der
Beschreibung die Zeichenfolge
xpdf
enthalten ist. Zum Einsatz kommt
hierbei der zusätzliche Schalter
-s
(Langform
--show-field
). Darüber
wertet
grep-status
den Paketstatus aus.
Lediglich die installierten Pakete anzeigen, bei denen in der Beschreibung die Zeichenfolge
xpdf
enthalten ist.
$ grep-status -F Description -i -s Package xpdf | grep Package | sort
Package: libpoppler46
Package: libpoppler-cpp0
Package: libpoppler-glib8
Package: libpoppler-qt4-4
Package: poppler-utils
Package: xpdf
Analog zu
grep
verfügt
grep-status
ebenfalls über den hilfreichen
Schalter
-v
(Langversion
--invert-match
). Bei Bedarf verkehren Sie
mit diesem das Suchergebnis in das Gegenteil.
8.22. Paket nach Maintainer finden
Als
Debian Maintainer
versteht sich diejenige Einzelperson oder das
Team, welche(s) eine Software betreut und für das entsprechende
Debian-Paket verantwortlich zeichnet. Maintainer kümmern sich darum, dass
das Paket gepflegt wird, d.h. Änderungen und Verbesserungen aus dem
Upstream in das Paket unter Berücksichtigung der Debian-Spezifika
einfließen, dieses dabei weiterhin den Debian-Richtlinien entspricht und
in möglichst stabiler Form verfügbar bleibt
[Debian-Wiki-Maintainer]
8.22.1. Welche Pakete betreut ein Debian-Maintainer
Diese Information liefern Ihnen mehrere Werkzeuge –
aptitude
grep-dctrl
und Synaptic. Die Unterschiede liegen im Aufruf und den
Parametern.
aptitude
kennt den Schalter
~m
gefolgt von der Emailadresse des
Maintainers. Damit finden Sie die
Binärpakete
, in denen dieser
Maintainer als Verantwortlicher eingetragen ist. Für Axel Beckert und
seine Emailadresse
abe@debian.org
lautet der komplette Aufruf
aptitude search '~m abe@debian.org'
. In der Schreibweise ist
aptitude
sehr tolerant – es gestattet den Aufruf mit und auch ohne
Leerzeichen zwischen der Option und der Emailadresse.
Paketfilterung nach der Emailadresse des Maintainers mittels
aptitude
$ aptitude search '~m abe@debian.org'
p aha - Konvertiert ANSI-Farben nach HTML
p amora-applet - use a bluetooth device as X remote control (
p amora-cli - use a bluetooth device as X remote control (
p autossh - SSH-Sitzungen und -Tunnel automatisch neu st
p conkeror - Tastaturbedienbarer Webbrowser mit Emacs-ähn
p conkeror-spawn-process-helper - spawn external processes in Conkeror
p dillo - Kleiner und schneller Webbrowser
p dphys-config - Werkzeug zum Verteilen von Konfigurationsdat
p dphys-swapfile - Automatisches Generieren und Nutzen einer Au
p libapache2-mod-macro - Create macros inside Apache config files
p links - Textmodus-Webbrowser
i links2 - Webbrowser für den graphischen und den Textmo
...
Obige Ausgabe basiert auf dem Formatstring
-F '%c%a%M %p - %d'
. Die
einzelnen Buchstaben stehen für den aktuellen Paketstatus (
%c
), die
Aktion des Pakets (
%a
), automatische Installation (
%M
), den
Paketnamen (
%p
) und die Paketbeschreibung (
%d
). Eine detaillierte
Übersicht zu allen zulässigen Formatoptionen erklären wir Ihnen unter
aptitude
Format Strings“ in
Abschnitt 10.8, „
aptitude
Format Strings“
. Eine
Alternative bietet zudem das Aptitude Handbuch
[aptitude-dokumentation-paketdarstellung]
Möchten Sie in der Ausgabe stattdesen nur den Paketnamen, die
Paketbeschreibung und den Paketmaintainer ausgeben, helfen Ihnen dabei
die drei Optionen
%p
%d
und
%m
weiter. Letztgenanntes steht als
Abkürzung für
maintainer
Paketsuche nach Paketnamen, Paketbeschreibung und Paketmaintainer.
$ aptitude search -F '%p - %d - %m' '~mabe@debian.org'
aha - Konvertiert ANSI-Farben nach HTML - Axel Beckert
amora-applet - use a bluetooth device as X remote - Axel Beckert
amora-cli - use a bluetooth device as X remote - Axel Beckert
autossh - SSH-Sitzungen und -Tunnel automati - Axel Beckert
...
Das Programm
grep-dctrl
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
sucht alle Pakete heraus, bei dem als
Maintainer oder Uploader die angefragte Person hinterlegt ist und gibt
diese zum gefundenen Paketnamen aus. Als weiteren Parameter benötigt es
noch die lokal gespeicherte Paketliste, die es durchsuchen soll. Im
nachfolgenden Beispiel ist das die Paketliste für den Paketmirror
ftp.de.debian.org
für die Distribution Debian 7
Wheezy
sowie daraus
der Bereich
main
und die Architektur
i386
Suche nach Maintainer und Uploader in der lokalen Paketliste (Ausschnitt).
$ grep-dctrl -F Maintainer,Uploaders abe@debian.org -s Package,Maintainer,Uploaders /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages
Package: aha
Maintainer: Axel Beckert

Package: amora-applet
Maintainer: Axel Beckert

Package: amora-cli
Maintainer: Axel Beckert

Package: autossh
Maintainer: Axel Beckert

...
Das graphische Programm Synaptic (
Abschnitt 6.4.1, „Synaptic“
) handhabt das ganze
etwas anders und bietet Ihnen einen passenden Menüeintrag an. Unter dem
Eintrag
Bearbeiten
Suchen
bzw. mit der Tastenkombination
Ctrl
erreichen Sie den Suchdialog. Im Auswahlfeld selektieren
Sie den Eintrag
Betreuer
und tragen im Eingabefeld dessen
Namen ein. Daraufhin liefert Ihnen Synaptic ein Ergebnis wie in
Abbildung 8.20, „Ergebnis der Suche nach dem Paketmaintainer in Synaptic“
. In der linken Spalte der
Paketauswahl erscheint zudem ein zusätzlicher Eintrag mit dem Namen des
Paketmaintainers.
Abbildung 8.20. Ergebnis der Suche nach dem Paketmaintainer in Synaptic
8.22.2. Rückrichtung: Wer betreut ein bestimmtes Paket
Interessant ist natürlich auch die Rückrichtung: das Ausgeben aller
Maintainer und Co-Maintainer zu einer Liste von Source- und
Binärpaketen. Das gelingt Ihnen mit dem Kommando
dd-list
aus dem Paket
devscripts
[Debian-Paket-devscripts]
. Als Parameter geben Sie die
Namen der Pakete an, die Sie interessieren. Leider werden in der Ausgabe
die Co-Maintainer irreführend als Uploader mit einem großen
benannt.
Ausgabe der Maintainer und Co-Maintainer mittels
dd-list
$ dd-list screen xymon fping ack
Antti Järvinen
screen (U)

Axel Beckert
ack (U)
fping
screen
xymon (U)

Christoph Berg
xymon

Debian Perl Group
ack
Viele Entwickler mögen dieses Kommando sehr. Sie verwenden es, um Listen
von einem bestimmten Problem oder einer Migration betroffenen Pakete zu
erhalten. Darin suchen sie nach ihrem eigenen Namen und wenn dieser
nicht mehr darin auftaucht, haben sie keine Arbeit mehr damit ;-)
8.23. Paket nach Lizenz finden
Entwickeln Sie Software und stellen diese der Aussenwelt zur Verfügung — bspw. als Freie Software — gehört eine Softwarelizenz einfach dazu.
Mit der Lizenz legen Sie fest, was jemand anderes mit ihrem Werk tun
darf. Das betrifft sowohl die private Nutzung, als auch den
kommerziellen Einsatz. Eine Mehrfachlizenzierung liegt vor, wenn Sie für
beide Nutzungsarten jeweils eine unterschiedliche Lizenz angeben.
dpkg
, Apt, Aptitude und Synaptic beherrschen bislang keine Recherche
oder Paketauswahl anhand der Lizenz. Die Werkzeuge können die vergebene
Lizenz nicht zweifelsfrei aus den Metadaten zum Paket auslesen. Ursache
ist, dass nicht alle deb-Pakete über eine standardisierte, maschinell
auslesbare Lizenzdatei verfügen. Seit 2012 wird bereits daran gearbeitet,
diesen Umstand zu beheben.
Behelfen können Sie sich bislang nur insofern, dass Sie die
Paketverwaltung so einstellen, nur Pakete aus ausgewählten
Distributionsbereichen zuzulassen. Möchten Sie beispielsweise
ausschließlich Pakete auf ihrem System zulassen, die unter freien
Lizenzen stehen und auch nicht von unfreien Paketen abhängig sind (siehe
„Distributionsbereiche“ in
Abschnitt 2.9, „Distributionsbereiche“
), begrenzen Sie
diese auf den Bereich
main
(siehe „Die Datei
/etc/apt/sources.list
verstehen“ in
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
).
8.24. Paket zu Datei finden
Häufig ist Ihnen nur der Dateiname bekannt, aber nicht das Paket, aus
dem diese Datei stammt. Das wird insofern spannend, wenn das Paket
anders als die gesuchte Datei heißt. Es gibt derzeit fünf Möglichkeiten,
diese Zuordnung zu ermitteln – einerseits über
dpkg
dpkg-query
oder
dlocate
[Debian-Paket-dlocate]
mit deren Option
-S Muster
andererseits mittels
apt-file
und dessen Option
search Muster
und
fünftens über die Webseite des Debian-Projekts.
aptitude
verfügt nicht
über einen solchen Schalter zur Suche.
Die vier Kommandos finden alle Pfade, in denen das angegebene „Muster“
vorkommt. Der Unterschied zwischen den vier Programmen besteht darin,
dass
dpkg
dpkg-query
und
dlocate
nur in bereits installierten
Paketen suchen,
apt-file
hingegen hingegen in allen verfügbaren
Paketen, d.h. unabhängig davon, ob diese bereits auf ihrem System
installiert sind oder nicht. Verfügbare Pakete bezeichnet die Menge von
Paketen, die APT über einen Eintrag in der Liste der Paketquellen in der
Datei
/etc/apt/sources.list
und aus der dazugehörigen Paketliste
entnehmen kann (siehe dazu
Abschnitt 3.1, „Paketquellen“
). Pakete, die sich hingegen
in Paketquellen befinden, die nicht in obiger Liste referenziert sind,
kann
apt-file
nicht untersuchen.
Bei der Suche über die Webseite bildet zunächst der gesamte
Paketbestand aller Veröffentlichungen die Grundlage. Sie können das
jederzeit entsprechend über die Auswahlfelder zur Veröffentlichung oder
Architektur einschränken.
8.24.1. Suche in bereits installierten Paketen
Dafür genügen der Aufruf
dpkg -S Muster
dpkg-query -S Muster
oder
die flinke Abkürzung
dlocate Muster
. Zur Suche ist bei
dlocate
der
Schalter
-S
optional,
dpkg
und
dpkg-query
kennen hingegen dafür die
Langform
--search
. Das Textfragment oder Muster beschreibt, wonach die
Programme in der Dateiliste der installierten Pakete suchen sollen.
Beginnt das Textfragment mit einem
, wird die Zeichenkette als
absoluter Pfad interpretiert. Nachfolgendes Beispiel illustriert den
Aufruf nach dem Muster
bsod.
mittels
dpkg
in allen installierten
Paketen.
Suche nach dem Muster
bsod.
mittels
dpkg
$ dpkg -S bsod.
xscreensaver-screensaver-bsod: /usr/share/applications/screensavers/bsod.desktop
xscreensaver-screensaver-bsod: /usr/share/man/man6/bsod.6x.gz
xscreensaver-screensaver-bsod: /usr/share/xscreensaver/config/bsod.xml
dlocate
liefert im Allgemeinen ein identisches Ergebnis zu
dpkg
bzw.
dpkg-query
. Da
dlocate
zur Suche auf
grep
zurückgreift, hat es
mitunter eine höhere Trefferrate. Nachfolgendes Beispiel zeigt die Suche
nach dem absoluten Pfad
/bsod.
– sowohl für
dpkg
, als auch zu
dlocate
im Vergleich.
Suche nach der Pfadangabe
/bsod.
$ dpkg -S /bsod.
dpkg-query: Kein Pfad gefunden, der auf Muster /bsod. passt
$ dlocate -S /bsod.
xscreensaver-screensaver-bsod: /usr/share/applications/screensavers/bsod.desktop
xscreensaver-screensaver-bsod: /usr/share/man/man6/bsod.6x.gz
xscreensaver-screensaver-bsod: /usr/share/xscreensaver/config/bsod.xml
8.24.2. Suche in noch nicht installierten Paketen
Dafür gibt es das Werkzeug
apt-file
aus dem gleichnamigen
Debian-Paket. Grundlage seiner Aktivitäten ist die Liste der
Paketquellen in
/etc/apt/sources.list/
und die Liste der Dateien in
jedem der Pakete, die von dort bezogen werden. Diese Inhaltslisten haben
typischerweise einen Dateinamen der Form
Contents-.
und sind selbst
komprimiert bis zu 50 MB groß. Seit
apt-file
Version 3.0 aufwärts
werden diese bei einer Aktualisierung der Paketlisten (z.B. mittels
apt
update
) automatisch mitheruntergeladen und wie die normalen Paketlisten
im Verzeichnis
/var/lib/apt/lists/
abgespeichert. (Ist
apt-file
hingegen nicht installiert, so lädt
apt update
diese Inhaltslisten
auch nicht herunter.)
Liste der Paketinhaltslisten anzeigen (
apt-file
Version 3.0 aufwärts).
$ ls /var/lib/apt/lists/*Contents*
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye_contrib_Contents-amd64.lz4
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye_main_Contents-amd64.lz4
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye_non-free_Contents-amd64.lz4
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye-secrutiy_main_Contents-amd64.diff_Index
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye-security_main_Contents-amd64.lz4
/var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye-security_non-free_Contents-amd64.lz4
apt-file
Version 3.0 und höher ist seit Debian 9 Stretch mit dabei.
Bei älteren Version von
apt-file
, wie z.B. auf Debian 8 Jessie und
früher musste man diese Paketinhaltslisten mittels
apt-file update
stets manuell aktualisieren. Außerdem sie wurden auch in einem anderen
Verzeichnis abgespeichert, nämlich in
/var/lib/apt/lists/
apt-file
verfügt über eine ganze Reihe von Unterkommandos und
Schaltern, von denen wir Ihnen die wichtigsten vorstellen. Weitere
Schalter entnehmen Sie bitte der Manpage zum Programm.
search Suchmuster
Suche danach, in welchem Paket die als
Suchmuster
angegebene Datei
enthalten ist. Ergebnis ist eine Liste aller Pakete, die das angegebene
Suchmuster
enthalten.
apt-file
sucht dabei nur nach Dateinamen, nicht
jedoch nach Verzeichnisnamen.
find Suchmuster
Alias für den Schalter
list Paketname
gibt den Paketinhalt aus, auf den das Suchmuster passt. Diese Aktion ist
sehr ähnlich zum Aufruf
dpkg -L
, nur das hier die Pakete noch nicht
installiert sein müssen.
show Paketname
Alias für den Schalter
list
-a
(Langform
--architecture
Einschränkung der Suche auf die angegebene Architektur (siehe
Abschnitt 1.2, „Debian-Architekturen“
).
-D
(Langform
--from-deb
sucht nach Vorkommen aller Dateien in der als Parameter angegebenen
.deb
-Datei. Nützlich, um nach Dateikonflikten mit anderen Paketen zu
suchen.
-f
(Langform
--from-file
sucht nach dem Vorkommen aller Suchmuster, die in der angegebenen
Textdatei stehen.
-i
(Langform
--ignore-case
Suche unabhängig von Groß- und Kleinschreibung des Suchmusters.
-l
(Langform
--package-only
Das Ergebnis ist nur der Paketname, auf den das Suchmuster passt.
Dateinamen werden nicht berücksichtigt.
-v
(Langform
--verbose
Schalter für eine ausführliche Ausgabe. Damit zeigt
apt-file
an, wo es
seine Informationen herholt und wonach es genau sucht. Die Ausgabe ist
spätestens seit Version 3.0 sehr verbos und eigentlich nur noch zum
Debuggen gedacht, aber dennoch nützlich.
-x
(Langform
--regexp
interpretiert das Suchmuster als Regulären Ausdruck, so wie ihn Perl
versteht (PCRE). Ohne diesen Schalter fasst
apt-file
das Suchmuster
als schlichte Zeichenkette auf.
Etwas nachteilig an
apt-file
ist, dass es in der Standardeinstellung
alle Paketquellen durchsucht und Ihnen dabei nicht anzeigt, in welcher
davon es den Treffer gefunden hat. Das führt zu Verwirrung, bspw. wenn
in der Liste der Paketquellen die Veröffentlichungen
stable
und
stable-backports
eingetragen sind.
apt-file
verfügt bislang nicht
über einen Schalter, um die Ausgabe dementsprechend zu beeinflussen.
Aktuelle Strukturdatenbank
Um mit
apt-file
arbeiten zu können, müssen nach der Installation des
Paketes mindestens einmal die Paketinhaltslisten aktualisiert werden.
Das nehmen Sie entweder mittels
apt-file update
vor, oder indem Sie
die Paketlisten aktualisieren — z.B. mittels
apt update
oder
apt-get
update
. Bei Versionen von
apt-file
vor Version 3.0 geht dies noch
nicht automatisch und nur mittels
apt-file update
Unterbleibt dieser Schritt, quittiert
apt-file
einen Aufruf zur Suche
mit der Fehlermeldung »The cache is empty. You need to run "apt-file
update" first.« (auf Deutsch: »Der Cache ist leer. Sie zuerst müssen
"apt-file update" aufrufen.«)
Das nachfolgende Beispiel zeigt die Suche nach der Zeichenkette
fping
Suche über die Strukturdatenbank mittels
apt-file
$ apt-file search fping
cacti: /usr/share/cacti/site/scripts/ss_fping.php
fping: /usr/bin/fping
fping: /usr/bin/fping6
fping: /usr/share/bug/fping
fping: /usr/share/doc/fping/NEWS.Debian.gz
fping: /usr/share/doc/fping/changelog.Debian.gz
fping: /usr/share/doc/fping/changelog.gz
fping: /usr/share/doc/fping/copyright
fping: /usr/share/lintian/overrides/fping
fping: /usr/share/man/man8/fping.8.gz
fping: /usr/share/man/man8/fping6.8.gz
icingaweb2-module-graphite: /usr/share/icingaweb2/modules/graphite/templates/fping.ini
mon: /usr/lib/mon/mon.d/fping.monitor
monitoring-plugins-standard: /usr/lib/nagios/plugins/check_fping
monitoring-plugins-standard: /usr/share/monitoring-plugins/templates-standard/fping.cfg
netdata-core: /usr/lib/netdata/conf.d/health.d/fping.conf
netdata-plugins-bash: /usr/lib/netdata/conf.d/fping.conf
netdata-plugins-bash: /usr/lib/netdata/plugins.d/fping.plugin
python3-nova: /usr/lib/python3/dist-packages/nova/api/openstack/compute/fping.py
python3-nova: /usr/lib/python3/dist-packages/nova/tests/functional/api_sample_tests/test_fping.py
smokeping: /usr/share/doc/smokeping/examples/config.fping-instances.gz
8.24.3. Suche über die Webseite des Debian-Projekts
Die Webseite bietet ebenfalls eine Suche anhand einer Zeichenfolge an
(siehe
Abbildung 8.21, „Suche nach
mupdf
über die Webseite“
). Über verschiedene Auswahlfelder grenzen
Sie ein, ob die Zeichenfolge auf feste Verzeichnisse passen soll, die
mit einem Suchwort enden, oder Pakete mit Dateien beinhalten soll, die so
benannt sind oder deren Namen das Suchwort enthalten. Desweiteren
filtern Sie die Suchergebnisse nach der gewünschten Veröffentlichung und
Architektur (siehe dazu
Abschnitt 2.10, „Veröffentlichungen“
und
Abschnitt 1.2, „Debian-Architekturen“
).
Abbildung 8.21. Suche nach
mupdf
über die Webseite
Die
Abbildung 8.22, „Suche nach der Zeichenkette
mupdf
über die Webseite des Debian-Projekts (Suchergebnis)“
zeigt das Suchergebnis für die
Veröffentlichung
Bullseye
, welches hier recht lang ausfällt. Die
Treffer zeigen das Paket
mupdf
samt der dazu gefundenen Dateien mit
dem Suchmuster. Klicken Sie auf einen der Links zwischen dem Suchfeld
und dem Suchergebnis, schränken Sie die Suche anhand der gewählten
Veröffentlichung bzw. Architektur weiter ein.
Abbildung 8.22. Suche nach der Zeichenkette
mupdf
über die Webseite des Debian-Projekts (Suchergebnis)
8.25. Paket auseinandernehmen
8.25.1. Mit
ar
in seine Bestandteile zerlegen
Manchmal kann es ganz nützlich sein, wenn Sie ein Debianpaket vorliegen haben
und dieses
deb
-Datei in seine Bestandteile zerlegen können. Mit dem folgenden
Aufruf über das Kommando
ar
gelingt Ihnen das wie folgt:
Ein Debianpaket auseinandernehmen.
$ ar -xv atom-amd64.deb
x - debian-binary
x - control.tar.gz
x - data.tar.xz
Der Schalter
-x
sorgt für das Auspacken und
-v
steht für
verbose
, d.h.
ausführliche Ausgabe. Als Ergebnis erhalten Sie diese drei Dateien im aktuellen
Verzeichnis:
debian-binary
enthält die Versionsnummer des verwendeten Debian-Paketformats, beispielsweise "2.0".
control.tar.gz
ist ein komprimiertes tar-Archiv mit den Metadaten des Pakets.
data.tar.gz
data.tar.xz
data.tar.bz2
ist ein komprimiertes tar-Archiv mit den eigentlichen Dateien, die vom Programm benötigt werden.
ar
ist so nett und erlaubt Ihnen auch nur das Auspacken einer einzelnen
Komponente. Um bspw. lediglich die Versionsnummer zu erhalten, sieht ihr Aufruf
dann wie folgt aus:
Eine Komponente des Debianpakets herausziehen.
$ ar -xv atom-amd64.deb debian-binary
x - debian-binary
Weitere Informationen zu den verschiedenen Paketformaten und deren Komponenten
entnehmen Sie bitte dem
Abschnitt 4.2, „Aufbau und Format“
8.25.2. Mit
dpkg
die Installationsstruktur herausfinden
Im Gegensatz zu
ar
hilft Ihnen
dpkg
dabei, herauszufinden, in welche
einzelnen Verzeichnisse die Inhalte eines Pakets kopiert werden. Der
Schalter
-L
(Langform
--listfiles
) zeigt Ihnen lediglich den
entsprechenden Pfad an (siehe
Abschnitt 8.26, „Paketinhalte anzeigen“
). Mit Hilfe
von
-x
(Langform
--extract
) packt
dpkg
das Paket hingegen vollständig
aus. Intern reicht es dabei die Ausführung an das Werkzeug
dpkg-deb
weiter.
Als zusätzlichen Parameter geben Sie im Aufruf ein Verzeichnis an, in das die
Inhalte aus dem Paket kopiert werden sollen. Das nachfolgende Beispiel nutzt
für das lokale Verzeichnis.
Abbildung 8.23. Ein Paket mit
dpkg -x
auspacken
8.26. Paketinhalte anzeigen
In einem Paket sind stets mehrere Dateien zusammengefasst. Mit den sechs
Werkzeugen
dpkg
dpkg-deb
dpkg-query
dlocate
apt-file
und
dglob
zeigen Sie den Inhalt eines Pakets an. Dabei sind
dpkg-deb
und
dpkg-query
Hilfsprogramme von
dpkg
und verstehen die gleichen
Schalter.
Es sind mehrere Fälle zu unterscheiden, die jeweils unterschiedliche
Aufrufe nachsichziehen:
das Paket ist bereits installiert
dpkg -L
Paketname
dpkg-query -L
Paketname
dlocate -ls
Paketname
sowie mittels
dglob -f
Paketname
. Der Parameter
Paketname
bezeichnet lediglich den Namen des Pakets (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
) ohne Angabe der Versionsnummer.
das Paket ist nicht installiert, liegt aber als Datei vor
dpkg -c
deb-Datei
oder
dpkg-deb -c
deb-Datei
. Der Parameter
deb-Datei
ist ein Paketarchiv in Form einer lokal vorliegenden Datei.
Befindet sich die Datei nicht im aktuellen Verzeichnis, von dem aus Sie
das Kommando aufrufen, ergänzen Sie im Aufruf den dazugehörigen
Verzeichnispfad, in dem das Paketarchiv liegt.
das Paket muss nicht installiert sein, kann aber
apt-file show
Paketname
apt-file list
Paketname
und
dglob -f
Paketname
. Der Parameter
Paketname
bezeichnet hier lediglich den
Namen eines Pakets (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
) ohne Angabe
der Versionsnummer.
8.26.1.
dpkg -L
Paketname
Die Langform des Schalters ist
--listfiles
. Beide Schalter versteht
ebenso das Hilfsprogramm
dpkg-query
und erzeugt die gleiche Ausgabe.
Damit listen Sie den Paketinhalt mit allen Pfaden auf. Jede
Verzeichnisebene ist separat aufgeführt. Das nachfolgende Beispiel
verdeutlicht das am Paket
xterm
Auflistung des Paketinhalts mit allen Pfaden via
dpkg
$ dpkg -L xterm
/.
/etc
/etc/X11
/etc/X11/app-defaults
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/KOI8RXTerm
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/XTerm
...
8.26.2.
dlocate -L
Paketname
Eine identische Ausgabe zum vorherigen
dpkg
-Aufruf ermöglicht Ihnen
das Programm
dlocate
[Debian-Paket-dlocate]
mit dem Schalter
-L
Beachten Sie hierbei jedoch, dass
dlocate
die Angabe des Paketnamens
als regulären Ausdruck interpretiert.
8.26.3.
dlocate -ls
Paketname
Nutzen Sie statt
-L
hingegen den Schalter
-ls
, wird die Ausgabe sehr
ausführlich. Es entspricht dem Aufruf des UNIX-Kommandos
ls -ldF
bezogen auf alle Dateien, die in dem Paket enthalten sind.
Auflistung des Paketinhalts in ausführlicherer Form via
dlocate
$ dlocate -ls xterm
drwxr-xr-x 22 root root 4096 Sep 11 09:12 /./
drwxr-xr-x 160 root root 12288 Feb 7 05:58 /etc/
drwxr-xr-x 13 root root 4096 Dez 30 2017 /etc/X11/
drwxr-xr-x 2 root root 4096 Jul 8 2020 /etc/X11/app-defaults/
-rw-r--r-- 1 root root 2400 Mär 1 2015 /etc/X11/app-defaults/KOI8RXTerm
-rw-r--r-- 1 root root 6217 Mär 1 2015 /etc/X11/app-defaults/KOI8RXTerm-color
-rw-r--r-- 1 root root 3609 Mär 1 2015 /etc/X11/app-defaults/UXTerm
-rw-r--r-- 1 root root 6209 Mär 1 2015 /etc/X11/app-defaults/UXTerm-color
-rw-r--r-- 1 root root 10201 Mär 1 2015 /etc/X11/app-defaults/XTerm
-rw-r--r-- 1 root root 6207 Mär 1 2015 /etc/X11/app-defaults/XTerm-color
...
8.26.4.
dpkg -c
deb-Datei
Sie verwenden den Schalter
-c
, um sich den Inhalt eines
deb
-Pakets
anzeigen zu lassen (Langform
--contents
). Dieses Paket wird
dpkg
als
Parameter übergeben und kann sowohl eine Datei in einem lokalen
Verzeichnis bezeichnen, als auch den Namen eines Archivs. Im Gegensatz
zu
dpkg -L
muss das Paket nicht auf ihrem System installiert sein.
Intern übergibt
dpkg
die Ausführung an
dpkg-deb
, welches Sie auch
separat aufrufen können.
Auflistung des Paketinhalts mit allen Informationen via
dpkg
$ dpkg -c /var/cache/apt/archives/xterm_312-2_amd64.deb
drwxr-xr-x root/root 0 2015-03-01 12:47 ./
drwxr-xr-x root/root 0 2015-03-01 12:47 ./etc/
drwxr-xr-x root/root 0 2015-03-01 12:47 ./etc/X11/
drwxr-xr-x root/root 0 2015-03-01 12:47 ./etc/X11/app-defaults/
-rw-r--r-- root/root 6209 2015-03-01 12:47 ./etc/X11/app-defaults/UXTerm-color
-rw-r--r-- root/root 3609 2015-03-01 12:47 ./etc/X11/app-defaults/UXTerm
-rw-r--r-- root/root 6217 2015-03-01 12:47 ./etc/X11/app-defaults/KOI8RXTerm-color
-rw-r--r-- root/root 2400 2015-03-01 12:47 ./etc/X11/app-defaults/KOI8RXTerm
-rw-r--r-- root/root 6207 2015-03-01 12:47 ./etc/X11/app-defaults/XTerm-color
-rw-r--r-- root/root 10201 2015-03-01 12:47 ./etc/X11/app-defaults/XTerm
...
8.26.5.
apt-file show
Paketname
und
apt-file list
Paketname
Die beiden Optionen
show
und
list
des Werkzeugs
apt-file
sind
synonym zueinander. Wie
dpkg -L
liefern sie den Inhalt des Paketes,
allerdings nur die Dateien und nicht wie
dpkg -L
auch noch die
enthaltenen (potentiell sogar leeren) Verzeichnisse. Dafür zeigt
apt-file show
immer auch noch den Paketnamen als Präfix in jeder
Zeile mit an. Das nachfolgende Beispiel zeigt den Aufruf für das Paket
xterm
Paketinhalt in kompakter Form mittels
apt-file
$ apt-file show xterm
xterm: /etc/X11/app-defaults/KOI8RXTerm
xterm: /etc/X11/app-defaults/KOI8RXTerm-color
xterm: /etc/X11/app-defaults/UXTerm
xterm: /etc/X11/app-defaults/UXTerm-color
xterm: /etc/X11/app-defaults/XTerm
xterm: /etc/X11/app-defaults/XTerm-color
xterm: /usr/bin/koi8rxterm
xterm: /usr/bin/lxterm
xterm: /usr/bin/resize
xterm: /usr/bin/uxterm
xterm: /usr/bin/xterm
...
Unterschiedliches Verhalten von
apt-file
in den Veröffentlichungen
In Debian 8
Jessie
bzw. vor Version 3.0 verhält sich
apt-file show
bzw.
apt-file list
anders als in den nachfolgenden
Debian-Veröffentlichungen. Eine Suche mittels
list
und
show
gibt
alle Pakete aus, in denen das Suchmuster im Paketnamen vorkommt. Eine
Suche nach
xterm
liefert zum Beispiel auch Treffer für die Pakete
ajaxterm
kxterm
und
xtermcontrol
Ab Debian 9
Stretch
bzw.
apt-file
Version 3.0 zeigen
apt-file
show
und
apt-file list
nur noch die Dateien für genau das
angegebene Paket an.
8.26.6. Einsatz von
dglob
Analog zu
apt-file
arbeitet das Werkzeug
dglob
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
. Die Ausgabe ist
ähnlich kompakt wie von
apt-file
. Der Schalter
-f
dient dabei zur
Ausgabe der Dateien im angefragten Paket, was wir nachfolgend erneut
anhand des Pakets
xterm
illustrieren.
Ergebnis der Recherche zum Paket
xterm
$ dglob -f xterm
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/KOI8RXTerm
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/XTerm
/usr/share/man/man1/lxterm.1.gz
...
Das Kommando
dglob
agiert üblicherweise nur auf den bereits
installierten Paketen. Mit dem Schalter
-a
weiten Sie Ihre Recherche
auf alle verfügbaren Pakete aus — auch auf diejenigen, die noch nicht
installiert sind. Für diesen Schritt setzt
dglob
auf das Programm
grep-aptavail
aus dem Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
auf. Nähere Informationen zu
dctrl-tools
erfahren Sie unter
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
8.27. Nach Muster in einem Paket suchen
Zur Lösung dieser Aufgabe steht Ihnen das Programm
dgrep
mit seinen
drei Varianten
degrep
dfgrep
und
dzgrep
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
zur Verfügung. Dieses
Shellskript kombiniert das Programm
dpkg
mit dem Suchwerkzeug
grep
und dessen Kollegen
egrep
fgrep
und
zgrep
miteinander. Je nach
Bedarf suchen Sie darüber entweder in den Dateien aller bereits
installierten Pakete oder lediglich in einer Auswahl davon. Nutzen Sie
dzgrep
, werden auch komprimierte Dateien in die Recherche mit
einbezogen. Die Auflösung, welche Datei zu einem Paket gehört, erfolgt
über das Programm
dglob
aus dem gleichen Paket.
Aufgrund der Verknüpfung der Programme können Sie zur Recherche nach dem
gesuchten Muster auch die meisten der Optionen, die Sie von den
grep
-Varianten her kennen, einsetzen. Das schließt bspw. reguläre
Ausdrücke und die farbige Hervorhebung der Suchtreffer in der Ausgabe
mit ein. Ausgenommen sind jedoch Verzeichnisse und das Verfolgen von
symbolischen Links.
In der nachfolgenden Ausgabe sehen Sie einen Ausschnitt des
Rechercheergebnisses nach dem Muster
regular
im Paket
bash-doc
Dabei beinhaltet die linke Spalte die Datei, in welcher das Muster
auftrat, und in der rechten Spalte das Muster samt Kontext drumherum.
Suche nach dem Vorkommen des Musters
regular
im Paket
bash-doc
$ dgrep --color regular bash-doc
/usr/share/doc/bash/examples/scripts.v2/where: # Find all pattern matches that are executable regular files.
/usr/share/doc/bash/examples/complete/bash_completion: # so we can set them before handing off to regular
/usr/share/doc/bash/examples/scripts/bcsh.sh:# A cshell-style "setenv" command is turned into a regular "set" command.
...
Benötigen Sie hingegen nur eine kurze Liste mit den Dateinamen, hilft
Ihnen die
grep
-Option
-l
(Langfassung
--files-with-matches
weiter. Für zusätzliche Optionen werfen Sie bitte einen Blick in die
Manpage zu
grep
. Nachfolgend sehen Sie einen Ausschnitt des
Suchergebnisses nach dem Muster
regular
über alle installierten Pakete
ohne Berücksichtigung der Groß- und Kleinschreibung (Option
-i
bzw.
--ignore-case
in der Langfassung).
Suche nach dem Vorkommen des Musters
regular
in allen installierten Paketen (Kurzfassung).
$ dgrep -l -i regular bash-doc
/usr/lib/perl5/XML/LibXML/Error.pm
/usr/lib/perl5/XML/LibXML/XPathContext.pod
/usr/lib/perl5/XML/LibXML/Text.pod
/usr/lib/perl5/XML/LibXML/RegExp.pod
/usr/share/doc/module-assistant/index.html
/usr/share/doc/libfftw3-3/README.Debian
/usr/share/perl5/Text/WrapI18N.pm
/usr/share/doc/chromium/README.source
/usr/share/doc/bash/examples/scripts.v2/where
/usr/share/doc/bash/examples/complete/bash_completion
/usr/share/doc/bash/examples/scripts/bcsh.sh
...
8.28. Ausführbare Dateien anzeigen
Die ausführbaren Dateien Ihres Linuxsystems befinden sich üblicherweise
im Verzeichnis
/usr/bin
bzw.
/usr/sbin
. Um herauszufinden, welche
ausführbaren Dateien sich in einem Paket befinden, können Sie einerseits
das Paket durchforsten (siehe „Paketinhalte anzeigen“ in
Abschnitt 8.26, „Paketinhalte anzeigen“
) oder andererseits das Kommando
dlocate
benutzen. Über die Option
-lsbin
und den Paketnamen gibt es
Ihnen ausführlich Auskunft. Die nachfolgende Ausgabe zeigt die
ausführbaren Dateien zum Paket
aptitude
an:
Ausführbare Dateien zum Paket
aptitude
anzeigen.
$ dlocate -lsbin aptitude
/etc/cron.daily/aptitude
/usr/bin/aptitude-curses
/usr/share/bug/aptitude
Eine weitere Möglichkeit stellt das UNIX-Kommandos
whereis
aus dem
essentiellen Paket
util-linux
[Debian-Paket-util-linux]
dar. Mit der
Option
-b Programmname
sucht
whereis
nach den passenden Binärdateien
zum genannten Paketnamen.
Binärdateien mit dem Namen
aptitude
mittels
whereis
anzeigen.
$ whereis -b aptitude
aptitude: /usr/bin/aptitude /usr/bin/X11/aptitude /usr/share/aptitude
8.29. Manpages anzeigen
Für die meisten UNIX/Linux-Werkzeuge bestehen Informations- und
Hilfeseiten, auch genannt
Info und Man(ual) Pages
. Um in Erfahrung zu
bringen, ob diese überhaupt vorhanden und installiert sind, bieten sich
zunächst die beiden UNIX-Kommandos
apropos
und
whereis
(Paket
util-linux
[Debian-Paket-util-linux]
) an. Ebenso hilft Ihnen das
bereits mehrfach genutzte Werkzeug
dlocate
[Debian-Paket-dlocate]
weiter.
Manpages aus
deb
-Paketen, die noch nicht auf ihrem System installiert
sind, aber als lokale Datei vorliegen, zeigen Sie mit Hilfe von
debman
und
debmany
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
an. Liegt das Paket nicht lokal vor,
beziehen Sie es über zusätzliche Schalter oder stöbern in der
Manpages-Sammlung des Debian-Projekts
[Debian-Manpages]
8.29.1. Manpages erstöbern
Mittels
apropos
Paketname
sehen Sie, ob zu dem von Ihnen angefragten
Programm lokal Dokumentation verfügbar ist. Für das Stichwort
aptitude
sieht das bspw. wie folgt aus:
Verfügbare Manpages für das Paket
aptitude
mittels
aptitude
lokalisieren.
$ apropos aptitude
aptitude (8) - Benutzerschnittstelle für den Paketmanager
aptitude-curses (8) - Benutzerschnittstelle für den Paketmanager
aptitude-create-state-bundle (1) - bundle the current aptitude state
aptitude-run-state-bundle (1) - unpack an aptitude state bundle and invoke aptitude on it
Eine ähnliche Hilfe leistet auch das Kommando
dlocate
mit dem Schalter
-man
gefolgt vom Paketnamen. Das Ergebnis des Aufrufs sieht für das
Programm
aptitude
sieht wie folgt aus:
Verfügbare Manpages für das Paket
aptitude
mittels
dlocate
aufspüren.
$ dlocate -man aptitude
8 aptitude-curses
Nun können Sie die Manpage mittels
man aptitude
bzw.
man
aptitude-curses
aufrufen.
Benötigen Sie zusätzlich den exakten Pfad zur Datei, in der die Manpage
liegt, nutzen Sie stattdessen entweder
whereis
mit dem Schalter
-m
oder
dlocate
mit dem Schalter
-lsman
Verfügbare Manpages für das Paket
aptitude
mittels
whereis
lokalisieren.
$ whereis -m aptitude
aptitude: /usr/share/man/man8/aptitude.8.gz
Bei letzterem erfahren Sie bspw. aus dem nachfolgenden Aufruf, dass die
Manpage für mehrere Sprachen wie bspw. Deutsch (de), Spanisch (es) und
Polnisch (pl) im Verzeichnis
/usr/share/man
bereitsteht.
Verfügbare Manpages für das Paket
aptitude
mit vollständigem Pfad.
$ dlocate -lsman aptitude
/usr/share/man/cs/man8/aptitude-curses.8.gz
/usr/share/man/es/man8/aptitude-curses.8.gz
/usr/share/man/ja/man8/aptitude-curses.8.gz
/usr/share/man/fr/man8/aptitude-curses.8.gz
/usr/share/man/gl/man8/aptitude-curses.8.gz
/usr/share/man/fi/man8/aptitude-curses.8.gz
/usr/share/man/man8/aptitude-curses.8.gz
/usr/share/man/it/man8/aptitude-curses.8.gz
/usr/share/man/pl/man8/aptitude-curses.8.gz
/usr/share/man/de/man8/aptitude-curses.8.gz
8.29.2. Manpages aus noch nicht installierten Paketen anzeigen
Benötigen Sie Hilfe zu einem Paket, welches Sie nicht installiert haben,
sind die beiden Werkzeuge
debman
und
debmany
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
für Sie nützlich.
debman
zeigt Ihnen nur die Manpages zu einem Paket an, welches nicht
installiert ist. Es unterstützt dabei diese beiden Schalter:
-f
Dateiname
Name
Anzeigen der Manpage
Name
zu einem bereits lokal vorliegenden
deb
-Paket
Dateiname
Aufruf der Manpage
chase
zur lokal vorliegenden Datei
chase_0.5.2-4_amd64.deb
$ debman -f chase_0.5.2-4_amd64.deb chase
-p
Paketname
Name
Herunterladen des Pakets
Paketname
mittels
debget
und Anzeigen der darin enthaltenen Manpage
Name
Herunterladen des Pakets
chase
und Anzeigen der darin enthaltenen Manpage
chase
$ debman -p chase chase
Das Werkzeug
debmany
funktionert etwas anders. Es sammelt Manpages
oder Dokumentation zu einem Paket zusammen, welches entweder bereits als
Paket installiert ist, sich noch in einem Repository befindet oder als
lokale
deb
-Datei vorliegt. Es wertet dazu die Paketdatenbank aus.
Ergebnis ist ein Auswahlmenü wie in
Abbildung 8.24, „Aufruf von
debmany
für das Paket
apt
, über das Sie
die Betrachtung der gewünschten Dokumentation auswählen. Für das
Debianpaket
apt
sieht der vereinfachte Aufruf wie folgt aus:
Aufruf von
debmany
für das Paket
apt
$ debmany apt
Abbildung 8.24. Aufruf von
debmany
für das Paket
apt
Wählen Sie einen Menüeintrag aus, öffnet sich ihr bevorzugtes
Anzeigeprogramm dafür.
debmany
bietet Ihnen zudem mehrere Schalter
an, über die Sie dieses Anzeigeprogramm angeben können:
-g
Sinnvoll für GNOME, das Anzeigeprogramm muß dazu
.gz
-Dateien
unterstützen. Kurzform von
-m 'gnome-open man:%s'
-k
Sinnvoll für KDE bzw. Konqueror, das Anzeigeprogramm muß dazu
.gz
-Dateien
unterstützen. Kurzform von
-m 'kfmclient exec man:%s'
bzw.
-m
'kfmclient exec %s'
für andere Dateien.
-m
Programm
Bezeichnet das Anzeigeprogramm zur Darstellung der
Manpages. Dieses muß dazu
.gz
-Dateien unterstützen.
-o
Programm
Bezeichnet das Anzeigeprogramm zur Darstellung
sonstiger Dokumentation im Verzeichnis
/usr/share/doc
-x
Sinnvoll für KDE, GNOME und XFCE, das Anzeigeprogramm muß dazu
.gz
-Dateien
unterstützen. Kurzform von
-m 'xdg-open man:%s'
xdg-open
ist
Bestandteil des Pakets
xdg-utils
Weiterhin stehen diese Schalter zur Verfügung, über die Sie das
Verhalten von
debmany
steuern können:
-L
Limit
Gibt die maximale Dateigröße der Dokumentation an, die
heruntergeladen wird. Überschreitet die Datei das angegebene Limit, so
werden Sie gefragt, ob der Download stattfinden soll. Ohne Angabe einer
Einheit ist die Angabe in Bytes. Durch Anhängen der Buchstaben
oder
passen Sie die Einheit an.
-l
Sprachliste
Legt fest, in welchen zusätzlichen Sprachen außer
Englisch die Manpages angezeigt werden.
Sprachliste
ist eine durch
Komma getrennte Liste der Sprachkürzel, bspw.
de,fr
für deutsch- und
französischsprachige Manpages. Die Angabe
de*
liefert alle Varianten,
bspw.
de_DE
de_AT
und
de_CH
-z
Zur Darstellung des Auswahlmenüs wird Zenity benutzt (siehe
Abbildung 8.25, „Aufruf von
debmany
für das Paket
apt
mit Hilfe von Zenity“
). Default ist
whiptail
, alternativ
dialog
oder
curl
Abbildung 8.25. Aufruf von
debmany
für das Paket
apt
mit Hilfe von Zenity
8.29.3. Suche über den Webbrowser
Sind Sie mit dem Webbrowser unterwegs und bevorzugen diese Darstellung,
greifen Sie darüber auf die Manpages-Sammlung des Debian-Projekts zurück
[Debian-Manpages]
Abbildung 8.26, „Suche in der Manpages-Sammlung nach
htop
zeigt das Ergebnis der Recherche
nach
htop
Abbildung 8.26. Suche in der Manpages-Sammlung nach
htop
Über diesen Service recherchieren Sie in allen Veröffentlichungen von
Debian sowie auch
testing
unstable
und
experimental
. Über die
Auswahllisten legen Sie neben dem zu durchsuchenden Bereich das
Ausgabeformat fest — hier HTML, PostScript, PDF oder Plaintext. Der
Service ist noch nicht ganz vollständig, so dass derzeit noch nicht alle
Manpages für die über das Menü offerierten Sprachen hinterlegt sind.
8.30. Konfigurationsdateien eines Pakets anzeigen
Die meisten Programme verfügen über Konfigurationsdateien, mit denen Sie
das jeweilige Programm auf ihre Bedürfnisse individuell einstellen
können. Um das tun zu können, hilft es Ihnen, zu wissen, welche Dateien
das überhaupt sind und an welcher Stelle im Verzeichnisbaum sich diese
Dateien befinden.
Debian macht hier typischerweise einen Unterschied zwischen den
Konfigurationsdateien. Es gibt Dateien, die bereits im Paket
mitgeliefert werden und Dateien, die erst nach der Installation angelegt
werden. Bei ersteren achtet
dpkg
beim Auspacken von
Paketaktualisierungen darauf, dass — sofern bereits vorhanden — erfolgte lokale Änderungen daran nicht überschrieben werden. Diese
Dateien nennt Debian "Conffiles".
In fast allen Fällen sind in Paketen enthaltene Dateien, die unter
/etc/
liegen, solche "Conffiles" während alle anderen Dateien aus
Paketen typischerweise keine "Conffiles" sind. Den Autoren dieses
Buches sind zumindest bisher keine Ausnahmen von diesen Regeln
bewusst.
Es kommt vor, dass Pakete Dateien unter
/etc/
erst bei der
Installation anlegen. Das ist inbesondere dann der Fall, wenn deren
Inhalt dynamisch generiert wird. Diese sind dann keine "Conffiles" im
eigentlichen Sinne, werden aber teilweise von Programmen wie
ucf
[Debian-Paket-ucf]
analog zu Conffiles behandelt. Wie dies
gehandhabt wird, hängt vom jeweiligen Paket ab.
Um solche bei Installation oder Aktualisierung eines Paketes erzeugte
Konfigurationsdateien aufzufinden, kommt man nicht umhin, direkt in die
entsprechenden Verzeichnisse zu schauen. Meistens wird aber zumindest
das Verzeichnis schon im Paket mitgeliefert.
Die sogenannten Conffiles sind leicht aufzufinden. Einerseits können Sie
wie unter
Abschnitt 8.26, „Paketinhalte anzeigen“
beschrieben, alle Dateien
eines Paketes auflisten lassen. Praktisch alle so aufgelisteten Dateien
im Verzeichnis
/etc/
und dessen Unterverzeichnisse sind "Conffiles"
und damit auch Konfigurationsdateien. Diese lassen sich typischerweise
durch Anhängen von
| grep /etc/
an den entsprechenden Befehlen
herausfiltern.
Es gibt jedoch ein paar Programme, die diesen Schritt ohne Zuhilfenahme
von
grep
durchführen können. Diese Programme wollen wir Ihnen im
Folgenden vorstellen.
Einerseits weiß natürlich
dpkg
selbst, welche Dateien "Conffiles"
sind und welche nicht. Glücklicherweise können wir uns das auch anzeigen
lassen. Dazu fragen wir den Status eines installierten Paketes mittels
dpkg-query --status
ab. Dieser zeigt zwar viel mehr an, als wir wissen
wollen, aber die gewünschten Informationen sind dabei.
Da es sich um eine Abfrage der Statusdatenbank von
dpkg
handelt, wäre
die Benutzung von
dpkg-query
eigentlich besser. Aber da
dpkg
mehr oder
weniger alle
dpkg-query
-Schalter und -Parameter direkt an
dpkg-query
durchreicht und es außerdem auch noch die Kurzform
-s
für
--status
gibt, gelingt eine Abkürzung des Befehls auf
dpkg -s
Statusabfrage für das Paket
bash
mittels
dpkg -s
$ dpkg -s bash
Package: bash
Essential: yes
Status: install ok installed
Priority: required
Section: shells
Installed-Size: 6469
Maintainer: Matthias Klose
Architecture: amd64
Multi-Arch: foreign
Version: 5.1-2
Replaces: bash-completion (<< 20060301-0), bash-doc (<= 2.05-1)
Depends: base-files (>= 2.1.12), debianutils (>= 2.15)
Pre-Depends: libc6 (>= 2.25), libtinfo6 (>= 6)
Recommends: bash-completion (>= 20060301-0)
Suggests: bash-doc
Conflicts: bash-completion (<< 20060301-0)
Conffiles:
/etc/bash.bashrc 89269e1298235f1b12b4c16e4065ad0d
/etc/skel/.bash_logout 22bfb8c1dd94b5f3813a2b25da67463f
/etc/skel/.bashrc ee35a240758f374832e809ae0ea4883a
/etc/skel/.profile f4e81ade7d6f9fb342541152d08e7a97
Description: GNU Bourne Again SHell
Bash is an sh-compatible command language interpreter that executes
commands read from the standard input or from a file. Bash also
incorporates useful features from the Korn and C shells (ksh and csh).
Bash is ultimately intended to be a conformant implementation of the
IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
The Programmable Completion Code, by Ian Macdonald, is now found in
the bash-completion package.
Homepage: http://tiswww.case.edu/php/chet/bash/bashtop.html
Da das ein bißchen sehr viel Ausgabe ist im Vergleich zu dem, was uns
interessiert, juckt es uns in den Fingern, doch wieder
grep
zu
bemühen, um die Ausgabe auf das Relevante zu kürzen:
Filtern nach Conffiles einer Statusabfrage mit
dpkg -s
$ dpkg -s bash | grep '^ /'
/etc/bash.bashrc 89269e1298235f1b12b4c16e4065ad0d
/etc/skel/.bash_logout 22bfb8c1dd94b5f3813a2b25da67463f
/etc/skel/.bashrc ee35a240758f374832e809ae0ea4883a
/etc/skel/.profile f4e81ade7d6f9fb342541152d08e7a97
Direkter zur gewünschten Information kommen Sie mit den beiden
Programmem
cat
und
dlocate
aus dem gleichnamigen Paket
[Debian-Paket-dlocate]
. Mit
cat
lesen Sie die Paketdatenbank wie
folgt aus (hier für das Paket
bash
):
Anzeigen der Konfigurationsdateien über die Paketdatenbank.
$ cat /var/lib/dpkg/info/bash.conffiles
/etc/bash.bashrc
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.profile
dlocate
kennt dazu den Schalter
-conf
gefolgt vom Paketnamen. Wieder
zeigen wir das für das Paket
bash
Ermittlung der Conffiles zum Paket
bash
mittels
dlocate
$ dlocate -conf bash
/etc/bash.bashrc
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.profile
Benötigen Sie zusätzlich die Benutzerrechte der Konfigurationsdateien,
deren Besitzer und Eigentümer sowie deren Größe und Zugriffsdatum, ist der
Schalter
-lsconf
von großem Nutzen. Dieser bewirkt eine Ausgabe wie
das Kommando
ls -la
, wie die nachfolgende Ausgabe deutlich macht:
Ermittlung der Konfigurationsdateien zum Paket
bash
mittels
dlocate
(ausführliche Ansicht).
$ dlocate -lsconf bash
-rw-r--r-- 1 root root 1987 7. Dez 04:24 /etc/bash.bashrc
-rw-r--r-- 1 root root 220 2. Dez 2015 /etc/skel/.bash_logout
-rw-r--r-- 1 root root 3526 2. Dez 2015 /etc/skel/.bashrc
-rw-r--r-- 1 root root 807 6. Feb 2018 /etc/skel/.profile
Nachteil von
dlocate
: Es muss installiert sein und seine Datenbank
muß dazu aktuell sein. In der Standard-Einstellung wird die Datenbank
aber nur einmal pro Tag aktualisiert und funktioniert daher
typischerweise nicht für frisch installierte Pakete.
Eine dritte Variante bietet das Programm
debsums
aus dem
gleichnamigen Paket
[Debian-Paket-debsums]
mit seinem Schalter
-e
bzw. dessen Langfassung
--config
. Die eigentliche Aufgabe von
debsums
ist, anzuzeigen, welche Dateien vom Auslieferungszustand
abweichen. Somit erhalten wir nicht nur die gewünschte Information
über die Conffiles im Paket sondern auch gleich noch, ob sich diese
Dateien noch im Auslieferungszustand befinden oder nicht. Im Falle
einer Abweichung ergänzt
debsums
das etwas alarmierende Wort
"FAILED", auf Deutsch "fehlgeschlagen". Insbesondere bei Conffiles,
bei denen Änderungen durch den Systemadministrator ja explizit
vorgesehen sind, ist die Meldung "FAILED" im Normalfall kein Grund zur
Besorgnis.
Anzeige der Conffiles des Paketes
bash
und ihrer Unversehrtheit mittels
debsums
$ debsums -e bash
/etc/skel/.bash_logout OK
/etc/bash.bashrc FAILED
/etc/skel/.profile OK
/etc/skel/.bashrc OK
8.31. Paketänderungen nachlesen
8.31.1. Das Änderungsprotokoll beziehen
Für jedes Debianpaket existiert im entsprechenden Quellpaket (siehe
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
) ein Protokoll mit den erfolgten Änderungen im Paket,
ein sogenanntes
Changelog
(Datei
debian/changelog
). Das ist eine
Textdatei mit einzelnen Einträgen (siehe unten). Daraus ersehen Sie
überblicksweise, was die Entwickler im Vergleich zur vorherigen
Veröffentlichung des Paketes verändert haben und welche Änderungen oder
Debian-spezifischen Anpassungen der Maintainer im Vergleich zum
Originalquellcode zusätzlich vorgenommen hat.
Die nachfolgenden Ausgaben zeigen den Vorgang für die beiden Werkzeuge
apt-get
und
aptitude
mit einem Ausschnitt des Changelogs zum Paket
smartpm
. Beide Programme kennen für den Aufruf das Unterkommando
changelog
und benötigen zusätzlich den Namen des Debianpakets. Das
angefragte Paket muss dazu nicht auf Ihrem Debiansystem installiert sein.
Beziehen der Changelog-Informationen zum Paket
smartpm
mittels
apt-get
$ apt-get changelog smartpm
Holen:1 http://metadata.ftp-master.debian.org smart 1.4-2 Changelog [8.573 B]
Es wurden 8.573 B in 1 s geholt (4.754 B/s).

...

smart (1.4-2) unstable; urgency=low

* Switch to dh_python2 (Thanks to Barry Warsaw)

-- Free Ekanayaka 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 Tue, 31 May 2011 16:04:52 +0200

...
Bei
aptitude
sieht das wie folgt aus:
Die Paketänderungen zum Paket
smartpm
mit Hilfe von
aptitude
ausgeben.
$ aptitude changelog smartpm

smart (1.4-2) unstable; urgency=low

* Switch to dh_python2 (Thanks to Barry Warsaw)

-- Free Ekanayaka 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 Tue, 31 May 2011 16:04:52 +0200

...

Die Beschreibung der vorgenommenen Änderungen folgt dabei einem festgelegten
Schema. Dieses Schema ist im
Debian Policy Manual
[Debian-Policy-Manual]
im Abschnitt
Source packages/Debian changelog
genau erklärt. Kurz
zusammengefasst, ist jeder Version eines Paketes ein separater Block
gewidment:
Format der erfolgten Änderungen.
package (version) distribution(s); urgency=urgency
[optional blank line(s), stripped]
* change details
more change details
[blank line(s), included in output of dpkg-parsechangelog]
* even more change details
[optional blank line(s), stripped]
-- maintainer name [two spaces] date
Jeder dieser Blöcke beginnt stets mit dem Namen des Quellpakets, gefolgt von
der Versionsnummer des Pakets, der Veröffentlichung (zumeist
unstable
(siehe
Abschnitt 2.10, „Veröffentlichungen“
), sowie der Dringlichkeit oder dem Schweregrad
der vorgenommenen Änderungen. Dieser Wert ist einer aus
low
medium
high
emergency
und
critical
. Darunter stehen die jeweiligen Änderungen
als einfache Aufzählung.
8.31.2. Zwei Paketversionen miteinander vergleichen
Wie oben bereits genannt, beschreibt das Änderungsprotokoll lediglich in
groben Zügen, welche Korrekturen ein Paket erfahren hat. Um die
detaillierten Änderungen zwischen zwei (aufeinanderfolgenden)
Paketversionen zu erfahren, bedarf es einer genaueren Inspektion.
Zwei Werkzeuge sind uns bislang bekannt —
debdiff
und
diffoscope
[Debian-Paket-diffoscope]
. Das Erstgenannte satmmt aus dem Paket
devscripts
[Debian-Paket-devscripts]
stammt, das zweite gehört
hingegen zu dem Projekt
Reproducible Builds
[ReproducibleBuilds]
Während das Paket
devscripts
für
debdiff
eine recht überschaubare
Paketgröße besitzt (derzeit etwa 1 MB), ist
diffoscope
zwar nur rund
60 KB groß, zieht aber die gesamte Entwicklungsumgebung für
Reproducible Builds
als Paketabhängigkeit mit — das kann dann
durchaus 2 GB Platz beanspruchen.
Mit beiden Werkzeugen erhalten Sie eine Auswertung darüber, welche
Dateien oder Verzeichnisse aus einem Paket im Vergleich zur vorherigen
Version entfernt wurden sowie welche hinzugekommen, umbenannt oder auch
verschoben wurden und welche Besitz- und Ausführungsrechte sich ggf.
noch geändert haben. Der nachfolgende Aufruf zeigt
debdiff
mit zwei
Versionen des Pakets
xpenguins
über den folgenden Aufruf:
Aufruf von
debdiff
für zwei Pakete.
$ debdiff xpenguins*
[The following lists of changes regard files as different if they have
different names, permissions or owners.]

Files in second .deb but not in first
- ------------------------------------
-rw-r--r-- root/root /usr/share/doc/xpenguins/changelog.Debian.amd64.gz

Control files: lines which differ (wdiff format)
- -----------------------------------------------
Installed-Size: [-1119-] {+1114+}
{+Source: xpenguins (2.2-10)+}
Version: [-2.2-10-] {+2.2-10+b1+}
Der Aufruf von
diffoscope
ist ähnlich, hier am Beispiel für zwei
Pakete von
cheese
Aufruf von
diffoscope
für zwei Pakete.
$ diffoscope cheese_3.14.1-1_amd64.deb cheese_3.14.1-2_amd64.deb
Nachfolgend sehen Sie die Ausgabe der entdeckten Änderungen. Es ist eine
Art Baumstruktur, die durchaus länger werden kann. Daher zeigt das
nachfolgende Bild nur einen Ausschnitt.
Abbildung 8.27. Von
diffoscope
gefundene Änderungen (Ausschnitt)
Die Farbgebung der Ausgabe folgt den üblichen Gepflogenheiten — rot für
Entfernungen und grün für Zeilen, die hinzugefügt wurden. Die Angaben in
hellblau benennen die Position in der jeweiligen Datei.
8.32. Paket auf unerwünschte Veränderungen prüfen
Das Thema Vertrauen und Authentizität der bereitgestellten Softwarepakete
wird bei Debian großgeschrieben. Ziel ist, dass Sie sicher sein können,
dass die von einem Debian-Spiegelserver bezogene Software unverändert ist.
Es greifen dabei eine ganze Reihe von automatischen Überprüfungen. Mit
den nachfolgend beschriebenen Vorgehensweisen können Sie die entsprechenden
Einzelschritte selbst nachvollziehen und durchführen.
Wir unterscheiden hier zwei Fälle:
beziehen eines Paketes und Prüfung auf Unversehrtheit der Übertragung
wurde das Paket korrekt zu Ihnen übertragen und ist die genutzte Quelle
vertrauenswürdig. Diese Überprüfungen stellen sicher, dass ein von Ihnen
bezogenenes Debianpaket dem Paketmirror so entnommen wurde, wie es von
der Distribution in der Veröffentlichung zur Verfügung gestellt wurde.
Sie schließen damit aus, dass zwischenzeitlich Veränderungen von einer
dritten Partei auf dem Paketmirror oder dem Übertragungsweg stattgefunden
haben. Diese Schritte bilden die Vertrauensbasis für die von Ihnen bezogene
Software.
überprüfen, ob die Inhalte eines installierten Pakets verändert wurden
bestehen zwischen der Version vom Paketmirror und den installierten Dateien
auf ihrem System Unterschiede, und wenn ja, welche sind das.
8.32.1. Prüfung eines Paketes auf Unversehrtheit
Die offiziellen Paketquellen von Debian, als auch die darüber referenzierten
Quellpakete sind kryptographisch signiert (siehe dazu
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
). Die Signaturen werden mit Hilfe
der Public-Key-Kryptographie erstellt. Mit dem entsprechenden öffentlichen
Schlüssel (engl.
Public Key
) können Sie (und jeder andere Benutzer ebenso)
überprüfen, ob das Paket vertrauenswürdig ist.
Die Grundlage dazu bildet die Vertrauenskette bei Debian, die sich vom
Entwickler zum Build-Daemon (kurz „buildd“) bis hin zum FTP-Master-Server,
den Paketlisten, dem Debian-Archive-Keyring und dem Debian-Keyring erstreckt.
Genutzt wird dabei eine Kombination aus kryptographischen Hashsummen und
einer digitalen Signatur.
Auf den Debian-Spiegelservern befindet sich pro Veröffentlichung eine digital
signierte Datei namens
Release
. Sie beinhaltet die Namen der Paketlisten
(heutzutage meist
Packages
Packages.gz
und
Packages.xz
, früher oft
auch noch
Packages.bz2
) sowie deren Hashsummen als MD5-, SHA1- und
SHA256-Variante. Mit der digitalen Signatur der Release-Datei und den darin
enthalten Hashsummen wird sichergestellt, dass diese Dateien nicht verändert
wurden.
Die Datei
Packages
(wie auch deren komprimierten Varianten) beinhaltet
wiederum eine Liste von Paketen bzw. deren Dateien, die für diese
Veröffentlichung zur Verfügung stehen – und deren Hash-Summen. Dies stellt
wiederum sicher, dass die Paketdateien aus der Liste nicht verändert wurden.
Durch die gesamte Kette aus Paket-Hashsummen in den Paketlisten und
Paketliste-Hashsummen in der Release-Datei garantiert die einzelne digitale
Signatur auf der Release-Datei die Integrität sämtlicher Pakete einer
Veröffentlichung.
Eine lokale Kopie der vertrauenswürdigen Schlüssel passend zur Veröffentlichung
verwalten Sie mit dem Programm
apt-key
aus dem Paket
apt
[Debian-Paket-apt]
Auf dessen Bedienung gehen wir unter
Abschnitt 3.13.3, „Unterkommandos von
apt-key
ein.
Zu dem Programm gehört ein Schlüsselring von öffentlichen GnuPG-Schlüsseln,
sog. „Public Keys“, mit denen die Signaturen in der Datei
Release.gpg
auf den Debian-Spiegelservern überprüft werden können. Dieser
Schlüsselring ist im Paket
debian-archive-keyring
enthalten und lokal
in Dateien im Verzeichnis
/etc/apt/trusted.gpg.d
gespeichert. Dazu
kommt noch die Datei
/etc/apt/trusted.gpg
, welche heutzutage nur noch
manuell per
apt-key add
hinzugefügte Schlüssel enthält. Bei früheren
Veröffentlichungen war diese Datei die alleinige Quelle zur Überprüfung
von Veröffentlichungssignaturen.
Debian signiert seine einzelnen Pakete nicht kryptographisch mittels
dpkg-sig
, sondern vertraut auf die signierte
RELEASE
-Datei und die darin
gespeicherten Hashsummen der Pakete.
Nur ein Einzelpaket kryptographisch prüfen
Die kyptographische Signatur eines einzelnen Paketes überprüfen Sie mit
Hilfe des Werkzeugs
dpkg-sig
[Debian-Paket-dpkg-sig]
. Hat das Paket
keine kyptographische Signatur, sieht die Ausgabe so aus:
Paket ohne kryptographische Signatur.
$ dpkg-sig --verify /var/cache/apt/archives/mc-data_3%3a4.8.18-1_all.deb
Processing /var/cache/apt/archives/mc-data_3%3a4.8.18-1_all.deb...
NOSIG
Im positiven Fall sehen Sie das folgende Ergebnis, hier für das in
Kapitel 22,
Metapakete bauen
erzeugte Metapaket
meta-mc
Paket mit kryptographischer Signatur.
$ dpkg-sig --verify meta-mc_1.0_all.deb
Processing meta-mc_1.0_all.deb...
GOODSIG _gpgbuilder 35F8DF9C884E36AB974460AFCFA72978D431AC07 1573823436
Nun überprüfen Sie, ob ein Debianpaket selbst noch eine kryptographische
Signatur enthält. Sie packen dieses aus und schauen nach, ob darin eine
Datei namens
_gpgbuilder
enthalten ist:
Dateiliste eines Pakets mit kryptographischer Signatur.
$ ar vx meta-mc_1.0_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.xz
x - _gpgbuilder
Im vorliegenden Fall enthält die Datei
_gpgbuilder
folgendes
Klartextzertifikat („clearsign GnuPG signature“):
Enthaltenes Klartextzertifikat.
$ cat _gpgbuilder
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Version: 4
Signer: Frank Hofmann (Hofmann EDV)
Date: Fri Nov 15 14:10:36 2019
Role: builder
Files:
3cf918272ffa5de195752d73f3da3e5e 7959c969e092f2a5a8604e2287807ac5b1b384ad 4 debian-binary
9fd3b3462326a863565c1ca251ff0fe7 46aebc946b932b8b7e9ab541a01231d474e08330 458 control.tar.gz
0baf7633e67bbcd272663089133a9cbc 2ad0ecd5fa6e5f2dd6b296e786fc4569050ea025 1400 data.tar.xz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBAgAdFiEENfjfnIhONquXRGCvz6cpeNQxrAcFAl3Oo8wACgkQz6cpeNQx
rAeExhAAp7zBeBjijB6De5myMolGxGx9JqLNA2sF48RHsibFJwf4LmXC8NMcGHwO
q9c4TvIdUXb/94pIPTSLdLXSpPiEC4sFRx5SU7zwLaHO/HO7O+Qn0Y9XvuuJJDXm
0Fj+M8LyJPBpV7VgngTvXP7mX9mTPGD+ZxidJuZrR028LjxZYQ1kX6yiivZS4HBU
cKJlmRlopKaJ5Kdfypa52Nr9PB5MSTdaKm0jYz9W1nW+LCo4IDJAnii8VU2F7VuP
6ISTtcdC3sa4nh6+PaWC7lWR8wpj9A/Bc/n6ddGql3VaswUNNHGuVfxqoim7hrPc
uGckJ8sUgqYtWbCG+zyF4jgwoc+DtLwMHjoSIJPtxgEBI1R4GIzxF8Poa8ZVEuOY
fvRc9158oZVQpBc9w4MaWWtuImzjaQGLOgyutN4ow8UiQxzEIc7pep2N0zMw+Ir4
7C69KOjJ0exA+Fu34aLghe1SOhiNLSFu52r1axyomuN2cQfzw2cuVn2eLWZDxqAD
qlMQjMwtuYR9yED7R/PVC2B2Hq5pzBltN2kekhe3XL9yLgy3tyyGh7vNOeQn15+j
QKAxD31KZHIDdExeifRhQrLwBU3YVyuj1kSFIULO5kAD6v+i6dd341IUBNip2B7z
+2M2eryG8LOriFw5m7C39WmYcJr14tdm0ENmxqnEBzh+EhBwkhk=
=/SDv
-----END PGP SIGNATURE-----
Mehrere Pakete prüfen
Hier bietet sich ein Aufruf in einer
for
-Schleife an, bspw. wie
folgt:
Mehrere Pakete prüfen.
$ for paket in *.deb; do dpkg-sig --verify $paket; done
...
Als Ausgabe erhalten das Prüfergebnis paketweise untereinander.
8.32.2. Die Inhalte eines bereits installierten Paketes überprüfen
Installieren Sie ein Debianpaket, landen die darin enthaltenen Dateien
üblicherweise eins-zu-eins auf dem Speichermedium. Als Administrator gehört
zu Ihren Aufgaben, das System und die Dateien auf Integrität zu prüfen. Das
umfasst auch das Nachschauen, ob die lokalen Dateien eines bereits
installierten Paket später verändert wurden, d.h. ob zwischen der
Version vom Paketmirror und der lokalen Version Unterschiede bestehen.
Falls ja, ist von Ihnen zu klären, welche Dateien verändert wurden. Es
gibt mehrere Situationen, in denen das wichtig ist, gewollte oder
unerwünschte Änderungen von Daten festzustellen.
Welche Unterschiede bestehen zwischen der offiziell verfügbaren Version
(und dessen Konfiguration) und den lokalen Einstellungen, sprich: welche
Änderungen haben Sie vorgenommen und müssen ggf. bei einer Aktualisierung
der Pakete oder des Systems berücksichtigt werden? (Bei der Installation
fragt Debian mittlerweile, ob ihre Anpassungen bestehen bleiben sollen.)
Vorher hat ein anderer Administrator den Rechner betreut. Sie möchten
wissen, an welchen Dateien Änderungen von demjenigen vorgenommen wurden.
Nach einer Reparatur des Dateisystems, bei der zu Paketen gehörende
Dateien verändert wurden, prüfen Sie nach, ob die Reparatur erfolgreich
war, d.h. ob die Dateien nach wie vor den erwarteten Inhalt haben.
Bei der Klärung dieser Fragen helfen Ihnen u.a. die Werkzeuge
debsums
[Debian-Paket-debsums]
dlocate
[Debian-Paket-dlocate]
diffoscope
[Debian-Paket-diffoscope]
sowie auch
dpkg
selbst
weiter. Letzteres steht Ihnen mit einem passenden Schalter ab der
Version 1.17 ab Debian 8
Jessie
und Ubuntu 14.04 LTS
Trusty Tahr
zur
Verfügung.
MD5-Summen zur Erkennung von Änderungen
Während Debian bei der Verifizierung der bezogenen Pakete auch SHA1-
und SHA256-Hashsummen zur kryptographischen Absicherung verwendet (siehe
dazu
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
), werden zum Erkennen von
Änderungen an installierten Paketdateien nur MD5-Summen verwendet. Diese
sind pro Paket in den Dateien
/var/lib/dpkg/info/*.md5sums
gespeichert. Alle o.g. Programme verwenden die Hashsummen aus diesen via
dpkg
bereitgestellten Dateien.
Die ausschließliche Verwendung von MD5-Summen an dieser Stelle bedeutet,
dass diese nicht mehr den heutigen Ansprüchen für das Aufdecken von
Datei-Ersetzungen entsprechen, insbesondere wenn diese mit hoher
krimineller Energie ausgeführt wurden. Sie können jedoch durchaus
helfen, von dilettantischen Einbrechern durchgeführte Datei-Ersetzungen
zu finden. Bedenken Sie jedoch dabei, dass die Einbrecher genauso gut
auch die o.g. Dateien mit den MD5-Summen angepasst haben könnten.
Möchten Sie sich jedoch stärker gegen Datei-Ersetzungen oder Änderungen
durch professionelle Angreifer schützen, so reichen die hier genannten
Techniken nicht aus. Dazu gibt es spezialisierte Pakete wie z. B.
tripwire
samhain
aide
integrit
fcheck
stealth
und
tiger
MD5-Summen von Dateien mit
dlocate
anzeigen
Mit dem Schalter
-md5sum
des Werkzeugs
dlocate
zeigen Sie die
MD5-Summen aller Dateien in einem bestimmten Paket an, so wie sie in
o.g. Dateien von
dpkg
gespeichert werden. Nachfolgend sehen Sie die
Ausgabe zum Paket
htop
, wobei sich in der linken Spalte die MD5-Summe
befindet und in der rechten Spalte die dazugehörige Datei mit ihrem
vollständigem Pfad. Die Angaben entsprechen dem Inhalt der Datei
/var/lib/dpkg/info/htop.md5sums
Darstellung der MD5-Summen für alle Dateien aus dem Paket
htop
$ dlocate -md5sum htop
292b696a5b879f1068f7c15073c245cd usr/bin/htop
194b840f96d3e6bbf29229811a6195c2 usr/share/applications/htop.desktop
75557092070931bcb0fb9a6d74575542 usr/share/doc/htop/AUTHORS
0c9303726b090f478b383dd059b3265f usr/share/doc/htop/README
3adf8fa10448f27bb30385b37eb14231 usr/share/doc/htop/changelog.Debian.gz
84555fa6bc74568aea8de2a18072d5b2 usr/share/doc/htop/changelog.gz
ee7657b42989a83c9b04a179b35e59e1 usr/share/doc/htop/copyright
58a889c99141c2945c1c50bb51d314c6 usr/share/man/man1/htop.1.gz
f059e3f0159a5aeb761d41514a117310 usr/share/menu/htop
5bbd19dc6cccaf0a74866a92f5cca75c usr/share/pixmaps/htop.png
Dateien paketbezogen mit
dlocate
überprüfen
dlocate
kann nicht nur die MD5-Summe für eine Datei ausgeben, sondern
diese auch überprüfen. Dazu benutzen Sie den Schalter
-md5check
. Falls
die ermittelte MD5-Summe mit dem Original aus dem Paket übereinstimmt,
ergänzt
dlocate
hinter dem Dateinamen ein
OK
, andernfalls ein
FAILED
Bitte beachten Sie dabei, dass
dlocate -md5check
keine
Konfigurationsdateien überprüft und auch nur die Dateien von explizit
angegebenen Paketen überprüfen kann.
Überprüfung der MD5-Summen für jede einzelne Datei aus dem Paket
htop
$ 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
Dateien überprüfen mit
debsums
Genauso wie
dlocate
kann auch
debsums
die Dateien eines Pakets auf
Integrität überprüfen. Dazu braucht es jedoch keine weitere Option, da
das Überprüfen von Dateien die einzige Aufgabe von
debsums
ist:
debsums
beim Prüfen des Pakets
htop
$ 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
Im Gegensatz zu
dlocate
braucht
debsums
jedoch nicht
notwendigerweise einen Paketnamen als Parameter. Rufen Sie das Werkzeug
debsums
ohne weitere Parameter auf, so prüft es alle Dateien (außer
Konfigurationsdateien in
/etc/
) sämtlicher installierten Pakete auf
Veränderungen zum Original und gibt hinter dem Dateinamen den Wert
OK
für unverändert und
FAILED
für modifizierte Daten aus. Dieser Schritt
eignet sich gut, um ihr gesamtes System einer Integritätsprüfung zu
unterziehen.
debsums
bei der Arbeit.
# debsums
/usr/bin/a2ps OK
/usr/bin/a2ps-lpr-wrapper OK
/usr/bin/card OK
/usr/bin/pdiff OK
/usr/bin/psmandup OK
/usr/bin/psset OK
/usr/bin/texi2dvi4a2ps OK
/usr/share/a2ps/README OK
/usr/share/a2ps/afm/fonts.map OK
...
Desweiteren hat
debsums
noch ein paar nützliche Schalter:
-a
(Langform
--all
Überprüfung aller Dateien.
-c
(Langform
--changed
Nur die Dateien anzeigen, die sich geändert haben.
Auflistung der Dateien, die sich geändert haben.
# debsums --changed
/usr/local/Brother/Printer/HL2250DN/inf/brHL2250DNfunc
/usr/local/Brother/Printer/HL2250DN/inf/brHL2250DNrc
debsums: missing file /usr/share/doc/hl2250dnlpr/copyright (from hl2250dnlpr package)
debsums: missing file /usr/share/doc/hl2250dnlpr/changelog.Debian.gz (from hl2250dnlpr package)
debsums: missing file //opt/PDFStudio/jre/lib/charsets.jar.pack (from pdfstudio package)
-e
(Langform
--config
Überprüfung der
Conffiles
Conffiles
sind Konfigurationsdateien, die
vom Paket ausgeliefert werden und somit vorab deklariert wurden. Diese
befinden sich fast immer unterhalb des Verzeichnisses
/etc/
Auflistung aller
Conffiles
des Pakets
unburden-home-dir
mit Zustand:
$ debsums -e unburden-home-dir
/etc/unburden-home-dir.list FAILED
/etc/unburden-home-dir OK
/etc/default/unburden-home-dir FAILED
/etc/X11/Xsession.d/95unburden-home-dir OK
Möchten Sie nur die Konfigurationsdateien (genauer
Conffiles
) eines
Pakets auflisten, die lokal geändert wurden, so kombinieren Sie die
beiden Schalter
-c
und
-e
miteinander:
Auflistung geänderter
Conffiles
des Pakets
unburden-home-dir
$ debsums -ce unburden-home-dir
/etc/default/unburden-home-dir
/etc/unburden-home-dir.list
Möchten Sie die Originaldatei wiedereinspielen (und damit die Änderungen
rückgängig machen), ermitteln Sie zuerst das Paket, in dem besagte Datei
enthalten ist (siehe
Abschnitt 8.24, „Paket zu Datei finden“
) und installieren dieses
dann erneut (siehe
Abschnitt 8.39, „Pakete erneut installieren“
).
Bitte beachten Sie, dass das bei
Conffiles
nicht funktioniert, da
dpkg
nur dann wegen geänderter (oder gelöschter) Konfigurationsdateien
fragt, wenn sich die Konfigurationsdatei auch im Paket geändert hat.
Dies ist bei einer Reinstallation nie der Fall. Hier hilft entweder, die
Datei aus dem heruntergeladenen Paket manuell zu extrahieren oder
zunächst das Paket mit
dpkg --purge
vollständig zu entfernen und
danach wieder zu installieren.
Bei der Benutzung von
debsums
spielen die Berechtigungen des Benutzers
eine Rolle. Die Integrität von Dateien, die für normale Benutzer nicht
lesbar sind, können nur vom Benutzer
root
geprüft werden.
Auflistung geänderter
Conffiles
des Pakets
sudo
geht nur
root
-Rechten:
$ debsums -e sudo
/etc/pam.d/sudo OK
/etc/init.d/sudo OK
debsums: can't open sudo file /etc/sudoers (Permission denied)
debsums: can't open sudo file /etc/sudoers.d/README (Permission denied)
$ sudo debsums -e sudo
/etc/pam.d/sudo OK
/etc/sudoers OK
/etc/init.d/sudo OK
/etc/sudoers.d/README OK
Dateien mit
dpkg -V
überprüfen
Ab
dpkg
Version 1.17 kann auch
dpkg
selbst Dateien anhand der
gespeicherten MD5-Summen auf Unversehrtheit überprüfen. Im Gegensatz
zu
debsums
und
dlocate -md5check
überprüft es
Conffiles
stets
mit und zeigt auch immer nur Dateien an, die sich nicht mehr im
Originalzustand befinden.
Die passende Option dazu ist
-V
bzw. in der Langform
--verify
. Geben
Sie zum Aufruf einen oder mehrere Paketnamen als Parameter mit, so
werden nur die Dateien dieser Pakete überprüft:
Dateien der Pakete
unburden-home-dir
und
ack-grep
mit
dpkg -V
überprüfen.
$ dpkg -V unburden-home-dir ack-grep
??5?????? c /etc/unburden-home-dir.list
??5?????? c /etc/default/unburden-home-dir
??5?????? /usr/bin/ack
Das Ausgabeformat stellen Sie über die Option
--verify-format
ein. Das
Standardformat ist von
RPM
übernommen
[Bailey-Maximum-RPM-verify]
Da
dpkg
bisher nur die MD5-Summe überprüft, werden alle anderen
Spalten nur als Fragezeichen ausgegeben. Erscheint ein einzelnes
in
der Ausgabe, handelt es sich hierbei um
Conffiles
8.33. Liste der zuletzt geänderten Abhängigkeiten
Um herauszufinden, welche Abhängigkeiten eines Pakets sich zuletzt
geändert haben und ob vielleicht dabei ein Bug zum Vorschein kam, sparen
Sie sich mit dem Programm
which-pkg-broke
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
einiges an Arbeit.
Übersetzt heißt der Programmname sinngemäß „welches Paket machte [es]
kaputt“. Nachfolgende Übersicht zeigt Ihnen die zuletzt geänderten
Abhängigkeiten von
apt
Anzeige der zuletzt geänderten Abhängigkeiten von
apt
$ which-pkg-broke apt
libacl1:amd64 Tue Apr 8 18:57:57 2014
libattr1:amd64 Tue Apr 8 18:57:58 2014
liblzma5:amd64 Tue Apr 8 18:58:11 2014
tar Tue Apr 8 18:58:20 2014
zlib1g:amd64 Tue Apr 8 18:58:23 2014
debian-archive-keyring Tue Apr 8 18:58:41 2014
readline-common Tue Apr 8 18:58:59 2014
libreadline6:amd64 Tue Apr 8 18:58:59 2014
libselinux1:amd64 Fri May 16 19:31:14 2014
install-info Tue Jun 3 14:02:14 2014
dpkg Thu Jun 5 23:50:19 2014
libusb-0.1-4:amd64 Fri Jul 4 02:00:58 2014
gpgv Tue Jul 8 00:19:12 2014
gnupg Tue Jul 8 00:19:15 2014
libapt-pkg4.13:amd64 Sat Jul 12 02:37:23 2014
apt Sat Jul 12 02:37:26 2014
libc6:amd64 Sun Jul 13 13:09:04 2014
multiarch-support Sun Jul 13 13:09:43 2014
libtinfo5:amd64 Sun Jul 20 13:39:10 2014
libpcre3:amd64 Thu Jul 24 09:45:03 2014
gcc-4.9-base:amd64 Thu Jul 31 18:11:34 2014
libgcc1:amd64 Thu Jul 31 18:11:36 2014
libstdc++6:amd64 Thu Jul 31 18:11:36 2014
libbz2-1.0:amd64 Fri Aug 1 14:45:59 2014
Die Ausgabe umfasst in der linken Spalte den Paketnamen
(siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
) und ggf. die Architektur
(siehe
Abschnitt 1.2, „Debian-Architekturen“
) sowie in der rechten Spalte den
Zeitpunkt der erfolgten Änderung. Sie ersehen daraus, welche der
Abhängigkeiten (hier am Beispiel von
apt
) zu welchem Zeitpunkt zuletzt
auf diesem System aktualisiert wurden. Wenn Sie jetzt noch wissen, wann
der zu lokalisierende Fehler zuerst bemerkbar wurde, schränken Sie über
die Datumsangaben recht schnell ein, welches Paket den Fehler verursacht
hat.
8.34. Paketdatei nur herunterladen
APT und
aptitude
sind dafür gedacht, Softwarepakete vom Paketmirror zu
beziehen und diese danach sofort auf ihrem System einzuspielen. Es
besteht natürlich auch die Möglichkeit, diesen Vorgang in die beiden
Einzelschritte zu zerlegen, d.h. Herunterladen des Pakets und die
Installation aus dem Paketcache (siehe
Abschnitt 8.35, „Installation zwischengespeicherter Pakete aus dem Paketcache“
).
Mehrere Programme mit unterschiedlichen Schaltern bieten sich dafür an.
Für das herunterladen und speichern bestehen zwei Modi – das Speichern
im aktuellen Verzeichnis (Modus 1) und im Paketcache (Modus 2). Für
beides existieren verschiedene Unterkommandos und Aufrufmöglichkeiten.
Die Verwendung beider Modi ist sinnvoll, wenn Sie beispielsweise eine
Installation vorbereiten und dabei im Vorfeld überprüfen möchten, ob
alles reibungslos funktioniert. Ebenso zählt das Ausprobieren dazu –
das Schauen, was passiert, ohne eine tatsächliche Veränderung des
Paketbestands auf dem System vorzunehmen.
Ein weiterer Fall ist die Aktualisierung von Paketen ohne Internetzugang
(siehe auch „Paketverwaltung ohne Internet“ in
Kapitel 41,
Paketverwaltung ohne Internet
). Damit stellen Sie vorab bereits alle
Pakete zusammen, die Sie im Bedarfsfall benötigen und installieren diese
dann aus dem Paketcache oder aus einem lokalen Verzeichnis, ohne auf
eine bestehende Netzverbindung angewiesen zu sein.
8.34.1. Paketdatei im aktuellen Verzeichnis speichern
Hier akzeptieren
apt
apt-get
und
aptitude
das Unterkommando
. Das Paket
bash-doc
beinhaltet die Dokumentation zur Bash –
ein Bezug des Pakets via
apt-get
liefert Ihnen das folgende Ergebnis:
Bezug des Pakets
bash-doc
via
apt-get
und Speicherung im lokalen Verzeichnis.
# apt-get download bash-doc
Holen: 1 Herunterladen von bash-doc 4.2+dfsg-0.1 [696 kB]
Es wurden 696 kB in 0 s geholt (1.549 kB/s).
# ls bash-doc_4.2+dfsg-0.1_all.deb -la
-rw-r--r-- 1 root root 696268 Dez 30 2012 bash-doc_4.2+dfsg-0.1_all.deb
Dieser Aufruf ist identisch mit der Benutzung eines Webbrowsers. Dazu
wählen Sie beispielsweise im Debian-Paketarchiv das gewünschte Paket aus
und legen es über
Datei speichern unter
in einem lokalen
Verzeichnis ab (siehe
Abbildung 8.28, „Bezug des Pakets
bash-doc
über den Webbrowser“
).
Abbildung 8.28. Bezug des Pakets
bash-doc
über den Webbrowser
Im Paket
debian-goodies
[Debian-Paket-debian-goodies]
befindet sich
noch das Werkzeug
debget
, welches intern wieder
apt-get
aufruft. Im
Gegensatz zum Webbrowser benötigt es administrative Rechte, um ein Paket
zu beziehen.
Download des Pakets
nano
mittels
debget
# debget nano
(nano -> 2.2.6-3)
Downloading nano from http://ftp.de.debian.org/debian/pool/main/n/nano/nano_2.2.6-3_amd64.deb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 360k 100 360k 0 0 1124k 0 --:--:-- --:--:-- --:--:-- 1121k
debget
kann jedoch keine Quellpakete beziehen, dafür steht Ihnen dann
dget
aus dem Paket
devscripts
[Debian-Paket-devscripts]
zur Verfügung.
8.34.2. Paketdatei im lokalen Paketcache speichern
Dieser Modus kommt zum Zug, wenn Sie das Paket hingegen im lokalen
Paketcache (siehe
Kapitel 7,
Paketcache
) abspeichern möchten. Dazu verstehen
apt
apt-get
und
aptitude
zum Unterkommando
install
die Option
-d
(Langform
--download-only
).
Nachfolgende Ausgabe zeigt, wie sich
aptitude
dabei verhält. Das Paket
bash-doc
wird hierbei nicht installiert, sondern im Paketcache unter
/var/cache/apt/archives/
abgespeichert, sofern es vollständig bezogen
wurde. Nur teilweise heruntergeladene Pakete liegen hingegen unter
/var/cache/apt/archives/partial/
Bezug des Pakets
bash-doc
via
aptitude
und Speicherung im Paketcache.
# aptitude --download-only install bash-doc
Die folgenden NEUEN Pakete werden zusätzlich installiert:
bash-doc
0 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 16 nicht aktualisiert.
696 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 1.430 kB zusätzlich belegt sein.
Holen: 1 http://ftp.de.debian.org/debian/ wheezy/main bash-doc all 4.2+dfsg-0.1 [696 kB]
696 kB wurden in 0 s heruntergeladen (1.761 kB/s)
8.35. Installation zwischengespeicherter Pakete aus dem Paketcache
Liegt das Paket bereits oder noch im Paketcache, kann APT dieses von
dort entnehmen und sofort installieren. Ein Bezug vom Paketmirror ist in
diesem Fall nicht mehr erforderlich und spart sowohl Zeit, als auch
Bandbreite. Dazu benötigen
apt
bzw.
apt-get
die Option
--no-download
zum Unterkommando
install
aptitude
kennt den
Schalter bislang leider nicht.
Nachfolgende Ausgabe zeigt das für
apt-get
anhand des Pakets
bash-doc
welches bereits im Paketcache liegt.
Installation des Pakets
bash-doc
via
apt-get
aus dem Paketcache.
# apt-get --no-download install bash-doc
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
bash-doc
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Es müssen noch 0 B von 696 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 1.430 kB Plattenplatz zusätzlich benutzt.
Laden der Fehlerberichte ... Erledigt
»Found/Fixed«-Informationen werden ausgewertet ... Erledigt
Vormals nicht ausgewähltes Paket bash-doc wird gewählt.
(Lese Datenbank ... 299513 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von bash-doc (aus .../bash-doc_4.2+dfsg-0.1_all.deb) ...
bash-doc (4.2+dfsg-0.1) wird eingerichtet ...
Bei obigem Aufruf kümmern sich
apt
und
apt-get
darum, dass alle
Paketabhängigkeiten erfüllt sind. Geht es Ihnen hingegen nur um ein
einziges Paket, was keine Abhängigkeitskonflikte besitzt, kann auch
dpkg
die Aufgabe übernehmen. Dazu braucht
dpkg
dann den Dateinamen
des Pakets im Aufruf, bspw. so:
Installation des Pakets
bash-doc
via
dpkg
aus dem Paketcache.
# dpkg -i /var/cache/apt/archives/bash-doc.deb
...
Paket vom Paketmirror beziehen und automatisch (sofort) installieren
Um eines oder mehrere Pakete sofort zu installieren, kennen APT und
aptitude
das Unterkommando
install
. Alle vollständig bezogenen
Pakete landen danach automatisch im Paketcache unter
/var/cache/apt/archives
. Ausführlich gehen wir darauf unter
„Pakete installieren“ in
Abschnitt 8.38, „Pakete installieren“
und „Paketcache
wieder aufräumen“ in
Abschnitt 7.5, „Paketcache aufräumen“
ein.
8.36. Sourcepakete beziehen
Die Möglichkeit, auch die Quellpakete (siehe
Abschnitt 2.7.4, „Source-Pakete (
dsc
und weitere Dateien)“
) zu den
verwendeten Programmen zu erhalten, zählt zu den zentralen Säulen Freier
Software. Neben dem Lerneffekt steht die Befriedigung der Neugierde, zu
sehen, woraus überhaupt ein Debian-Binärpaket (siehe
Abschnitt 2.7.1, „Binärpakete (
deb
)“
entsteht und aus welchen Komponenten sich dieses zusammensetzt.
Damit erhalten Sie einen Blick hinter die Kulissen und können anhand des
Quellcodes ersehen, wie die Software programmiert wurde. Nur über diesen
Schritt können Sie ganz konkret nachvollziehen, wie diese funktioniert.
Das hilft Ihnen insbesondere auch dabei, die Ursache zu lokalisieren,
wenn ein Programm sich entgegen ihrer Erwartungen verhält.
Viele Entwickler weisen der Dokumentation ihrer Software häufig einen
niedrigen Stellenwert zu. Es kommt daher vor, dass die Dokumentation
unvollständig, fehlerhaft bzw. veraltet ist oder in einer Sprache
vorliegt, die sie nicht beherrschen. Schwachpunkte sind zudem die
Verfahren, welche implementiert wurden, aber auch die Parameter,
Schalter und Konfigurationsdateien, mit der Sie das Verhalten der
Software steuern und beeinflussen können.
Das Programm
apt-get
bringt hier den Schalter
source
mit und
erwartet danach die Angabe eines oder mehrerer Paketnamen. Damit
apt-get
nach dem Aufruf die Quellpakete auch beziehen kann, benötigt
es einen entsprechenden Eintrag in der Liste der Paketquellen
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
). Für die Veröffentlichung
Debian 9
Stretch
sieht der Eintrag wie folgt aus:
deb-src http://ftp.de.debian.org/debian/ stretch main contrib non-free
APT wertet die Paketbeschreibung aus, bezieht danach alle Quellpakete
von dem angegebenen Paketmirror – den Debian Source Code (
dsc
) plus
Paketierung (siehe
Abschnitt 4.2.2, „Source-Pakete“
) – , aus denen das
Binärpaket zusammengebaut wurde und überprüft diese Komponenten (siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
) anhand deren öffentlichem Schlüssel.
Am Schluss werden die drei Archive
dsc
tar
und
diff
im aktuellen
Verzeichnis entpackt.
Gibt es zusätzliche Änderungen am Quellcode in Form von Patches, werden
diese ebenfalls bezogen und nacheinander auf den entpackten Quellcode
angewendet. Nachfolgendes Beispiel zeigt diesen Vorgang anhand des
Pakets
libapache2-mod-authn-yubikey
für den Webserver Apache:
Bezug des Sourcepakets
libapache2-mod-authn-yubikey
mit APT.
$ apt-get source libapache2-mod-authn-yubikey
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Es müssen 22,5 kB an Quellarchiven heruntergeladen werden.
Holen: 1 http://ftp.de.debian.org/debian/ wheezy/main libapache2-mod-authn-yubikey 1.0-1 (dsc) [1.891 B]
Holen: 2 http://ftp.de.debian.org/debian/ wheezy/main libapache2-mod-authn-yubikey 1.0-1 (tar) [16,5 kB]
Holen: 3 http://ftp.de.debian.org/debian/ wheezy/main libapache2-mod-authn-yubikey 1.0-1 (diff) [4.115 B]
Es wurden 22,5 kB in 5 s geholt (4.095 B/s).
gpgv: Schlüsselblockhilfsmittel`/home/frank/.gnupg/trustedkeys.gpg': Fehler beim Öffnen der Datei
gpgv: Unterschrift vom Do 17 Feb 2011 16:22:26 CET mittels RSA-Schlüssel ID 8649AA06
gpgv: Unterschrift kann nicht geprüft werden: Öffentlicher Schlüssel nicht gefunden
dpkg-source: Warnung: Fehler beim Überprüfen der Signatur von ./libapache2-mod-authn-yubikey_1.0-1.dsc
dpkg-source: Information: libapache2-mod-authn-yubikey wird nach libapache2-mod-authn-yubikey-1.0 extrahiert
dpkg-source: Information: libapache2-mod-authn-yubikey_1.0.orig.tar.bz2 wird entpackt
dpkg-source: Information: libapache2-mod-authn-yubikey_1.0-1.debian.tar.gz wird entpackt
Desweiteren existiert auch eine Alternative namens
dget
aus dem Paket
devscripts
[Debian-Paket-devscripts]
. Darüber kombinieren Sie den
Bezug der Paketinhalte.
dget
akzeptiert als Parameter eine Liste von
Paketnamen, die es nacheinander vom Paketmirror bezieht und im lokalen
Verzeichnis speichert. Liegt das betreffende Paket bereits im
Paketcache, entnimmt
dget
dieses von dort
[Kemp-dget]
Bezug der beiden Pakete
bash-doc
und
libbash-doc
via
dget
# dget bash-doc
dget: using /var/cache/apt/archives/bash-doc_4.2+dfsg-0.1_all.deb (copy)
# dget libbash-doc
dget: retrieving http://ftp.de.debian.org/debian/pool/main/libb/libbash/libbash-doc_0.9.11-1_all.deb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20468 100 20468 0 0 166k 0 --:--:-- --:--:-- --:--:-- 243k
8.37. Sourcepakete anzeigen
Zur Philosophie der Freien Software gehört der vollständige Zugang zu
den Quelldaten der Binärpakete. Zwei Werkzeuge ermöglichen es Ihnen,
Informationen zu einem bestimmten Quellpaket anzuzeigen. Während
apt-cache
mit dem Unterkommando
showsrc
alle Informationen zu einem
bestimmten Quellpaket anzeigt, vergleicht
apt-show-source
das aktuell
installierte Paket mit dem verfügbaren Paket.
8.37.1.
apt-cache
verwenden
Das Werkzeug
apt-cache
ermöglicht es Ihnen, über das Unterkommando
showsrc
alle Informationen zu einem bestimmten Quellpaket anzuzeigen,
welches in Debian verfügbar ist.
Die nachfolgende Ausgabe zeigt das Ergebnis zum Paket
htop
an. Neben
dem Paketnamen für das Binär- und Quellpaket (
Binary
und
Package
sehen Sie die Version (
Version
) und den Maintainer (
Maintainer
sowie das Paketformat (
Format
) und die Architektur (
Architecture
),
für welche das vorliegende Paket übersetzt werden kann. Neben dem
Schlüsselwort
Build-Depends
sind alle Pakete samt deren Version
aufgeführt, die zum Übersetzen des Programmcodes erforderlich sind.
Unter
Files
sind zudem noch alle Dateien samt deren Hashwert
Checksums-Sha1
und
Checksums-Sha256
) benannt. Den Abschluß der
Beschreibung bilden die Projektwebseite (
Homepage
), die Paketliste
Package-List
), das Verzeichnis auf dem Paketmirror (
Directory
), die
Paketpriorität (
Priority
) und die Einsortierung in die Paketkategorie
Section
).
Ausgabe der Informationen zum Sourcepaket zu
htop
$ apt-cache showsrc htop
Package: htop
Binary: htop
Version: 1.0.1-1
Maintainer: Eugene V. Lyubimkin
Build-Depends: debhelper (>= 7), libncurses5-dev, libncursesw5-dev, autotools-dev, quilt (>= 0.40), python-minimal, libhwloc-dev [!linux-any]
Architecture: any
Standards-Version: 3.9.2
Format: 1.0
Files:
fbaa099edb84fd7ea95fa41d4bf43852 1112 htop_1.0.1-1.dsc
d3b80d905a6bff03f13896870787f901 384683 htop_1.0.1.orig.tar.gz
5952c54e78d6147adbdd541764491796 9113 htop_1.0.1-1.diff.gz
Checksums-Sha1:
3c3eb973c4399fd24c578643790de158b39fe87e 1112 htop_1.0.1-1.dsc
bad226ec887a2b7ea5042879ed18e067812d030e 384683 htop_1.0.1.orig.tar.gz
63306ced4fa534698fc8e111035fc5cbdfe35ab2 9113 htop_1.0.1-1.diff.gz
Checksums-Sha256:
2b80e492eac78607fd6962c88823e1be537e800f293189d02ede5ef5ad8994e4 1112 htop_1.0.1-1.dsc
07db2cbe02835f9e186b9610ecc3beca330a5c9beadb3b6069dd0a10561506f2 384683 htop_1.0.1.orig.tar.gz
d3b0b9edd356cd3078ac582ebeda20bd5972bc2ee903e766c4adf4ab5c61d249 9113 htop_1.0.1-1.diff.gz
Homepage: http://htop.sourceforge.net
Package-List:
htop deb utils optional
Directory: pool/main/h/htop
Priority: source
Section: utils
8.37.2.
apt-show-source
verwenden
apt-show-source
aus dem gleichnamigen Debianpaket analysiert die
APT-Listen der Quellcode-Pakete und die Statusdatei von
dpkg
. Das
Werkzeug listet jedes Paket auf, dessen Versionsnummer sich von der
installierten unterscheidet. Nachfolgend sehen Sie das für das Paket
libspice-server1
Ausgabe der Informationen zum Sourcepaket zu
libspice-server1
$ apt-show-source -p libspice-server1

Inst. Package (Version) | Newest Source Package (Version)
- -----------------------------------------------------------------------------
libspice-server1 (0.12.5-1+deb8u8) | spice (0.12.5-1+deb8u7)
8.38. Pakete installieren
Die Installation von Paketen und die dazugehörigen Aufrufe gehören aus
unserer Sicht zu den Aktionen bei der Paketverwaltung, welche am
häufigsten genutzt werden. Nachfolgend beschreiben wir, mit welchen
Aufrufen Sie Pakete vom Paketmirror beziehen und danach sofort auf Ihrem
System installieren. Wie Sie die Paketdateien nur herunterladen, ohne
diese zu installieren, lesen Sie in
Abschnitt 8.34, „Paketdatei nur herunterladen“
Für APT und
aptitude
lässt sich der Vorgang mit „Aufruf von
dpkg -i
Paketname
in der richtigen Reihenfolge“ umschreiben. Dabei erfolgt
zudem die Beachtung der jeweiligen Paketabhängigkeiten – noch fehlende
und zusätzlich benötigte Pakete werden erkannt und vom Paketmirror
mitbezogen. Die Voraussetzung, dass das angegebene Paket bereits im
(lokalen) Verzeichnis liegt, muss nicht erfüllt sein.
Wir empfehlen Ihnen,
dpkg
nur im Ausnahmefall zu benutzen. Der Umgang
mit
dpkg
bzw. das Wissen um die Bibliotheken dahinter (siehe
Kapitel 5,
APT und Bibliotheken
) zählt zum notwendigen Hintergrundwissen, um zu
verstehen, was die anderen Werkzeuge wie APT und
aptitude
überhaupt
veranstalten. APT und
aptitude
erleichtern Ihren Alltag als
Systembetreuer jedoch deutlich.
8.38.1. Vorbereitungen
Bevor es mit der Installation von Paketen losgeht, prüfen Sie in Schritt
1, ob noch genügend freier Speicherplatz auf Ihrem Linuxsystem
verfügbar ist. Damit schließen Sie von vornherein unvollständig im
Paketcache zwischengespeicherte und entpackte Pakete (und insbesondere
den damit verbundenen Unmut über den sich daraus ergebenden
administrativen Zusatzaufwand) aus.
APT ist sehr nett und rechnet Ihnen sogar aus, wieviel zusätzlicher
Speicherplatz benötigt wird, wenn Sie das ausgewählte Paket installieren
(Schritt 2). Dazu lesen Sie die Nachricht von APT bzw.
aptitude
genau. In der vorletzten Zeile zeigt es Ihnen den benötigten
Speicherplatz für die neuen Pakete an – im nachfolgenden Beispiel für
das Paket
kdm
sind es immerhin 36MB. Da im Moment nur der benötigte
Speicherplatz von Interesse ist, brechen Sie die Installation ab, indem
Sie bei der abschließenden Frage die Taste
drücken.
Abgebrochene Installation von
kdm
mittels APT.
# apt-get install kdm
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
kde-wallpapers-default kde-workspace-kgreet-plugins libkworkspace4abi1
Vorgeschlagene Pakete:
kdepasswd kde-wallpapers
Die folgenden NEUEN Pakete werden installiert:
kde-wallpapers-default kde-workspace-kgreet-plugins kdm libkworkspace4abi1
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Es müssen 33,7 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 36,3 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? n
Abbruch.
Abgebrochene Installation von
kdm
mittels
aptitude
# aptitude install kdm
Die folgenden NEUEN Pakete werden zusätzlich installiert:
kde-wallpapers-default{a} kde-workspace-kgreet-plugins{a} kdm libkworkspace4abi1{a}
0 Pakete aktualisiert, 4 zusätzlich installiert, 0 werden entfernt und 16 nicht aktualisiert.
33,7 MB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 36,3 MB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] n
Abbruch.
Sind Sie sich unsicher, ob die Installation erfolgreich verlaufen würde,
simulieren Sie den Vorgang (Schritt 3). Dazu bietet Ihnen APT die
Option
--simulate
und als Alternativen dazu auch
--just-print
--dry-run
--recon
und
--no-act
an.
aptitude
kennt die Option
-s
bzw.
--simulate
in der Langform. Die nachfolgende Ausgabe zeigt
die Simulation anhand von APT und des Pakets
kdm
. Dabei bezeichnen
die Zeilen der Ausgabe eine Installation eines Pakets, die mit
Inst
beginnen. Das Schlüsselwort
Conf
besagt, dass das entsprechende Paket
konfiguriert wird.
Simulation der Paketinstallation von
kdm
# apt-get install --simulate kdm
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
kde-wallpapers-default kde-workspace-kgreet-plugins libkworkspace4abi1
Vorgeschlagene Pakete:
kdepasswd kde-wallpapers
Die folgenden NEUEN Pakete werden installiert:
kde-wallpapers-default kde-workspace-kgreet-plugins kdm libkworkspace4abi1
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Inst kde-wallpapers-default (4:4.8.4-1 Debian:7.6/stable [all])
Inst kde-workspace-kgreet-plugins (4:4.8.4-6 Debian:7.6/stable [i386])
Inst libkworkspace4abi1 (4:4.8.4-6 Debian:7.6/stable [i386])
Inst kdm (4:4.8.4-6 Debian:7.6/stable [i386])
Conf kde-wallpapers-default (4:4.8.4-1 Debian:7.6/stable [all])
Conf kde-workspace-kgreet-plugins (4:4.8.4-6 Debian:7.6/stable [i386])
Conf libkworkspace4abi1 (4:4.8.4-6 Debian:7.6/stable [i386])
Conf kdm (4:4.8.4-6 Debian:7.6/stable [i386])
Als Schritt 4 bringen Sie die Paketliste Ihres Linuxsystems auf den
aktuellen Stand. Wie das im Detail vorsichgeht, erfahren Sie in
Abschnitt 8.41, „Pakete aktualisieren“
. Damit stellen Sie sicher, dass Sie mit einer
aktuellen Paketliste arbeiten und darüber nur Pakete auswählen, die sich
auf dem neuesten Stand befinden. Sie verhindern damit insbesondere, dass
Sie veraltete Varianten auf Ihr System einpflegen und reduzieren
gleichzeitig den Aufwand bei einer späteren Aktualisierung.
8.38.2. Durchführung
Nachdem alle Vorbereitungen abgeschlossen wurden, folgt nun der Schritt
ans Eingemachte – die eigentliche Installation. Für APT lautet der
Aufruf
apt-get install Paketname
und für
aptitude
in ähnlicher Art
und Weise
aptitude install Paketname
. Beide Werkzeuge verarbeiten
nicht nur einzelne Pakete und ganze Paketlisten mit exakten
Paketbezeichnungen, sondern auch Paketnamen mit
Quantifizierungsoperatoren. Nachfolgender Aufruf zeigt das anhand der
Dokumentationspakete zu
aptitude
, deren Namen mit der Zeichenkette
aptitude-doc
beginnen. Damit die Shell, die ihr APT-Kommando ausführt,
nicht den Parameter mit dem Quantifizierungsoperator interpretiert und
nach Dateien mit dem entsprechenden Namen sucht, schließen Sie das
Suchmuster in einfache Anführungszeichen ein.
Aufruf von
apt-get install
mit dem Quantifizierungsoperator
# apt-get install 'aptitude-doc*'
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Hinweis: »aptitude-doc-cs« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-fi« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-en« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-es« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-fr« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-ja« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-it« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Die folgenden NEUEN Pakete werden installiert:
aptitude-doc-cs aptitude-doc-en aptitude-doc-es aptitude-doc-fi aptitude-doc-fr aptitude-doc-it
aptitude-doc-ja
0 aktualisiert, 7 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Es müssen 2.337 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 7.642 kB Plattenplatz zusätzlich benutzt.
...
Wie aus obiger Darstellung ersichtlich wird, durchläuft die Installation
eine Reihe von Einzelschritten. Zunächst prüfen APT bzw.
aptitude
, ob
das angegebene Paket in der Liste der verfügbaren Pakete überhaupt
existiert und ob dieses bereits installiert ist. Danach wird ein
Installationskandidat festgelegt und dessen Paketabhängigkeiten werden
überprüft. Zu klären ist, ob bereits alle Pakete installiert sind, die
von diesem abhängen. Falls das nicht zutrifft, werden diese ebenso mit
in die Liste der zu installierenden Pakete aufgenommen. Ist die Liste
komplett, wird die Gesamtgröße des zusätzlich belegten Speicherplatzes
berechnet.
Bestehen keine Unklarheiten über die zu installierenden Pakete, setzen
APT bzw.
aptitude
mit ihrer Arbeit ohne Rückfrage fort. Andernfalls
wartet das Programm noch auf Ihr Einverständnis.
Daraufhin werden die Pakete vom Paketmirror bezogen und im Paketcache
zwischengespeichert, auf Korrektheit überprüft (siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
), um die notwendigen
Sicherheitsaktualisierungen („Fixes“ oder „Security Updates“)
ergänzt und danach temporär ausgepackt. Nun erfolgt die Auswertung und
Ausführung der
preinst
-Maintainer-Skripte des Pakets (siehe
Abschnitt 4.2, „Aufbau und Format“
) und danach werden die Dateien aus dem jeweiligen
Paket an die angegebene Stelle im Dateisystem kopiert. Abschließend
erfolgen eine (Nach)Konfiguration (siehe
Abschnitt 8.40, „Pakete konfigurieren“
),
sofern das erforderlich ist, und die Ausführung der
postinst
-Maintainer-Skripte des Pakets (siehe
Abschnitt 4.2, „Aufbau und Format“
).
Ganz am Ende aktualisieren APT bzw.
aptitude
noch die Paketdatenbank
und setzen den Status des Pakets auf „vollständig installiert“ (siehe
Abschnitt 8.4, „Paketstatus erfragen“
).
8.38.3. Begutachtung
Nach der Installation gilt es zu überprüfen, ob alles glatt ging. Sie
erkennen das an den Rück- und Fehlermeldungen der Programme zur
Paketverwaltung.
Im Fehlerfall bieten sowohl APT als auch
aptitude
über die Option
-f
(Langform
--fix-broken
) Rettungshilfe an. Dabei werden fehlende
Abhängigkeiten nachinstalliert und defekte Pakete eventuell
deinstalliert. Einen Paketnamen müssen Sie im Aufruf nicht angeben, da
die Paketzustände ausgewertet werden und darüber entschieden wird, was
zu tun ist.
8.38.4. Weitere, nützliche APT-Optionen für den Alltag (Auswahl)
APT kennt eine Reihe von Optionen, die in verschiedenen Situationen im
Alltag nützlich sein können. Wir stellen Ihnen hier eine Auswahl davon
vor.
-y
(Langform
-assume-yes
und
--yes
die interaktiven Fragen zur Installation werden automatisch mit „YES“
bzw. „JA“ beantwortet. Die Option ist das Gegenstück zu
--trivial-only
-d
(Langform
--download-only
die Pakete werden nur heruntergeladen, jedoch nicht installiert (siehe
Abschnitt 8.34, „Paketdatei nur herunterladen“
).
--install-suggests
die vorgeschlagenen Pakete werden mitinstalliert.
--no-install-recommends
die empfohlenen Pakete werden nicht automatisch installiert.
--reinstall
das Paket wird erneut installiert (siehe
Abschnitt 8.39, „Pakete erneut installieren“
).
--trivial-only
Gegenstück zur Option
--assume-yes
. Damit werden alle Fragen
automatisch mit „NO“ beantwortet und kritische Aktionen bleiben außen
vor.
-V
(Langform
--verbose-versions
in der Ausgabe erscheint die vollständige Versionsangabe des bezogenen
Pakets.
8.38.5. Besonderheiten bei
aptitude
Zwischen APT und
aptitude
bestehen kleine Unterschiede. Dazu zählt
auch eine abweichende Vorgehensweise bei Verarbeitung von Paketaktionen.
Mit dem Aufruf
aptitude install
installieren Sie nicht nur alle
bereits vorgemerkten Pakete, sondern führen alle bereits vorgemerkten
Aktionen zur Aktualisierung des Paketbestands durch. Das kann auch die
Aktualisierung und Entfernung von Paketen beinhalten. Ausführlicher
gehen wir zu dieser Thematik in
Kapitel 11,
Mit
aptitude
Vormerkungen machen
ein.
Bei der Benutzung von Ubuntu besteht eine weitere Besonderheit. Diese
betrifft die Voreinstellungen, in der festgelegt ist, dass auch die
Empfehlungen eines Pakets mit berücksichtigt werden. Verwenden Sie zum
Schalter
install
die Option
-R
, werden nur die direkten
Abhängigkeiten mit installiert. Das Verhalten von
aptitude
regeln Sie
über den Schlüssel
APT::Install-Recommends
(siehe
Abschnitt 10.3, „Konfigurationsdateien von APT im Detail“
).
8.38.6. Erweiterungen ab APT 1.1
Ab der Version 1.1 verfügt APT über interessante Erweiterungen. Diese
bzw. eine spätere Version ist ab Debian 9
Stretch
verfügbar. Damit
können die beiden Aufrufe
apt install
und
apt-get install
nicht
nur Paketnamen verarbeiten, sondern auch Pfade zu lokal vorliegenden
deb
-Paketen als Parameter benutzen. Im Gegensatz zu
gdebi
(siehe
Abschnitt 6.4.5, „GDebi“
) besteht hier keine Beschränkung auf nur ein einziges
Paket, sondern es gelten die weiter oben benannten Möglichkeiten zur
Spezifikation von Paketen. Ein Beispielaufruf zur Installation der
beiden lokalen Pakete namens
/tmp/foo.deb
und
bar.deb
sieht wie
folgt aus:
Installation zweier
deb
-Pakete mittels APT.
# apt install /tmp/foo.deb ./bar.deb
...
8.39. Pakete erneut installieren
Manchmal gehen Dateien kaputt oder werden unbeabsichtigt gelöscht. Sei
es bei einer Reparatur des Dateisystems, durch Bit-Dreher auf dem
Speichermedium oder durch „Unfälle“ beim Drag-and-Drop. Auf der
Kommandozeile passieren mitunter auch Tippfehler, die im Nachhinein
nicht mehr reparabel sind.
In anderen Fällen möchten Sie eine Software temporär deinstallieren, um
diese später wieder zu installieren. Es ist dabei nicht unüblich, dass
bestehende, selbst angepasste Konfigurationsdateien später
wiederverwendet werden. Auch das Ersetzen von bereits veränderten
Konfigurationsdateien durch ihre Originale aus dem Paket wird oft durch
eine Wiederinstallation versucht – nur leider hat dies nur selten den
erwünschten Effekt. Warum das nicht immer so funktioniert wie erhofft,
erklären wir gleich.
Alle diese Fälle haben gemeinsam, dass ein Paket erneut installiert wird.
Dabei unterscheiden wir hier drei verschiedene Ausgangszustände:
Das Paket wurde mitsamt Konfigurationsdateien entfernt, d.h.
vollständig gelöscht (
purged
).
Das Paket wurde entfernt, die Konfigurationsdateien sind aber noch
da.
Das Paket ist bereits/noch installiert.
Jeder dieser Fälle hat dabei seine Eigenheiten. In den ersten beiden
Fällen können Sie das Paket ganz einfach auf den üblichen Wegen
installieren. Welche Besonderheiten Sie dabei dennoch beachten sollten,
lesen Sie in den folgenden Abschnitten.
Im letztgenannten Fall teilen Ihnen die meisten Programme, die auf APT
basieren, mit, dass besagtes Paket bereits installiert ist. Deswegen
braucht es dort den expliziten Hinweis, dass das Paket nochmals
installiert werden soll. Zum Einsatz kommt dabei meist die Option
--reinstall
(APT) oder das Unterkommando
reinstall
aptitude
cupt
).
8.39.1. Wiederinstallieren vollständig entfernter Pakete
Wurden Pakete mit der Option
--purge
vollständig entfernt (siehe
dazu
Abschnitt 8.43, „Pakete deinstallieren“
), so ist dieser Fall in vielen Fällen
trivial und ohne jegliche Besonderheiten.
Die einzige Ausnahme davon bilden Pakete, die Teile ihrer
Konfiguration über
debconf
erfragen. Das Kommando
dpkg --purge
entfernt alle Bestandteile außer den in der Debconf-Datenbank
gespeicherten Antworten des zu entfernenden Pakets. Dies kann dazu
führen, dass Ihnen die
debconf
-Fragen zur Konfiguration des Pakets
nicht wieder gestellt werden. Im Endeffekt wird die gleiche
Konfiguration wie bei der vorherigen Installation des Pakets generiert.
In diesem Fall hilft Ihnen der Aufruf von
dpkg-reconfigure
mit dem
Paketnamen als Parameter. In manchen Fällen reicht dies alleine schon
aus, um eine verkorkste Konfiguration wieder hinzubiegen. Mitunter
kommen Sie damit um ein gänzliches Entfernen und Wiederinstallieren des
Pakets herum. Ausführlich gehen wir dazu unter „Pakete konfigurieren“
in
Abschnitt 8.40, „Pakete konfigurieren“
ein.
8.39.2. Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Auch dieser Fall funktioniert meist ganz unspektakulär und so wie Sie es
erwarten. Neben den bereits oben erwähnten Stolperstellen kommt jedoch
in diesem Fall noch hinzu, dass
dpkg
vorherige Änderungen an den noch
vorhandenen Konfigurationsdateien beachtet. Falls sich diese Dateien in
der aktuell zu installierenden Paketversion nicht gegenüber denen in der
vorher installierten Variante geändert haben, fragt
dpkg
gar nicht
nach, ob es diese mit den Varianten aus dem Paket ersetzen soll. Dies gilt
auch analog für Konfigurationsdateien, die von Ihnen als Administrator
gelöscht wurden.
dpkg
sieht dies als Absicht an, respektiert daher
Ihre Entscheidung und installiert die entsprechende Konfigurationsdatei
aus dem neuen Paket ebenfalls nicht wieder.
Wurde eine Wiederherstellung erwartet, so muss das Paket vorher von Ihnen
mit
purge
dpkg --purge
apt-get purge
oder
aptitude purge
entfernt werden. Damit installiert
dpkg
die Konfigurationsdateien aus
dem Paket erneut.
8.39.3. Wiederinstallieren bereits installierter Pakete
Der dritte Fall unterscheidet sich von den ersten beiden dahingehend,
dass er einerseits erzwungen werden muss und andererseits, dass die gleiche
Version wie die bereits vorhandene wieder installiert wird. Andernfalls
würde es sich ja um eine Paketaktualisierung handeln.
Diese Vorgehensweise wird meist dann verwendet, wenn – wie zu Beginn
dieses Abschnitts erwähnt – eine oder mehrere Dateien eines
installierten Pakets kaputt gegangen sind und diese wiederhergestellt
werden sollen. Oft ist dies sogar einfacher und schneller, als das
Backup zu bemühen.
Ist die entsprechende Paketdatei noch in
/var/cache/apt/archives/
vorhanden, so reicht zum Wiederinstallieren ein simples
dpkg -i
mit
der richtigen Datei als Parameter. Da das Paket bereits installiert war,
müssen auch alle Abhängigkeiten bereits vorliegen, und es ist nicht
notwendig, Abhängigkeiten nochmals aufzulösen.
Muss die Paketdatei neu heruntergeladen werden, so nutzen Sie besser
einen der Aufrufe
apt-get install --reinstall
aptitude reinstall
oder auch
cupt reinstall
. Zusätzlich benötigen Sie im Aufruf den
entsprechenden Paketnamen als Parameter.
Ist das Paket in der aktuell installierten Version jedoch in keinem der
dem System bekannten APT-Repositories mehr verfügbar, wird der Vorgang
mit einer Fehlermeldung abgebrochen. Desweiteren gelten auch in diesem
Fall die gleichen Verhaltensweisen bzgl. geänderter
Konfigurationsdateien und
debconf
-Fragen wie in den beiden
vorgenannten Fällen.
8.39.4. Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
Die vermutlich häufigste Stolperfalle beim Wiederinstallieren von
Paketen ist, dass Sie das falsche Paket erwischen. Dies passiert
im Alltag leider häufiger, als Sie das erwarten würden.
Sind Dateien kaputtgegangen, bei denen Sie sowieso nicht genau wissen,
aus welchem Paket diese stammen, so nehmen Sie flink
dpkg -S
zu Hilfe
(siehe
Abschnitt 8.24, „Paket zu Datei finden“
). Damit ermitteln damit das dazugehörige
Paket im Handumdrehen.
Wissen Sie den Paketnamen jedoch nur ungefähr, wird oft bereits der
erste Versuch, das Paket mit dem Namen der Software zu Reinstallieren,
ein Fehlschlag. Gerade die größeren Software-Suiten bestehen häufig aus
mehreren Paketen und das Paket mit dem Namen der Suite ist meist nur ein
Metapaket ohne eigentlichen Inhalt. Zu bedenken ist außerdem, dass eine
Wiederinstallation eines bereits installierten Pakets dessen
Abhängigkeiten unangetastet lässt.
Ein schönes Beispiel für einen solchen Fall ist die Server-Software
namens
Samba
. Haben Sie z.B. die Datei
/etc/pam.d/samba
zerschossen, ist die Versuchung groß, einfach das Paket namens
samba
mit
dpkg --purge
zu deinstallieren und gleich danach wieder zu
installieren. Leider wird die Datei danach unverändert sein, da sie
nicht zum Paket
samba
gehört, sondern zu dessen Abhängigkeit
samba-common
. Deswegen hilft es Ihnen, im Zweifelsfall doch lieber
erst
dpkg -S
zu bemühen und nachzuschauen, in welchem Paket eine Datei
wirklich enthalten ist, bevor Sie zu Fluchen anfangen.
8.40. Pakete konfigurieren
Im Normalfall liegen die Debianpakete entweder bereits fertig
konfiguriert oder mit einer vorbereiteten Konfiguration auf dem
Spiegelserver. Dafür zeichnet der Paketmaintainer verantwortlich. Mit
verschiedenen Werkzeugen zeigen Sie diese Konfiguration an oder
justieren das Paket neu.
8.40.1. Bestehende Konfiguration eines Pakets anzeigen
Die bestehende Konfiguration eines Paketes zeigen Sie mit Hilfe des
Kommandos
debconf-show
Paketname
an.
debconf-show
ist Bestandteil
des Pakets
debconf
[Debian-Paket-debconf]
und somit ein essentieller
Teil ihrer Installation. Für das Paket
tzdata
[Debian-Paket-tzdata]
sieht das Ergebnis wie folgt aus, sofern Sie auf ihrem System als
Zeitzone „Europa/Berlin“ eingestellt haben:
Ausgabe der Konfiguration eines Pakets — hier
tzdata
# debconf-show tzdata
tzdata/Zones/Pacific:
tzdata/Zones/Arctic:
tzdata/Zones/Africa:
tzdata/Zones/Asia:
tzdata/Zones/US:
* tzdata/Zones/Etc: UTC
tzdata/Zones/Australia:
* tzdata/Zones/Europe: Berlin
* tzdata/Areas: Europe
tzdata/Zones/Antarctica:
tzdata/Zones/SystemV:
tzdata/Zones/Atlantic:
tzdata/Zones/Indian:
tzdata/Zones/America:
In obiger Ausgabe erscheint vor jeder Zeile ein
für die Frage zur
Konfiguration, die Ihnen als Benutzer bereits bei der Einrichtung des
Pakets gestellt wurde. Das kommt beispielsweise dann vor, wenn Sie
Debian auf ihrem System installieren — das Paket
tzdata
ist ein
grundlegender Bestandteil des Installationsprozesses. Es legt die
verwendete Zeitzone ihres Systems fest (
tzdata
kürzt
time zone data
ab).
8.40.2. Konfiguration für alle Pakete auslesen
Die Konfiguration für alle Pakete ist in der Debconf-Datenbank
gespeichert. Um diese Konfiguration auszulesen, bedienen Sie sich des
Kommandos
debconf-get-selections
aus dem Paket
debconf-utils
[Debian-Paket-debconf-utils]
. Dieses Paket gehört nicht zur
Basisinstallation und ist daher ggf. noch von Ihnen nachzuinstallieren.
Die Ausgabe des Programms erfolgt zeilenweise auf dem
Standardausgabekanal (
stdout
). Sie erhalten zunächst eine
Kommentarzeile, die jeweils mit einem
eingeleitet wird. Darauf folgt
die Konfigurationsvariable und der Wert, der für die entsprechende
Variable derzeit hinterlegt ist. Da die Debconf-Datenbank eine hohe
Anzahl Variablen speichert, macht Ihnen ein Pager wie
less
die
seitenweise Betrachtung leichter (siehe nachfolgendes Beispiel).
Gespeicherte Konfiguration in der Debconf-Datenbank.
# debconf-get-selections | less
# Standardwortliste des Systems:
# Choices: american (American English), deutsch (New German), Manuelle Einrichtu
ng von symbolischen Verweisen
dictionaries-common dictionaries-common/default-wordlist select deutsch
(New German)
# Jetzt die Umstellung auf GRUB 2 abschließen?
grub-pc grub-pc/mixed_legacy_and_grub2 boolean true
...
Das Installationsprogramm von Debian verfügt ebenfalls über eine solche
Liste. Diese lesen Sie über den Schalter
--installer
aus. Der
Hintergrund dazu ist, dass die Informationen, die während der
Installation des Systems gesetzt werden, in einer getrennten Datenbank
unter
/var/log/installer/cdebconf
abgelegt sind.
Auslesen der Konfiguration für den Installer (Ausschnitt).
# debconf-get-selections --installer
...
# Typ des drahtlosen Netzwerks (WLAN):
# Choices: Infrastruktur-Netzwerk (Managed), Ad-hoc-Netzwerk (Peer-to-Peer)
netcfg netcfg/wireless_adhoc_managed select Infrastructure (Managed) network
# Änderungen auf die Platte schreiben und verschlüsselte Datenträger konfigurieren?
partman-crypto partman-crypto/confirm boolean false
...
Das Gegenstück zu
debconf-get-selections
ist
debconf-set-selections
(Paket
debconf
[Debian-Paket-debconf]
). Dieses Werkzeug kann die
Ausgabe von
debconf-get-selections
direkt verarbeiten und dient Ihnen
bspw. zum Einspielen einer vorab gesicherten Paketkonfiguration auf dem
gleichen oder einem anderen System. Ausführlicher besprechen wir diesen
speziellen Anwendungsfall im Praxisteil unter „Paketkonfiguration
sichern“ in
Kapitel 34,
Paketkonfiguration sichern
8.40.3. Bestehende Konfiguration anwenden
Die Basiseinstellungen eines Pakets funktionieren im Allgemeinen recht
gut, haben aber nicht immer einen Bezug zu ihrem konkreten Einsatzfall.
Dieser lässt sich selten vollständig vorhersehen. Daher folgt im Rahmen
der Paketinstallation zunächst ein individuelles Feintuning seitens des
Administrators. Das betrifft die Voreinstellungen für alle Benutzer. Als
Benutzer selbst nehmen Sie individuelle, lokale Korrekturen vor.
Das Anwenden der vorbereiteten Konfiguration umfasst mehrere Schritte — bspw. das Festlegen von Zugangsdaten (administratives Passwort von
MySQL) oder das Starten von benötigten Diensten, bspw. Exim als Mail
Transfer Agent (MTA). Stellt
dpkg
dabei fest, dass zwischen der
mitgelieferten Konfiguration des neuen Pakets und der bereits
bestehenden Konfiguration Unterschiede vorliegen, werden Sie durch das
Programm gefragt, welche der beiden Einstellungen zukünftig genutzt
werden soll. Das ist sinnvoll und berücksichtigt insbesondere den Fall,
dass das Paket bereits bisher auf ihrem System installiert war und von
Ihnen händisch auf ihre individuellen Gegebenheiten angepasst wurde. Als
Möglichkeiten werden Ihnen hier angeboten:
die mitgelieferte Konfiguration des neuen Pakets zu benutzen
die bestehende Konfiguration des installierten Pakets beibehalten
sich die Unterschiede zwischen beiden anzeigen zu lassen und
eine Shell zur individuellen Problembehebung zu öffnen.
Bei letzterem bietet sich Ihnen damit die Möglichkeit, bspw. eine
Sicherheitskopie der bestehenden Konfiguration anzulegen, bevor Sie
diese verändern. Sollte diese neue Konfiguration nicht ihren Erwartungen
oder Bedürfnissen entsprechen, können Sie somit jederzeit auf die
Sicherheitskopie zurückgreifen. Bei diesem Vorgehen haben Sie als
Administrator die Möglichkeit zu sehen, dass überhaupt Unterschiede
bestehen und welche Unterschiede das konkret sind. Sie können Ihre
derzeitige Konfiguration beibehalten sowie im Zweifelsfall die
Konfiguration auf neue (Standard)Werte zurückzusetzen.
In seltenen Fällen geht dieser Prozess schief, d.h. das Paket wurde zwar
entpackt, aber nicht konfiguriert. Hintergrund können nicht sauber
aufgelöste Paketabhängigkeiten sein, aber auch Fehler im Paket selbst.
Ist ein benötigtes Paket nicht konfiguriert und be- bzw. verhindert
damit die Installation und Einrichtung weiterer, davon abhängiger
Pakete, teilt Ihnen
dpkg
das wie folgt mit:
Fehler in der Konfiguration am Beispiel des Pakets
mysql-server
...
mysql-server hängt ab von mysql-server-5.5; aber:
Paket mysql-server-5.5 ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von mysql-server (--configure):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
...
Richte docbook-xml ein (4.5-5) ...
update-xmlcatalog: error: entity already registered
dpkg: Fehler beim Bearbeiten von docbook-xml (--configure):
Unterprozess post-installation script gab den Fehlerwert 1 zurück
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von scrollkeeper:
scrollkeeper hängt ab von docbook-xml (>= 4.2-11); aber:
Paket docbook-xml ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von scrollkeeper (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
...
Hilfreich ist es in diesem Fall, dass Sie zunächst analysieren, welche
Pakete unvollständig installiert sind. Dabei hilft Ihnen der Aufruf
dpkg -C
, wobei
dpkg
für letzteres auch die Langform
--audit
kennt.
Auflistung der unvollständig installierten Pakete mittels
dpkg
# dpkg --audit
Für die folgenden Pakete fehlt die MD5-Prüfsummen-Datei in der Datenbank,
sie müssen erneut installiert werden:
slib Portable Scheme library
vifm a ncurses based file manager with vi like keybindings
Als nächsten Schritt schieben Sie die Konfiguration des Pakets an. Für
ein einzelnes Paket gelingt Ihnen das mit dem Aufruf
dpkg --configure
Paketname
und für mehrere Pakete mit
dpkg -a
(Langform
--pending
).
Im letztgenannten Fall arbeitet
dpkg
die Liste der unkonfigurierten
Pakete nacheinander ab. Die konkrete Reihenfolge der Abarbeitung legt
dpkg
eigenständig fest.
Die Konfiguration eines Pakets geschieht in den folgenden Schritten:
Die Konfigurationsdateien („Conffiles“) des Pakets werden entpackt.
Die bereits bestehenden Konfigurationsdateien („Conffiles“) für das
Paket werden gespeichert. Falls dabei etwas schief geht, können diese
wiederhergestellt werden.
Stellt das Paket ein Maintainer-Skript namens
postinst
bereit, wird
dieses abgearbeitet.
Möchten Sie zu einem späteren Zeitpunkt die Einstellungen zu dem nun
installierten und konfigurierten Paket erneut anpassen, benutzen Sie
stattdessen das Werkzeug
dpkg-reconfigure
. Damit durchlaufen Sie die
Prozedur erneut. Ausführlicher gehen wir dazu in
Abschnitt 8.40.4, „Konfiguration mit
dpkg-reconfigure
erneut durchführen“
ein.
8.40.4. Konfiguration mit
dpkg-reconfigure
erneut durchführen
Für diesen Schritt hilft Ihnen das Werkzeug
dpkg-reconfigure
aus dem
Paket
debconf
[Debian-Paket-debconf]
weiter. Es greift dazu auf
debconf
zurück, welches wiederum eine Datenbank mit den
Konfigurationseinträgen ihrer Pakete unter
/var/cache/debconf
benutzt.
dpkg-reconfigure
kennt diese Optionen zum Aufruf:
-f
(Langform
--frontend
Üblicherweise benutzt
dpkg-reconfigure
die nicht-interaktive
Schnittstelle auf der Basis von Dialog/Ncurses. Zur weiteren Auswahl
stehen Readline (interaktiv), via Gnome oder KDE, mit Hilfe eines
Texteditors oder die Eingabezeile (nicht interaktiv) zur Auswahl. In
Abbildung 8.29, „Konfiguration des Pakets
debconf
sehen Sie den Einstellungsdialog für das Paket
debconf
, welchen Sie mittels
dpkg-reconfigure debconf
erreichen.
Abbildung 8.29. Konfiguration des Pakets
debconf
--default-priority
verwendet
low
als Schwellwert für die Fragen, die Ihnen für die
Konfiguration des Pakets gestellt werden
--force
erzwingt eine Konfiguration des Pakets, selbst wenn sich dieses in einem
inkonsistenten oder defekten Zustand befindet
--no-reload
verhindert das erneute Laden der Vorlagen. Nützlich insbesondere dann,
wenn die Vorlage defekt ist
-p
(Langform
--priority
setzt den Schwellwert für die Fragen, die Ihnen für die Konfiguration
des Pakets gestellt werden
-u
(Langform
--unseen-only
zeigt Ihnen die Fragen an, die ihnen noch nicht zur Konfiguration des
Pakets gestellt wurden
Mit dem Aufruf
dpkg-reconfigure
Paketname
konfigurieren Sie ein
bereits installiertes Paket erneut. Wir zeigen Ihnen das anhand des
Pakets
tzdata
[Debian-Paket-tzdata]
, welches die Einstellungen für
die Zeitzone steuert. Nach dem Aufruf zwei Dialogfenster — der
Kontinent und die Stadt oder Region, die zu ihrer Zeitzone passt (siehe
Abbildung 8.30, „Konfiguration des Pakets
tzdata
und regionale Auswahl“
). Danach gibt ihnen
dpkg-reconfigure
die aktuelle
Zeitzone und die Uhrzeit aus — jeweils in lokaler Zeit (hier
Mitteleuropäische Sommerzeit, kurz CEST) und in Universalzeit (Universal
Time, kurz UTC).
Abbildung 8.30. Konfiguration des Pakets
tzdata
und regionale Auswahl
Einstellung der Zeitzone.
# dpkg-reconfigure tzdata

Current default time zone: 'Europe/Berlin'
Local time is now: Sat Aug 6 00:46:08 CEST 2016.
Universal Time is now: Fri Aug 5 22:46:08 UTC 2016.

8.41. Pakete aktualisieren
Ein Großteil der verfügbaren Software veraltet häufig in recht kurzer
Zeit. Die Entwickler veröffentlichen neue Softwarepakete, die um Fehler
bereinigt oder bei denen neue Funktionen ergänzt wurden. Das Debian-Team
zur Qualitätssicherung hat daher mehrere Ebenen eingeführt, um
einerseits mit der mitunter recht dynamischen Entwicklung der Software
schrittzuhalten und andererseits sicherzustellen, dass brandneue Software
möglichst keine andere, bereits bestehende und funktionierende Software
in Mitleidenschaft zieht.
Dazu gehören die verschiedenen Veröffentlichungen wie
unstable
testing
und
stable
(siehe
Abschnitt 2.10, „Veröffentlichungen“
) sowie der damit
festgelegte Zyklus, unter welchen Kriterien von einer Veröffentlichung
zur nächsten diffundieren. Mitunter ist das ein recht langer Zeitraum.
Desweiteren zählen die verschiedenen Mechanismen dazu, wie
Softwarepakete aktualisiert werden. Die dabei verwendeten Begriffe
„Update“ und „Upgrade“ sorgen regelmäßig für Verwirrung.
Im Allgemeinen beschreibt ein
Update
eine generelle Aktualisierung und
Fehlerbereinigung eines Softwarepakets ohne Änderung der Schnittstelle
und unter Beibehaltung des bereits bestehenden Funktionsumfangs. Ein
Upgrade
bezeichnet hingegen eine Aktualisierung eines Softwarepakets
zugunsten einer Funktionserweiterung oder Erneuerung, was auch mit einer
Veränderung der Schnittstelle einhergehen kann.
APT und
aptitude
kennen die beiden Unterkommandos
update
und
upgrade
in verschiedenen Schweregraden und verknüpfen damit wechselnde
Funktionalitäten. Das Team um APT und
aptitude
hat die Bedeutung der
Unterkommandos im Laufe der Entwicklung verändert und zudem auch neue
Schlüsselworte hinzugefügt. Das zielt darauf ab, die Unterscheidung der
Aktionen und deren Benutzung im Alltag zu vereinfachen. Erschwert wird
das dadurch, dass sich bestehende Gewohnheiten i.d.R. nur Schritt für
Schritt ändern und daher ihre Zeit brauchen, um sich durchzusetzen.
Die Paketverwaltung mittels
apt-get
apt
(ab APT 1.0) und
aptitude
kennt jeweils vier Unterkommandos zur Aktualisierung:
update
, verwendbar bei
apt-get
apt
und
aptitude
install
, verwendbar bei
apt-get
apt
und
aptitude
upgrade
, bei
apt
und
aptitude
genannt
safe-upgrade
, sowie
dist-upgrade
, bei
apt
und
aptitude
genannt
full-upgrade
Jedes genannte Unterkommando beinhaltet eine spezifische Aktualisierung
und wirkt sich entweder nur auf die Paketlisten (
update
) oder auf die
Pakete selbst aus (
install
upgrade
dist-upgrade
safe-upgrade
und
full-upgrade
).
8.41.1.
update
Das Unterkommando
update
steht in identischer Form und Bedeutung bei
den drei Kommandos
apt-get
apt
und
aptitude
zur Verfügung. Es
dient dabei nur zur Aktualisierung der Paketlisten, die Sie in der
Datei
/etc/apt/sources.list
bzw. dem Verzeichnis in
/etc/apt/sources.list.d
hinterlegt haben. Ausführlich gehen wir darauf
unter „Liste der verfügbaren Pakete aktualisieren“ in
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
ein.
Mit diesem Unterkommando lösen Sie jedoch nicht die Aktualisierung der
Pakete selbst aus — hierbei helfen Ihnen
install
upgrade
dist-upgrade
safe-upgrade
und
full-upgrade
8.41.2.
install
Bisher haben wir Ihnen nur verraten, dass das Unterkommando
install
Pakete installiert. Es kann jedoch noch etwas mehr — nämlich das
Aktualisieren einer bestehenden Installation. Beim Aufruf prüfen
apt
apt-get
und
aptitude
zunächst, ob das Paket bereits installiert ist.
Falls nein, lösen Sie den üblichen Installationsvorgang aus. Falls das
Paket jedoch schon da ist, prüfen die genannten Programme, ob eine neue
Version des Paketes in den Paketlisten steht. Ist das der Fall, wird die
bestehende Version entfernt und die neue Version eingespielt. Dabei
werden sich verändernde Abhängigkeiten zu anderen Paketen mit
berücksichtigt.
Aktualisierung eines Paketes mittels
apt-get install
# apt-get install ruby2.1
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
ruby2.1
1 aktualisiert, 0 neu installiert, 0 zu entfernen und 235 nicht aktualisiert.
Es müssen 277 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Holen: 1 http://security.debian.org/ jessie/updates/main ruby2.1 amd64 2.1.5-2+deb8u6 [277 kB]
Es wurden 277 kB in 0 s geholt (354 kB/s).
Laden der Fehlerberichte … Erledigt
»Found/Fixed«-Informationen werden ausgewertet … Erledigt
Lese Changelogs... Fertig
(Lese Datenbank ... 257112 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../ruby2.1_2.1.5-2+deb8u6_amd64.deb ...
Entpacken von ruby2.1 (2.1.5-2+deb8u6) über (2.1.5-2+deb8u5) ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
ruby2.1 (2.1.5-2+deb8u6) wird eingerichtet ...
Bei diesem Schritt werden die zu installierenden Softwarepakete zunächst
im Paketcache unter
/var/cache/apt/archives/
abgelegt.
apt
prüft dabei,
ob für die heruntergeladenen Pakete auch genügend Speicherplatz zur
Verfügung steht. Ist das nicht der Fall, beschwert es sich bei Ihnen mit
nachfolgender Ausgabe:
Fehlender Speicherplatz für den Paketcache.
1734 aktualisiert, 716 neu installiert, 29 zu entfernen und 0 nicht aktualisiert.
Es müssen 3.292 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 3.195 MB Plattenplatz zusätzlich benutzt.
E: Sie haben nicht genug Platz in /var/cache/apt/archives/.
Um die Situation zu bereinigen, räumen Sie vor der Aktualisierung der
Pakete den Paketcache auf (siehe „Paketcache aufräumen“ in
Abschnitt 7.5, „Paketcache aufräumen“
).
8.41.3.
upgrade
und
safe-upgrade
Dem Unterkommando
upgrade
von
apt-get
entspricht
safe-upgrade
bei
apt
und
aptitude
. Sie aktualisieren damit alle installierten Pakete
auf die neueste, verfügbare Version. Dabei werden keine potentiell
gefährlichen Aktionen ausgeführt. Was dies genau heißt, unterscheidet
sich dezent bei den drei Werkzeugen:
apt-get upgrade
ist am konservativsten und installiert weder neue
Pakete, noch entfernt es ggf. nicht mehr benötigte Pakete. Dies kann
gelegentlich dazu führen, dass nicht alle Sicherheitsaktualisierungen
eingespielt werden, wenn diese beispielsweise zum Beheben eines
Sicherheitsproblemes zusätzliche Pakete nachsichziehen. Eine solche
Situation trat 2008 auf, als eine Sicherheitsaktualisierung für das
Paket
openssh-server
eine zusätzliche Abhängigkeit vom Paket
openssh-blacklist
hatte. Letzteres beinhaltet eine schwarze Liste von
öffentlich bekannten privaten SSH-Schlüsseln.
apt safe-upgrade
läßt hingegen das Installieren neuer Pakete zu.
Ähnlich wie
apt-get
entfernt es dabei keine Pakete.
aptitude safe-upgrade
geht im Gegensatz zu
apt-get
und
apt
noch
einen Schritt weiter und erlaubt auch, dass Pakete entfernt werden. Das
betrifft allerdings ausschließlich solche Pakete, die die Markierung
„automatisch installiert“ tragen (siehe „Paketflags“ in
Abschnitt 2.15, „Lokale Paketmarkierungen“
). Über die Option
--no-new-installs
sorgen Sie dafür, dass auch
aptitude
beim Aktualisieren nur die Pakete
erneuert, die keine weiteren, zusätzlichen Pakete nachsichziehen.
Eine Paketversion wird nicht erneuert und auf dem aktuellen Stand
belassen, wenn eine Paketaktualisierung einen weiteren
Abhängigkeitskonflikt hervorruft. Das betrifft nur den Fall, wenn ein
Paket entfernt werden soll.
aptitude
berücksichtigt dabei nur Pakete,
die nicht automatisch über Abhängigkeiten installiert wurden.
Überprüfung der Aktualisierung
Aufgrund der eingebauten Rückhaltemechanismen für potentielle
Paketentfernungen werden diese Unterkommandos gerne für
Sicherheitsaktualisierungen verwendet. Bitte überprüfen Sie nach deren
Ausführung, ob auch alle Aktualisierungen tatsächlich eingespielt
wurden. Sollte das nicht der Fall sein, schauen Sie nach, welche Pakete
noch ausstehen und welche aufgetretenen Konflikte deren Aktualisierung
verhindert haben.
Übersicht zu den aktualisierbaren Paketen erhalten
Welche Pakete aktualisiert werden können, teilen Ihnen APT und
aptitude
mit. Ausführlicher gehen wir darauf unter „Aktualisierbare
Pakete anzeigen“ in
Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“
ein.
Sichtbar wird die Änderung auch im Paketnamen. Debian handhabt es so,
dass bei Sicherheitsaktualisierungen (genannt
security updates
) dem
Paketnamen eine spezielle Zeichenkette angefügt wird. Die erste
Fehlerbereinigung für Debian 12
Bookwork
ist
+deb12u1
, die zweite
+deb12u2
(siehe dazu auch „Bennenung eines Debian-Paketes“ unter
Abschnitt 2.11, „Benennung einer Paketdatei“
).
8.41.4.
dist-upgrade
und
full-upgrade
Was bei
apt-get
das Unterkommando
dist-upgrade
ist, heißt bei
apt
und
aptitude
hingegen
full-upgrade
. Beide Unterkommandos sind
ähnlich zu
upgrade
und
safe-upgrade
Sie kommen in zwei Situationen zum Einsatz. Fall eins umfasst das
Einspielen von Sicherheitsaktualisierungen, sodass auch neue
Abhängigkeiten oder Paketkonflikte Beachtung finden, ohne dass dabei auf
die Aktualisierung verzichtet wird. Fall zwei ist der Wechsel von einer
Veröffentlichung einer Distribution zur nachfolgenden, so bspw. von
stable
nach
unstable
oder von Debian 8
Jessie
nach Debian 9
Stretch
(siehe auch „Distribution aktualisieren“ in
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
).
Die bisherigen Veröffentlichungen von APT und
aptitude
suggerierten
insbesondere bei dem Begriff
dist-upgrade
inkorrekterweise primär eine
Aktualisierung der genutzten Veröffentlichung. Deshalb wurde diese
Funktionalität zunächst bei
aptitude
und später auch bei APT von
dist-upgrade
in
full-upgrade
umbenannt. Damit soll klargestellt
werden, dass dieses Unterkommando nicht nur zum Wechsel von einer
Veröffentlichung zur nächsten (vulgo „Distributions-Upgrade“)
anwendbar ist.
In der Funktionalität bestehen kleine Unterschiede:
mit beiden Unterkommandos werden auch stets neue Pakete installiert,
um die Paketabhängigkeiten zu erfüllen. Bei
apt-get
werden
gegebenenfalls auch Pakete wieder entfernt, falls ein Paketkonflikt dies
erforderlich macht.
In der Standardeinstellung von
aptitude
entfernt der Aufruf von
aptitude full-upgrade
nicht mehr gebrauchte, automatisch installierte
Pakete. Dieses Verhalten können Sie in der Konfiguration von
aptitude
über das Element
Aptitude::Delete-Unused
abschalten.
8.41.5. Empfohlene Schrittfolge zur Aktualisierung von Paketen
Um Ihnen die Aktualisierung Ihrer Softwarezusammenstellung zu
vereinfachen, haben wir nachfolgend eine Schrittfolge zusammengestellt,
die Ihnen als Orientierung dienen kann. Sind Sie auf der
Kommandozeile
unterwegs, hilft Ihnen diese Abfolge bei den Werkzeugen
apt-get
apt
und
aptitude
weiter:
Zunächst bringen Sie mittels
apt-get update
apt update
oder
aptitude update
die Paketlisten auf den neuesten Stand.
Nun aktualisieren Sie mittels
apt-get upgrade
apt upgrade
oder
aptitude safe-upgrade
alle Pakete, die keine potentiell gefährlichen
Paketoperationen zur Folge haben könnten.
Als letzten Schritt führen Sie mit
apt-get dist-upgrade
apt
full-upgrade
oder
aptitude full-upgrade
eine Erneuerung der Pakete
durch, die bisher nicht erneuert wurden. Prüfen Sie bei der Frage "Y/n?"
genau die vorgeschlagenen Paketoperationen.
Für das interaktive Arbeiten in der Text-Modus-Oberfläche von
aptitude
ist folgende Reihenfolge sinnvoll:
Starten Sie zunächst
aptitude
mit der Option
-u
. Damit
aktualisieren Sie zu Beginn die Paketlisten.
Mit
öffnen Sie die Äste „Aktualisierbare Pakete“ und
„Sicherheitsaktualisierungen“, um zu sehen, welche Pakete zur
Aktualisierung anstehen.
Mit
merken Sie alle aktualisierbaren Pakete vor.
Eventuelle Konflikte lösen Sie, indem Sie z.B. den ersten
Lösungsvorschlag mit
akzeptieren.
Mit
sehen Sie die Vorschau der anstehenden Aktionen an.
Drücken Sie nochmals
, um die vorbereiteten Aktionen
auszuführen.
8.41.6. Aktualisierung mit Synaptic
Über die graphische Oberfläche von Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
können Sie ebenfalls einzelne oder mehrere Pakete aktualisieren. Welche
Aktualisierungen dabei berücksichtigt werden, legen Sie über die
Einstellungen des Programms fest. Zu Auswahl stehen hier die
Sicherheitsaktualisierungen und neue Paketversionen. Synaptic
unterscheidet dabei nicht wie APT,
apt
und
aptitude
zwischen den
verschiedenen Aktualisierungsstufen.
Folgende Schritte führen zu neuen Paketen über die graphische
Oberfläche:
Wählen Sie als erstes den Knopf
Status
Installiert (aktualisierbar)
aus.
Danach selektieren Sie das gewünschte Paket aus der Liste.
Über den Menüeintrag
Paket
Zum Aktualisieren vormerken
fügen Sie dieses zu ihrer Vorauswahl hinzu.
Über den Menüpunkt
Bearbeiten
Vorgemerkte Änderungen anwenden
lösen Sie die Aktualisierung aus.
Ein Distributionswechsel ist nur über vorherige Änderung der
Paketquellen möglich. Dabei ergänzen Sie zunächst eine weitere
Paketquelle und beziehen danach die Aktualisierung (
update
).
8.42. Pakete downgraden
Allgemein gesprochen, steht der Begriff
Downgrade
für einen Niedergang, eine
Abwertung oder einen Rückschritt. Bezogen auf die Verwaltung von
Softwarepaketen umfasst es das Einspielen oder Zurückgehen zu einer vorherigen
Paketversion. Es stellt damit das Gegenstück zu einer Aktualisierung mittels
apt-get upgrade
dar (siehe dazu
Abschnitt 8.41, „Pakete aktualisieren“
).
Ein Downgrade ist in Betracht zu ziehen, wenn die derzeit installierte Version
eines Softwarepakets nicht das leistet, was sie verspricht, bspw. dabei Fehler
auftreten oder Inkompatibilitäten mit anderen Softwarepaketen deren Benutzung
unmöglich machen. Häufig fallen in letztere Kategorie geänderte Schnittstellen,
die noch nicht auf allen nachfolgenden Ebenen konsequent umgesetzt wurden.
Ein Downgrade wird vom Release-Team von Debian GNU/Linux offiziell nicht
unterstützt. Alle Mechanismen zur Paketverwaltung und Aktualisierung sind auf
das Einspielen einer neueren Version ausgerichtet. Daher verfügt auch keines
der hier im Buch vorgestellten Werkzeuge zur Paketverwaltung bislang über
einen spezifischen Schalter, um ein Downgrade explizit anzustoßen. Es bleibt
daher nur ein Vorgehen über andere Wege. Glücklicherweise setzen diese jedoch
auf den bereits zuvor beschriebenen Mechanismen auf.
8.42.1. Hintergrund und Fragen zum Downgrade
Das Einspielen einer neueren Version ist vom prinzipiellen Ablauf her nicht
anders als die Aktualisierung — es laufen die gleichen Mechanismen ab und es
kommen die gleichen Werkzeuge zum Einsatz. Der Unterschied ist jedoch die
Komplexität, die hier deutlich höher ist.
Vergleichbar ist der Vorgang wie das Bewegen entgegen der Fahrtrichtung in
einer Einbahnstraße — es geht so lange gut, wie Ihnen keiner entgegenkommt.
Schwierigkeiten können Ihnen nämlich die Maintainerskripte (siehe
„Binärpakete“ in
Abschnitt 4.2.3, „Binärpakete“
) bereiten, die das Downgrade
im Normalfall nicht unterstützen. Eventuell ist der Mechanismus, der sie
aufruft, auch nicht darauf vorbereitet. Kritisch sind insbesondere die Fälle,
wo eine konzeptuelle Änderung im Paket in der Rückrichtung nicht umgebaut
werden kann (siehe dazu bspw. den Debian-Bug 764503
[apt-get-update-bug-764503]
).
Ein Downgrade ist mit einer Aktualisierung gleichzusetzen. Hierbei benennen
Sie jedoch explizit eine ältere Paketversion, die Sie entweder über einen
Parameter — „target release“ oder Versionsnummer — beim Aufruf von
dpkg
bzw.
apt-get
angeben oder in der Textoberfläche von Aptitude auswählen.
Berechnet die Paketverwaltung nun die Abhängigkeiten zu den übrigen Paketen,
kann am Ende dieses Vorgangs auch eine großflächige Änderung am Restbestand
der Pakete stehen. Dieser Fall ist nicht ungewöhnlich, denn er kann ebenso
bei einer Aktualisierung vorkommen. Die Wahrscheinlichkeit, daß die
Änderungen erheblich sind, ist sehr groß.
Wie oben schon benannt, sind diese Änderungen nicht immer rückwärtskompatibel
und lösen Verwicklungen aus (Aktualisierungen sind eigentlich bereits
hinreichend komplex). Wir empfehlen Ihnen daher, ein Downgrade nur bei dem
tatsächlichen Bedarf dafür durchzuführen. Prüfen Sie bitte vorher, ob das
Mischen von Veröffentlichungen mittels
apt-pinning
(siehe dazu
Kapitel 20,
Veröffentlichungen mischen
) oder das Übersetzen des Pakets aus den
Quellen und das nachfolgende Einspielen des eigenen Binärpakets risikoärmer
ist.
8.42.2. Ablauf und Durchführung
Bestehende Paketversionen klären
Als Schritt eins bringen Sie in Erfahrung, welche Paketversionen überhaupt
installiert und darüberhinaus aus dem Repository ihrer genutzten
Veröffentlichung verfügbar sind. Dabei helfen ihnen bspw. die Werkzeuge
apt-cache
aptitude
rmadison
und
apt-show-versions
weiter (siehe
„Paketstatus erfragen“ in
Abschnitt 8.4.4, „
apt-cache showpkg
Paketname
„Verfügbare Paketversionen ermitteln“ in
Abschnitt 8.14.3, „Verfügbare Paketversionen ermitteln“
und „Aus welchem Repo kommen die
Pakete“ in
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
). Im Aufruf benötigen alle
Programme zusätzlich den Namen des gewünschten Pakets und listen in der
Ausgabe die letzte Version auf, ggf. noch spezifiziert für die jeweilige
Veröffentlichung. Die nachfolgende Ausgabe nutzt
apt-show-versions
und zeigt
das anhand des Paketes
openvpn
aus der Veröffentlichung von Debian 8
Jessie
Auflistung der verfügbaren Versionen zum Paket
openvpn
$ apt-show-versions openvpn
openvpn:amd64/jessie 2.3.4-5+deb8u1 uptodate
Die oben benannten Werkzeuge können Ihnen jedoch nicht darstellen, welche
vorherigen Versionen eines Pakets existieren und noch verfügbar sind. Aus
obiger Ausgabe von
apt-show-versions
wird nur ersichtlich, daß derzeit die
Version
2.3.4-5+deb8u1
installiert ist und es sich dabei um das derzeit
aktuellste Paket handelt. Das Suffix
deb8u1
deutet auf eine
(Sicherheits-)Aktualisierung der Vorgängerversion
2.3.4-5
hin.
Um diese Version aufzuspüren, kann ein Blick in den Paketcache bereits zum
Erfolg führen:
Recherche im Paketcache.
$ ls /var/cache/apt/archives/openvpn*
/var/cache/apt/archives/openvpn_2.3.4-5_amd64.deb
/var/cache/apt/archives/openvpn_2.3.4-5+deb8u1_amd64.deb
Sie sehen, dass das Paket mit der Version
2.3.4-5
noch lokal herumliegt.
Dieses Paket benutzen Sie nachfolgend zum Downgrade.
Sollte obiger Schritt jedoch nicht (mehr) von Erfolg gekrönt sein — weil Sie
bspw. den Paketcache schon aufgeräumt haben — benötigen Sie einen Plan B.
Eine Recherche im Paketarchiv unter
Debian Snapshots
[Debian-Snapshots]
(siehe
Abbildung 8.31, „Das Debian-Paketarchiv“
) ist ein solcher Plan.
Abbildung 8.31. Das Debian-Paketarchiv
Dieses Archiv beinhaltet den Zugriff auf alle Varianten eines Pakets, welche
jemals Bestandteil einer Veröffentlichung von Debian waren. Über diese Webseite
stöbern Sie veröffentlichungsbezogen oder anhand des Paketnamens für das Quell-
bzw. Binärpaket.
Abbildung 8.32, „Suchergebnis nach dem Paket
openvpn
im Paketarchiv“
zeigt das Suchergebnis für das Paket
openvpn
. Mit einem Klick auf die gesuchte Version aus der Liste beziehen das
benötigte Paket aus dem Archiv und speichern es lokal im Paketcache unter
/var/cache/apt/archives
ab.
Abbildung 8.32. Suchergebnis nach dem Paket
openvpn
im Paketarchiv
Paket austauschen
Im sich nun anschließenden Schritt zwei ersetzen Sie das aktuelle Paket durch
dessen Vorgänger. Dieser Schritt ist unkompliziert, sofern keine größeren
Paketabhängigkeiten bestehen und repariert werden müssen. Im vorliegenden Fall
genügt dazu folgendes:
Entfernen des derzeit installierten
openvpn
-Pakets mittels
apt-get
remove openvpn
Einspielen des älteren
openvpn
-Pakets mittels
dpkg -ihv
/var/cache/apt/archives/openvpn_2.3.4-5_amd64.deb
Bei dieser Vorgehensweise bleiben alle Konfigurationsdateien unverändert
erhalten. Es kann jedoch passieren, dass nicht alle Abhängigkeiten erhalten
bleiben und andere Pakete ebenfalls ausgetauscht werden müssen. Das erreichen
Sie mit Hilfe des nachfolgenden Aufrufs
apt-get install -f
. Der Schalter
-f
kürzt
--fix-broken
ab.
Paket über die Angabe der Versionsnummer austauschen
APT akzeptiert als Parameter auch die explizite Angabe der Versionsnummer des
Pakets. Falls das Paket noch nicht installiert ist, hilft dieser Aufruf:
apt-get install =
Ist das Paket jedoch schon installiert, gelingt dieser Aufruf:
apt-get install --reinstall =
In beiden Fällen ersetzen Sie

durch den tatsächlichen Namen
des Paketes und

durch die gewünschte Versionsnummer.
Für die Version 2.3.4-5 des Paketes
openvpn
sieht der Aufruf wie folgt aus:
Paket mit konkreter Versionsangabe (neu) installieren.
# apt-get install --reinstall openvpn=2.3.4-5
Paket über die Angabe der Veröffentlichung austauschen
APT ist flexibel und erlaubt ebenfalls die Referenzierung eines Paketes über
die explizite Angabe der Veröffentlichung. Dazu kommt der Schalter
-t
(Langform:
--target-release
) zum Einsatz:
apt-get -t= install
Die Angabe

benennt die Veröffentlichung, also bspw.
stable
oder
unstable
, aber auch den Namen wie
Bullseye
oder
Bookworm
. Für den Wert

geben Sie den tatsächlichen Namen des Paketes an. Für das
Paket
openvpn
aus der vorherigen, stabilen Veröffentlichung (genannt
oldstable
) sieht der Aufruf dann wie folgt aus:
Paket mit Angabe der Veröffentlichung installieren.
# apt-get -t=oldstable install openvpn
8.43. Pakete deinstallieren
Weitaus anspruchsvoller als die Installation eines Pakets ist hingegen
deren rückstandsfreie und saubere Entfernung. Dazu zählt nicht nur das
Löschen der Dateien des eigentlichen Pakets, sondern auch das Aufräumen
und Entsorgen der dazugehörigen Konfigurationsdateien aus Ihrem
Linuxsystem.
Wir unterscheiden daher an dieser Stelle fünf Fälle. Fall 1 ist das
einfache Deinstallieren eines Pakets, Fall 2 die Recherche, Fall 3 das
Entfernen von noch verbliebenen Konfigurationsdateien bereits
deinstallierter Pakete sowie als Fall 4 das vollständige Entsorgen von
Pakets samt dazugehöriger Konfigurationsdateien in einem einzigen
Schritt. In Fall 5 zeigen wir Ihnen, wie sie Pakete für eine bestimmte
Architektur entsorgen.
8.43.1. Fall 1: Paket einfach löschen
Dazu dienen die drei Kommandos
apt remove
Paketname
apt-get
remove
Paketname
und
aptitude remove
Paketname
. Alle Aufrufe
entfernen das Paket und ggf. auch alle weiteren Pakete, die davon
abhängen. Dabei werden jedoch nur die Daten und die ausführbaren Dateien
gelöscht – die dazugehörigen Konfigurationsdateien bleiben unversehrt.
Das Vorgehen entspricht dem Aufruf
dpkg -r
Paketname
in der
richtigen Reihenfolge der Paketabhängigkeiten. Der nachfolgende Aufruf
zeigt das Vorgehen anhand des Pakets
cssed
für
apt-get
Löschen eines Pakets
cssed
mittels
apt-get
# apt-get remove cssed
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
gcr
Verwenden Sie »apt-get autoremove«, um es zu entfernen.
Die folgenden Pakete werden ENTFERNT:
cssed
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 16 nicht aktualisiert.
Nach dieser Operation werden 2.052 kB Plattenplatz freigegeben.
Möchten Sie fortfahren [J/n]? J
(Lese Datenbank ... 304082 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von cssed ...
Trigger für man-db werden verarbeitet ...
Trigger für menu werden verarbeitet ...
Trigger für gnome-menus werden verarbeitet ...
Trigger für desktop-file-utils werden verarbeitet ...
Ein Knackpunkt stellt die Berücksichtigung der jeweiligen
Paketabhängigkeiten dar. Dabei treten mehrere Möglichkeiten auf –
bestimmte, zur Löschung vorgesehene Pakete werden von anderer Software
noch benötigt, Ersetzungen sind erforderlich oder es entstehen Waisen
Orphans
). Bei Möglichkeit eins dürfen die Pakete, die von anderer
Software noch benötigt werden, nicht gelöscht werden – die andere
installierte Software soll ja trotzdem weiterhin funktionieren. Bei
systemrelevanten Werkzeugen in essentiellen Paketen erhalten Sie daher
eine zusätzliche, deutliche Warnung (siehe nachfolgendes Beispiel sowie
„Paketprioritäten und essentielle Pakete“ in
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
).
Ausgabe einer deutlichen Warnung vor dem Löschen des essentiellen Pakets
base-files
# apt-get remove base-files
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete werden ENTFERNT:
base-files bash bash-completion bsd-mailx build-essential clisp common-lisp-controller debhelper
dpkg-dev foomatic-db-engine foomatic-filters grsync grub grub-common grub-pc gt5 libnss-mdns rsync
virtualbox-ose-guest-source virtualbox-ose-source xindy
WARNUNG: Die folgenden essentiellen Pakete werden entfernt.
Dies sollte NICHT geschehen, außer Sie wissen genau, was Sie tun!
base-files bash
0 aktualisiert, 0 neu installiert, 21 zu entfernen und 138 nicht aktualisiert.
Nach dieser Operation werden 32,4 MB Plattenplatz freigegeben.
Sie sind im Begriff, etwas potentiell Schädliches zu tun.
Zum Fortfahren geben Sie bitte »Ja, tue was ich sage!« ein.
Abbruch.
Möglichkeit zwei ist die Ersetzung durch ein alternatives Paket. Das
gelingt dann automatisch, wenn in der Paketbeschreibung als
Paketabhängigkeit entweder mehrere Einzelpakete oder ein einzelnes,
virtuelles Paket benannt wurden. Aus dieser Liste wird dann eines
ausgewählt, um die Paketabhängigkeit zu erfüllen. Bestes Beispiel ist
das virtuelle Paket
pdf-viewer
, welches beispielsweise auf
epdfview
evince
okular
xpdf
und
zathura
verweist.
Ersetzung durch ein alternatives Paket.
ToDo: Beispiel mit Ersetzung durch alternatives Paket
Bei der Möglichkeit drei entstehen Waisen – Pakete, die keine
Abhängigkeiten mehr zu anderen Paketen mehr aufweisen. Unter „Umgang mit
Waisen“ in
Abschnitt 8.44, „Umgang mit Waisen“
beleuchten wir dieses Thema näher.
8.43.2. Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
Um das zu tun, bedarf es zunächst der Lokalisierung der Pakete, welche
zwar gelöscht wurden, aber noch als konfiguriert gelten. Dabei geht es
nur um die Konfigurationsdateien (
conf files
), die sich unter dem
Verzeichnis
/etc
befinden. Dateien in ihrem Homeverzeichnis bleiben
von der Löschaktion unberührt.
Die passenden Werkzeuge sind dafür die Kombination aus
dpkg
mit
grep
sowie
aptitude
. APT hat u.E. bislang keinen entsprechenden Schalter
dafür.
dpkg
rufen Sie dazu zunächst mit der Option
-l
auf (siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
) und schicken
dessen Ausgabe an das Kommando
grep
weiter. Mit dem regulären Ausdruck
"^rc "
(mit Leerzeichen am Ende) filtern Sie alle Zeilen aus der
Ausgabe heraus, die mit den beiden Buchstaben
rc
beginnen und von
einem Leerzeichen gefolgt werden. Damit erhalten Sie eine Liste aller
verbliebenen Konfigurationsdateien, die
dpkg
einem Paket zuordnen
kann.
Suche nach gelöschten, aber noch konfigurierten Paketen mittels
dpkg
$ dpkg -l | grep "^rc "
rc akonadi-backend-mysql 1.7.2-3 all MySQL storage backend for Akonadi
rc akonadi-server 1.7.2-3 i386 Akonadi PIM storage service
rc atop 1.26-2 i386 Monitor for system resources and process activity
rc audtty 0.1.12-1 i386 ncurses based frontend to audacious
...
Auch
aptitude
kann in diese Richtung recherchieren. Es kennt zu diesem
Zweck zum Schalter
die Option
~c
bzw. die Langform
?config-files
. Das Ergebnis umfasst jedoch
alle
konfigurierten
Pakete – unabhängig davon, ob diese als gelöscht markiert sind oder
nicht.
Suche nach konfigurierten Paketen mittels
aptitude
$ aptitude search '~c'
c akonadi-backend-mysql - MySQL-Speicher-Backend für Akonadi
c akonadi-server - PIM-Speicherdienst Akonadi
c atop - Überwachung für Systemressourcen und Proze
c audtty - auf ncurses basierende Oberfläche für auda
...
8.43.3. Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Haben Sie die aus Ihrer Sicht unnützen Konfigurationsdateien eines
bereits deinstallierten Pakets ausfindig gemacht und möchten diese
endgültig ins digitale Nirwana befördern, sind Ihnen APT und
aptitude
gern dabei behilflich.
apt
apt-get
und
aptitude
unterstützen Sie
mit der Kombination aus dem jeweiligen Namen des Werkzeugs und dem
Unterkommando
purge
gefolgt vom Paketnamen, bspw.
apt purge mc
für
die restlose Entfernung des Pakets
mc
Löschen der Konfigurationsdateien mittels
apt
# apt purge mc
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
libconfuse-common libconfuse0
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
mc*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 108 nicht aktualisiert.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
(Lese Datenbank ... 253598 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von mc (3:4.8.13-3) ...
Löschen der Konfigurationsdateien von mc (3:4.8.13-3) ...
In den Versionen vor 0.7.2 kennt
apt-get
das Unterkommando
purge
noch nicht. Ab der Version 0.7.7 (veröffentlicht 2007) funktionieren
auch die Patches dazu zuverlässig. Falls Sie in die Situation kommen,
mit einer Version vor 0.7.7 arbeiten zu müssen, benutzen Sie stattdessen
im Aufruf die Kombination aus dem Unterkommando
remove
gefolgt von der
Option
--purge
und den Namen der zu entfernenden Pakete. Nachfolgend
sehen Sie das für
apt-get
und das zu entfernende Paket
cssed
Löschen der Konfigurationsdateien mittels
apt-get
# apt-get remove --purge cssed
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
cssed*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 16 nicht aktualisiert.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]?
(Lese Datenbank ... 304031 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von cssed ...
Löschen der Konfigurationsdateien von cssed ...
Trigger für menu werden verarbeitet ...
Die obigen Beispiele besprechen das Entfernen der Konfigurationsdateien
eines
einzigen
Pakets. Um herauszufinden, welche "Paketreste" sich
insgesamt auf ihrem System tummeln, hilft die nachfolgende Kombination
aus
dpkg
egrep
und
awk
. Aus der mit
dpkg
erstellten Liste der
installierten Pakete filtert
egrep
zunächst mit Hilfe eines Regulären
Ausdrucks alle Zeilen heraus, die mit den beiden Buchstaben
rc
beginnen (entfernte, aber noch konfigurierte Pakete). Daraus wiederum
schneidet
awk
aus jeder Zeile die zweite Spalte aus, die den
Paketnamen enthält. Bei Systemen, die bereits länger in Gebrauch sind
und auf denen viel experimentiert wurde, kann die Liste der hierüber
gefundenen "Paketreste" durchaus länger werden und Überraschungen zu Tage
fördern.
Aufspüren noch konfigurierter Pakete.
# dpkg -l | egrep "^rc " | awk '{ print $2; }'
mediathekview
php5-mysqlnd
qgis-plugin-grass
samba
skype
subversion
svn-workbench
thunderbird
Um alle diese "Paketreste" in einem Rutsch aufzuräumen, kombinieren Sie
diesen Aufruf bspw. mit
apt purge
wie folgt:
Rückfrage vor dem Löschen aufgespürter, noch konfigurierter Pakete.
# apt purge $(dpkg -l | egrep "^rc " | awk '{ print $2; }')
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
alsa-tools-gui* alsamixergui* bmon* bomber* cifs-utils* d2x-rebirth*
doxygen-gui* evince* firebird2.5-common* firebird2.5-server-common* geany*
geany-common* gedit* gkrellm* grass-core* gv* htdig* ibus* icedove*
iceweasel-l10n-de* im-config* jed* jed-common* kdiff3* keyutils* ktorrent*
libacpi0* libastro1* libatk1.0-0:i386* libavahi-compat-libdnssd1* libc-ares2*
libcairo2:i386* libclucene-contribs1* libcmis-0.4-4* libcoin80* libdee-1.0-4*
libegl1-nvidia* libeot0* libexttextcat-2.0-0* libfbclient2* libfbembed2.5*
libfftw3-single3* libg15-1* libg15daemon-client1* libg15render1*
libgdk-pixbuf2.0-0:i386* libgit2-21* libgit2-glib-1.0-0* libgl1-nvidia-glx*
libgles1-nvidia* libgles2-nvidia* libglew1.10* libgltf-0.0-0* libgmpxx4ldbl*
libgraphicsmagick3* libgraphite2-3:i386* libgssglue1* libgtk2.0-0:i386*
libguess1* libharfbuzz0b:i386* libhdb9-heimdal* libhyphen0* libibus-1.0-5*
libjasper1:i386* libkdegames6abi1* libkeybinder-3.0-0* libkworkspace4abi2*
liblangtag1* liblvm2app2.2* libmarblewidget19* libmythes-1.2-0*
libnvidia-eglcore* libnvidia-ml1* libodfgen-0.1-1* libopencore-amrnb0*
libopencore-amrwb0* libopenscenegraph100* libpango-1.0-0:i386*
libpangocairo-1.0-0:i386* libpangoft2-1.0-0:i386* libphysfs1*
libpixman-1-0:i386* libpyside1.2* libqextserialport1* libqgis-analysis2.4.0*
libqgis-core2.4.0* libqgis-gui2.4.0* libqgis-networkanalysis2.4.0*
libqgisgrass2.4.0* libqgispython2.4.0* libqscintilla2-11* libqtlocation1*
libquazip1* libqwt6* libsdl-mixer1.2* libsdl2-2.0-0* libshiboken1.2* libshp2*
libsidplay1* libsmi2ldbl* libspatialindex3* libspeechd2* libva-glx1*
libwebrtc-audio-processing-0* libwireshark-data* libwiretap4*
linux-image-3.16.0-4-amd64* mediathekview* nvidia-settings* php5-mysqlnd*
qgis-plugin-grass* samba* skype:i386* subversion* svn-workbench* thunderbird*
wireshark*
0 aktualisiert, 0 neu installiert, 117 zu entfernen und 108 nicht aktualisiert.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
...
Nach ihrer Bestätigung löscht
apt
alle "Paketreste" wie oben genannt — eines nach dem anderen. Möchten Sie hingegen für jedes Paket dessen
Entfernung nochmals einzeln bestätigen (oder ggf. auch ablehnen), kommt
eine
for
-Schleife in ihrer Shell zum tragen. Das nachfolgende Beispiel
zeigt den Aufruf in einer Bash.
Paketweises Löschen aufgespürter, noch konfigurierter Pakete.
# for paket in $(dpkg -l | egrep "^rc " | awk '{ print $2; }'); do apt purge $paket; done
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
alsa-tools-gui*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 108 nicht aktualisiert.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
...
8.43.4. Fall 4: Paket samt Konfigurationsdateien deinstallieren
APT und
aptitude
ermöglichen auch das Deinstallieren eines oder
mehrerer Pakete samt zugehöriger Konfigurationsdateien in einem einzigen
Schritt. Die Aufrufe entsprechen dem Kommando
dpkg -P
Paketname
für
eine Menge von Paketen in der richtigen Reihenfolge der
Paketabhängigkeiten.
Für diese Aktion gilt das gleiche wie in Fall3. Sie kombinieren entweder
apt-get
mit dem Schalter
remove
, der Option
--purge
und dem
Paketnamen oder nur dem Schalter
purge
und dem Paketnamen.
aptitude
und
apt
kennen hingegen auschließlich den Schalter
purge
für diese
Aktion. Das nachfolgende Beispiel zeigt den entsprechenden Aufruf von
aptitude
und das Paket
cssed
Löschen des Pakets
cssed
samt Konfigurationsdateien in einem Schritt.
# aptitude purge cssed
Die folgenden Pakete werden ENTFERNT:
cssed{p}
0 Pakete aktualisiert, 0 zusätzlich installiert, 1 werden entfernt und 16 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 2.052 kB frei werden.
Möchten Sie fortsetzen? [Y/n/?]
(Lese Datenbank ... 304082 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von cssed ...
Löschen der Konfigurationsdateien von cssed ...
Trigger für man-db werden verarbeitet ...
Trigger für menu werden verarbeitet ...
Trigger für gnome-menus werden verarbeitet ...
Trigger für desktop-file-utils werden verarbeitet ...

8.43.5. Fall 5: Paket für eine ausgewählte Architektur entfernen
Ein Sonderfall ist das Entfernen aller Pakete für eine bestimmte
Architektur. Das tritt auf, wenn Sie bspw. mit dem
Multiarch
-Feature
experimentieren (siehe
Abschnitt 1.2.3, „Multiarch: Mehrere Architekturen gleichzeitig auf einem System“
). An den
Paketnamen fügen Sie einen Doppelpunkt und den Namen der Architektur an.
Um beispielsweise alle Pakete für die Architektur
i386
vollständig von
ihrem System zu entfernen, nutzen Sie diesen Aufruf:
Vollständiges Entfernen aller installierten Pakete für die Architektur
i386
# apt-get remove --purge ".*:i386"
8.44. Umgang mit Waisen
Während der Verwendung von APT und
aptitude
werden die
Abhängigkeiten der Pakete automatisch aufgelöst und daher auch
zusätzlich benötigte Pakete eingespielt. Deinstallieren Sie zu einem
späteren Zeitpunkt Pakete, werden bei Aptitude alle nicht mehr
benötigten Pakete ebenfalls wieder entfernt. APT (
apt
apt-get
weißt im Gegensatz dazu in der Standard-Einstellung nur auf nicht mehr
benötigte Pakete hin, entfernt sie aber nicht automatisch.
So verbleiben mitunter „Reste“ auf dem System zurück, die ohne Bezug zu
anderen Paketen sind. Hängt ein Paket von keinem weiteren mehr ab und
bildet kein eigenständiges Programm, wird es daher zu einem Waisen –
engl.
orphan
. Häufig betrifft dies Pakete aus den Kategorien für
Bibliotheken (
libs
), veraltete Bibliotheken (
oldlibs
) und
Entwicklungsbibliotheken (
libdevel
).
Der Umgang mit Waisen ist im Allgemeinen recht unproblematisch. Waisen
können Sie bedenkenlos entfernen, um unnötigerweise belegten Speicherplatz
auf Ihrem System wieder freizugeben. Wir empfehlen Ihnen, diesen
Aufräumvorgang bei der Systempflege als weiteren Schritt mit
durchzuführen. Das hält Ihr System sauber und befreit es von unnützen
Lasten.
Neben den Mechanismen von APT und
aptitude
existieren eine ganze Reihe
von weiteren Programmen, um Waisen aufzuspüren und auch zu entfernen.
Für die Kommandozeile sind das
debfoster
(siehe
Abschnitt 8.44.2, „
debfoster
) und
deborphan
(siehe
Abschnitt 8.44.3, „deborphan“
). Auf Ncurses basieren Orphaner und
Editkeep (siehe
Abschnitt 8.44.4, „Orphaner und Editkeep“
) und auf GTK+ das Pendant
Gtkorphan (siehe
[Gtkorphan]
). Darüber hinaus bietet
wajig
Abschnitt 8.44.6, „
wajig
) entsprechende Möglichkeiten zur Suche, die wir Ihnen
ebenfalls nicht vorenthalten möchten.
8.44.1. APT und
aptitude
Zwischen der Standardkonfiguration von APT und
aptitude
gibt es
subtile Unterschiede, die sich über die Zeit herausgebildet haben und
die es im Alltag zu beachten gilt. Kurz gefasst, beläßt APT verwaiste
Pakete, während
aptitude
diese automatisch entfernt.
APT-Versionen aus der Prä-Lenny-Ära – d.h. vor Debian 5.0
Lenny
(2009) – nehmen auf die Erzeugung von Waisen kaum Rücksicht. Spätere
Veröffentlichungen von APT achten deutlich stärker darauf und weisen den
Benutzer darauf hin. Ohne explizite Aufforderung entfernt APT keine
Waisen.
Bei
aptitude
ist das ganze Prozedere ein klein wenig anders.
aptitude
räumt in der Standard-Einstellung eigenständig auf. Das
betrifft jedoch nur Pakete, die als "automatisch installiert" markiert
sind und von denen wiederum kein manuell installiertes Paket abhängt
(keine
reverse dependencies
bestehen).
Über die
aptitude
-Option
aptitude::Delete-Unused
schalten Sie dieses
Verhalten zu oder ab – entweder über die Benutzeroberfläche unter
Optionen
Einstellungen
, oder direkt in der Konfigurationsdatei
von
aptitude
Abbildung 8.33. Nicht verwendete Pakete automatisch entfernen in
aptitude
Um den Vorgang der Entfernung ungenutzter Pakete mit APT explizit
anzustoßen, verfügen
apt
und
apt-get`
über das Unterkommando
autoremove
. Seitdem nicht nur Aptitude sondern auch APT ein solche
Funktionalität besitzt, hat die Bedeutung von
deborphan
und
debfoster
deutlich abgenommen.
Pakete automatisch entfernen mit dem Unterkommando
autoremove
# apt-get autoremove
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 13 nicht aktualisiert.
aptitude
verfügt zudem über die Option
--purge-unused
, die noch
einen Schritt weiter geht. Alle Pakete, die
aptitude
mangels
Notwendigkeit entfernt, werden inklusive der dazugehörigen
Konfigurationsdateien entsorgt. Diese Option können Sie über den Eintrag
aptitude::Purge-Unused
aktivieren.
Verwendung der Option
--purge-unused
Diese Option ist sehr mächtig und kombiniert eine ganze Reihe von
Einzelschritten. Wir raten Ihnen daher, die Anwendung vorab genau zu
prüfen.
8.44.2.
debfoster
Das Paket
debfoster
[Debian-Paket-debfoster]
ist ein Wrapper für die
beiden Werkzeuge
dpkg
und APT.
debfoster
pflegt eine Liste mit den
Paketen, die Sie auf ihrem System behalten möchten und auf die Sie Wert
legen.
Mit Hilfe dieser Liste findet es Pakete, die automatisch installiert
wurden, nur weil andere Pakete davon abhängen. Falls diese
Abhängigkeiten nicht mehr bestehen – d.h. ein entsprechendes Paket wurde
entfernt – bekommt
debfoster
das mit und fragt Sie, ob Sie das über
die Abhängigkeit benannte Paket ebenfalls mit entfernen möchten.
Zu Beginn erstellt
debfoster
auf der Basis Ihrer Rückmeldung eine
Liste mit den derzeit installierten Paketen. Diese Liste speichert
debfoster
in der Datei
/var/lib/debfoster/keepers
. Darin vermerkt
es, ob Sie das betreffende Paket behalten oder entfernen möchten. Zum
Schluss löscht es die Pakete, die in der Liste als „entfernen“
gekennzeichnet sind. Ein Aufruf zur Aktualisierung der Liste ist nach
jeder Änderung des Paketbestandes sinnvoll, d.h. einer Installation,
Löschung und Aktualisierung eines oder mehrerer Pakete.
Mit dem Kommando
debfoster -qv
erstellen Sie eine initiale Liste. Bei
einem Folgeaufruf zeigt es Ihnen die Pakete, die die unerfüllte
Abhängigkeiten aufweisen plus möglicherweise nicht mehr benötigte
Pakete.
debfoster
warnt bei unerfüllten Abhängigkeiten (
warning
),
wenn diese Pakete in der Liste der „zu behaltenden Pakete“ stehen.
Auflistung der unerfüllten Abhängigkeiten mit
debfoster
# debfoster -qv

warning: package gnome-session-fallback: unsatisfied dependency on notification-daemon 0.7
warning: package gnome-session-fallback: forcing depdency on notification-daemon
warning: package timidity: unsatisfied dependency on libjack-jackd2-0 1.9.5~dfsg-14
warning: package libreoffice-filter-mobiledev: unsatisfied dependency on default-jre
warning: package libreoffice-filter-mobiledev: unsatisfied dependency on gcj-jre
warning: package libreoffice-filter-mobiledev: unsatisfied dependency on java-gcj-compat
...
Paket wird behalten: gdm3
Paket wird behalten: krita
Paket wird behalten: xfce4-goodies
Paket wird behalten: libreoffice
Paket wird behalten: bluetooth
Paket wird behalten: asciidoc
...
debfoster
verfügt über eine Reihe von weiteren Optionen. Nachfolgende
Liste ist eine Auswahl bzgl. der Thematik „Waisen“, ausführlicher ist
die Manpage zum Programm.
-q
(Langform
--quiet
keine Darstellung der Fragen und als Standardantwort
yes
. Sinnvoll zur
initialen Erzeugung der Paketliste.
-f
(Langform
--force
keine Darstellung der Fragen und als Standardantwort
no
. Installiert
fehlende Pakete nach, wobei die Paketliste maßgeblich ist.
-v
(Langform
--verbose
Statusmitteilung darüber, welche Pakete verschwunden sind, Waisen oder Abhängigkeiten wurden.
-d
(Langform
--show-depends
gebe alle Pakete an, von denen das Paket abhängt. Die Option ist das
Gegenstück zur Option
-e
und vergleichbar mit dem Unterkommando
depends
des Programms
apt-cache
(siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
).
Ausgabe aller Abhängigkeiten mittels
debfoster
# debfoster -d vim
Paket vim hängt ab von:
gcc-4.7-base libacl1 libattr1 libc-bin libc6 libc6-i686 libgcc1 libgpm2 libselinux1 libtinfo5
multiarch-support vim-common vim-runtime
-e
(Langform
--show-dependents
gebe alle Pakete an, die von dem Paket abhängen. Diese Option ist das
Gegenstück zur Option
-d
und vergleichbar mit dem Unterkommando
rdepends
des Programms
apt-cache
(siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
).
Ausgabe aller umgekehrten Abhängigkeiten mit
debfoster
# debfoster -e apt
Die folgenden 9 Pakete auf der Aufbewahrungsliste verlassen sich auf apt:
xara-gtk synaptic packagesearch gtkorphan debfoster asciidoc installation-report totem gdm3
Pakete bewahrt durch Standardregeln sich verlassen auf apt.
-s
(Langform
--show-orphans
auflisten aller Paketwaisen
-i
(Langform
--ignore-default-rules
durch alle Pakete gehen, die explizit installiert wurden
-a
(Langform
--show-keepers
Ausgabe der
debfoster
-Datenbank
Ausgabe der Pakete, die sich
debfoster
gemerkt hat.
# debfoster -a
Die folgenden Pakete stehen auf der Aufbewahrungsliste:
abiword acpi acpi-support anacron apache2-utils apcalc apmd app-install-data apt-doc
apt-dpkg-ref apt-rdepends apvlv aqbanking-tools arora ascii asciidoc ash aspell-de at
...
8.44.3. deborphan
Das Programm
deborphan
aus dem gleichnamigen Debian-Paket
[Debian-Paket-deborphan]
findet ungenutzte Pakete, die keine weiteren
Abhängigkeiten zu anderen Paketen (siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
) aufweisen. Es gibt Ihnen eine Liste
aller gefundenen Pakete aus, die Sie entfernen
sollten
, aber nicht
müssen
. Grundlage für die Liste sind die Paketabhängigkeiten, die
deborphan
über
dpkg
und über die Angaben in der Paketbeschreibung
zur Verfügung stehen.
Rufen Sie
deborphan
ohne Optionen auf, beschränkt es sich auf die
beiden Paketkategorien
libs
und
oldlibs
, um unbenutzte oder
veraltete Bibliotheken zu ermitteln. Das nachfolgende Beispiel zeigt
diesen Aufruf beispielhaft.
Ausgabe von
deborphan
bei der Suche nach verwaisten Paketen.
$ deborphan
mktemp
liblwres40
libdvd0
libxapian15
libdb4.6
libdb4.5
libevent1
librrd4
libbind9-40
diff
dhcp3-common
deborphan
verfügt über eine ganze Reihe nützlicher Optionen. Daraus
zeigen wir die Optionen, die uns für die Thematik „Waisen“ relevant
erscheinen. Zu weiteren Optionen gibt Ihnen die Manpage des Programms
Auskunft.
-a
(Langform
--all-packages
durchsucht die gesamte Paketdatenbank (siehe
Abschnitt 3.15, „Lokale Paketliste und Paketcache“
--libdevel
durchsucht nicht nur die Paketkategorien
libs
und
oldlibs
, sondern zusätzlich auch die Liste der Entwicklerbibliotheken (
libdevel
-z
(Langform
--show-size
Ausgabe mit Größenangabe des Pakets. Daraus ersehen Sie, wieviel Platz
das Paket auf der Festplatte belegt.
-P
(Langform
--show-priority
Ausgabe zeigt die Priorität des Pakets (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
) an; Wert aus
required
important
standard
optional
oder
extra
-s
(Langform
--show-section
zeigt die Paketkategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
) an, in dem sich das
Paket befindet. Ist die Option standardmäßig aktiviert, können Sie das
Verhalten mit der Option
--no-show-section
wieder abschalten.
Auflistung der verwaisten Bibliotheken inkl. Paketkategorie und Größe mittels
deborphan
$ deborphan -P -z -s
20 main/oldlibs mktemp extra
132 main/libs liblwres40 standard
172 main/libs libdvd0 optional
...
Kompakte Schreibweise der Optionen
Für den obigen Aufruf existiert eine Kurzschreibweise, in der Sie
die Optionen in kompakter Form schreiben können. Der Aufruf
deborphan
-Pzs
bewirkt das gleiche wie
deborphan -P -z -s
deborphan
verfügt zudem über einen
Ratemodus
, um Pakete zu finden,
die für Sie nicht mehr nützlich sein könnten. Es analysiert dazu den
Paketnamen und die Paketbeschreibung. Die Basis bilden die Optionen
--guess-
und
--no-guess-
, die Sie mit entsprechenden Suffixen
zur genaueren Eingrenzung kombinieren können. Dazu zählen bspw.
common
data
dev
doc
und
mono
, aber auch
perl
pike
python
und
ruby
für die entsprechenden Programmiersprachen. Eine
ausführliche Auflistung ist in der Manpage dokumentiert.
deborphan
errät nicht mehr nützliche Pakete.
# deborphan --guess-perl | sort
gqview
libchromaprint0
libconsole
libcrypt-rc4-perl
libgraphics-magick-perl
libimage-exiftool-perl
libindicate-gtk3
libpdf-api2-perl
librpcsecgss3
librrd4
libtext-pdf-perl
...
Mit der Option
--find-config
suchen Sie nach nicht installierten
Paketen, von denen noch
Konfigurationsdateien
auf dem System vorliegen.
Das impliziert die Option
-a
und durchsucht die gesamte
Paketdatenbank. Das nachfolgende Beispiel sortiert zusätzlich die
Paketliste alphabetisch aufsteigend und gibt die Ausgabe seitenweise
über den Pager
more
auf dem Terminal aus.
Aufspüren nicht mehr benötigter Konfigurationsdateien über die Option
--find-config
$ deborphan --find-config | sort | more
baobab
bluez-utils
dhcdbd
dpatch
dvipdfmx
gnome-screenshot
--More--
Für das Paket
gnome-screenshot
aus obiger Ergebnisliste ergibt eine
Suche über
dpkg
die nachfolgende Ausgabe. Die Buchstaben
rc
zu
Beginn der Zeile mit den Paketdetails zeigen, dass dieses Paket bereits
auf dem System installiert war und zwischenzeitlich wieder entfernt
wurde (Buchstabe
für
removed
in der ersten Spalte). Die
Konfigurationsdateien des Programms sind noch verfügbar (Buchstabe
für
configured
in der zweiten Spalte).
Aufspüren verbliebener Konfigurationsdateien mittels
dpkg
$ dpkg -l gnome-screenshot
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Beschreibung
+++-===================-===================-==================================
rc gnome-screenshot 2.30.0-2 screenshot application for GNOME
Darstellung des Paketstatus
Die ersten beiden Zeichen in der Zeile mit den Paketdetails haben
eine besondere Bedeutung und geben den Status des Pakets an. Unter
„Paketstatus erfragen“ in
Abschnitt 8.4, „Paketstatus erfragen“
stellen wir Ihnen
alle weiteren Varianten und deren Bedeutung vor.
Um die verbliebenen Konfigurationsdateien eines Pakets auch noch
zu entfernen, benutzen Sie üblicherweise das Kommando
apt-get --purge
remove Paketname
. Für das oben genannte Paket
gnome-screenshot
heißt
der Aufruf
apt-get --purge remove gnome-screenshot
. Weitere Details
dazu finden Sie unter Pakete deinstallieren in
Abschnitt 8.43, „Pakete deinstallieren“
Eine zusätzliche Möglichkeit bietet die Kombination aus
apt-get
und
deborphan
. Die Angabe
$(deborphan)
bewirkt die Ausführung des
Kommandos
deborphan
in einer Subshell und liefert als Rückgabewert
alle Pakete, die Waisen sind. Indem Sie das als Parameter an APT
übermitteln, sparen Sie einerseits Tipparbeit und können darüber hinaus
auf die Rückfragen von APT reagieren.
Kombinieren von APT und
deborphan
# apt-get --purge remove $(deborphan)
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
gqview* libchromaprint0* libconsole* libindicate-gtk3* librpcsecgss3*
librrd4* linux-image-2.6-686* mktemp* pdfjam* qemulator*
ttf-linux-libertine* virtualbox-ose* virtualbox-ose-dkms*
virtualbox-ose-guest-source* virtualbox-ose-guest-utils*
virtualbox-ose-source*
0 aktualisiert, 0 neu installiert, 16 zu entfernen und 8 nicht aktualisiert.
Nach dieser Operation werden 2.517 kB Plattenplatz freigegeben.
Möchten Sie fortfahren [J/n]?
...
Entsorgen von Waisen
Wenden Sie das Nachfolgende nur an, wenn Sie wissen, was Sie tun, und sich
dessen sicher sind. Das Kommando entsorgt kompromisslos alle Waisen und deren
Konfigurationsdateien. Die Option
-y
beantwortet alle Nachfragen
von
apt-get
automatisch mit „ja“:
Komplexer Aufruf von
deborphan
# deborphan | xargs apt-get --purge remove -y
8.44.4. Orphaner und Editkeep
orphaner
und
editkeep
sind beides Benutzeroberflächen für
deborphan
(siehe
Abschnitt 8.44.3, „deborphan“
) und Bestandteil des gleichnamigen
Pakets
[Debian-Paket-deborphan]
. Ersteres findet und entfernt
verwaiste Pakete, das Zweite hilft Ihnen bei der Pflege und
Zusammenstellung der Liste der Pakete, die
nie
von
deborphan
entfernt werden.
orphaner
und
editkeep
sind beides Shellskripte und rufen nach der
Auswahl direkt
apt-get
bzw.
deborphan
mit den passenden Optionen
auf. Diese beiden Programme verfügen über ein recht ähnliches
Ncurses-Interface. Dargestellt werden zwei Spalten – links der Paketname
und rechts der der Distributionsbereich (siehe
Abschnitt 2.9, „Distributionsbereiche“
) und die Kategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
), in die das Paket
eingeordnet ist. Über die Buchstabentasten bewegen Sie den Auswahlbalken
zum entsprechenden Menüpunkt. Mit der Leertaste ergänzen bzw. entfernen
Sie das betreffende Paket von der Auswahl. Mit der Eingabetaste legt das
Programm los.
Abbildung 8.34.
orphaner
bei der Arbeit
Abbildung 8.35.
editkeep
im Einsatz
8.44.5.
gtkorphan
gtkorphan
[Gtkorphan]
ist ein graphisches Programm auf der Basis von
GTK, welches
deborphan
(siehe
Abschnitt 8.44.3, „deborphan“
) direkt ansteuert. Die
Ausgaben stammen daher direkt von
deborphan
und somit aus der
Paketbeschreibung.
In der Mitte sehen Sie die Paketliste, wobei Sie über den Reiter
zwischen der Darstellung für die verwaisten und nicht verwaisten Pakete
umschalten können. Für jeden Eintrag ist der Paketname (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
), die Paketgröße, der
Distributionsbereich (siehe
Abschnitt 2.9, „Distributionsbereiche“
), die
Paketkategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
sowie die Paketpriorität (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
) aufgeführt.
Als zusätzliche Optionen ergänzen Sie die Liste einerseits um bereits
gelöschte Pakete, von denen aber noch Konfigurationsdateien vorhanden
sind, und andererseits um Pakete aus allen anderen Paketkategorien
(siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
). Um den bereits
weiter oben angesprochenen Ratemodus zu verwenden, wählen Sie im
Auswahlfeld den gewünschten Eintrag aus der Liste der Möglichkeiten aus.
Mit einem Klick auf
OK
werden alle Waisen von ihrem System
entfernt, die Sie zuvor aus der Paketliste ausgewählt haben.
Abbildung 8.36.
gtkorphan
bei der Arbeit
8.44.6.
wajig
Ähnlich wie die nicht mehr verfügbare
aptsh
verfügt
wajig
[Debian-Paket-wajig]
über
Kommandos zur Suche nach Waisen –
orphans
und
list-orphans
. Beide
liefern Ihnen das gleiche Ergebnis. Möglich ist ein Aufruf mittels
wajig orphans
oder die Eingabe des Kommandos in der
wajig
-Shell.
Damit listet es die Bibliotheken auf, die nicht (mehr) von einem
installierten Paket benötigt werden. Andere Pakete werden bei der
Recherche nicht berücksichtigt.
Die Analyse basiert auf dem Werkzeug
deborphan
(siehe
Abschnitt 8.44.3, „deborphan“
).
Daher muss das entsprechende Paket installiert sein, wenn Sie dieses
Kommando verwenden möchten.
Abbildung 8.37, „
wajig
mit der Ausgabe des Kommandos
orphans
zeigt das Ergebnis der
Suche nach Waisen in der
wajig
-Shell.
Abbildung 8.37.
wajig
mit der Ausgabe des Kommandos
orphans
8.44.7.
rpmorphan
Für rpm-Pakete gibt es ein Gegenstück zu
deborphan
namens
rpmorphan
[rpmorphan-rpm]
. Dieses ist nicht Bestandteil des Debianpakets
rpm
[Debian-Paket-rpm]
und steht bislang nicht als eigenes Debianpaket zur
Verfügung.
8.45. Paketoperationen erzwingen
Die vorgestellten Werkzeuge zur Paketverwaltung sind als sehr pingeling
bekannt, um den Zustand Ihres Systems möglichst stabil und benutzbar zu
halten. Dazu zählen beispielsweise eine saubere Installation, keine
Konflikte zwischen den installierten Paketen, das Einspielen von
Aktualisierungen und Patches sowie keine offenen Paketabhängigkeiten.
Trotz dieser Qualitätskontrolle können Dinge schiefgehen. Dazu zählen
beispielsweise unschöne Paketkonflikte — zwei Pakete bedingen einander
und lassen sich nicht nacheinander installieren. In dieser Situation
hilft Ihnen Spezialwissen weiter, zu dem die Möglichkeiten von
dpkg
apt
und
aptitude
gehören, um Sicherheitschecks und Warnungen zu
ignorieren und Aktionen trotzdessen durchzuführen. Bitte behalten Sie
dabei stets im Hinterkopf, dass diese Schritte und Optionen Ihr System
auch unbenutzbar machen können.
8.45.1. Aktionen mit
dpkg
erzwingen
Eine Übersicht zu den verschiedenen Schaltern von
dpkg
erhalten Sie
mit Hilfe von
--force-help
Die verschiedenen Schalter von
dpkg
zum Erzwingen einzelner Aktionen.
$ dpkg --force-help
dpkg-Optionen zum Erzwingen - Verhalten steuern, wenn Probleme gefunden werden:
Warnen aber fortsetzen: --force-,,...
Mit Fehler anhalten: --refuse-,,... | --no-force-,...
Dinge erzwingen:
[!] all Alle Optionen zum Erzwingen setzen
[*] downgrade Paket durch eine niedrigere Version ersetzen
configure-any Jedes Paket konfigurieren, das diesem helfen könnte
...
[!] remove-reinstreq Pakete entfernen, die Installation erfordern
[!] remove-essential Ein essenzielles Paket entfernen

WARNUNG - Anwenden der mit [!] markierten Optionen kann Ihre Installation
schwer beschädigen. Mit [*] markierte Optionen sind per Vorgabe aktiviert.
dpkg
kennt zwei Wege — über den Schalter
--force-Aktion
sowie
--no-force-Aktion
und
--refuse-Aktion
. Bei ersterem warnt
dpkg
nur, setzt
aber die ausgewählte Aktion fort. Bei den beiden letztgenannten hält es die
Ausführung der Aktion an, sobald ein Fehler auftritt. Das sind die Schalter für
die Aktionen im Einzelnen:
all
Alle Optionen zum Erzwingen setzen
architecture
Selbst Pakete mit falscher oder fehlender Architektur bearbeiten
bad-verify
Paket installieren, selbst wenn Authentizitätsüberprüfung misslingt
bad-path
Wichtige Programme nicht in PATH, Probleme wahrscheinlich
bad-version
Selbst Pakete mit fehlerhafter Version bearbeiten
breaks
Installieren, selbst wenn es andere Pakete beschädigt
confask
Anbieten, Konfigurationsdateien durch nicht neue Versionen zu ersetzen
confdef
Vorgabe für neue Konfigurationsdateien benutzen, wenn es eine gibt, nicht nachfragen. Wenn Vorgaben nicht gefunden werden können, nachfragen, außer
confold
oder
confnew
ist auch angegeben.
configure-any
Jedes Paket konfigurieren, das diesem helfen könnte
conflicts
Installation kollidierender Pakete erlauben
confmiss
Fehlende Konfigurationsdateien immer installieren
confnew
Immer neue Konfigurationsdateien verwenden, nicht nachfragen
confold
Immer alte Konfigurationsdateien verwenden, nicht nachfragen
hold
Nebensächliche Pakete bearbeiten, auch wenn auf
halten
gesetzt
depends
Alle Abhängigkeitsprobleme in Warnungen umwandeln
depends-version
Versionsabhängigkeitsprobleme in Warnungen umwandeln
not-root
Dinge versuchen zu (de)installieren, selbst wenn nicht root
overwrite
Datei eines anderen Pakets überschreiben
overwrite-dir
Verzeichnis eines Paketes mit Datei eines anderen überschreiben
overwrite-diverted
Umgeleitete Datei mit einer nicht umgeleiteten Version überschreiben
remove-reinstreq
Pakete entfernen, die Installation erfordern
remove-essential
Ein essenzielles Paket entfernen
script-chrootless
Nicht in die Umgebung von Betreuerskripten wechseln
unsafe-io
Beim Entpacken keine sicheren Ein/Ausgabe-Operationen durchführen
Die
Abbildung 8.38, „Die Installation eines Paketes erzwingen“
zeigt den Aufruf von
dpkg
mit den beiden Schaltern
--force-depends
und
-i
zur Installation eines Pakets ohne Prüfung der
Abhängigkeiten zu anderen Paketen.
Abbildung 8.38. Die Installation eines Paketes erzwingen
8.45.2. Aktionen mit
apt
erzwingen
apt
Option
-f
8.45.3. Aktionen an der Paketverwaltung vorbei
in
/var/lib/dpkg/status
herumpfuschen
siehe
8.46. Paketstatusdatenbank reparieren
dpkg
führt permanent Buch über alle Pakete auf einem Debian-System. Es
merkt sich in seiner Paketstatusdatenbank den Zustand jedes einzelnen
deb
-Pakets, welches es jemals in den Fingern hatte (siehe dazu auch
Abschnitt 8.4, „Paketstatus erfragen“
und
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
). Die
Paketstatusdatenbank befindet sich in der Datei
/var/lib/dpkg/status
Daraus ersehen Sie ganz eindeutig, ob ein Paket schon einmal installiert
war, ob alle notwendigen Schritte vollständig und fehlerfrei abgelaufen
sind, ob das Paket auf
hold
gesetzt wurde, ob es wieder entfernt wurde
und ob bspw. noch Reste aus dem Paket auf ihrem System verblieben sind.
Zu letzterem zählen z.B. die Konfigurationsdateien eines Pakets.
8.46.1. Bit-Dreher reparieren
Die Einträge in der Paketstatusdatenbank sind 7-Bit-Werte, d.h. das
achte Bit ist nicht gesetzt. Mittlerweile ist
dpkg
recht robust gegen
unbekannte Felder, auch wenn diese 8-Bit-Werte enthalten. Trotzdem
funktioniert vieles nicht mehr, wenn die Paketstatusdatenbank außerhalb
des Formates gemäß der Spezifikation nach RFC 822 vorliegt
[RFC822]
Die Ursache für dieses gedrehte Bit kann sowohl ein Hardware-Crash sein,
während
dpkg
werkelte, als auch ein Bit-Dreher auf dem Speichermedium
selbst. Das nachfolgende Beispiel demonstriert das anhand des Eintrags
zum Paket
geekcode
. In Zeile 10 liegt ein solcher Bitfehler vor – das
achte Bit für den Doppelpunkt
ist hier gesetzt.
Bit-Dreher in der Datei
/var/lib/dpkg/status
für das Paket
geekcode
(Ausschnitt).
Package: geekcode
Status: install ok installed
Priority: optional
Section: games
Installed-Size: 166
Maintainer: Eric Dorland
Architecture: amd64
Multi-Arch: foreign
Version: 1.7.3-6
Depends° libc6 (>= 2.7)
Description: Program for generating geekcode
This is a program for generating the geekcode.
See http://www.geekcode.com for more info and for discovering
if you need the geekcode.
Homepage: http://sourceforge.net/projects/geekcode/
Verarbeitet
dpkg
diese Daten, kann es mit diesem Wert nichts anfangen
und bringt seine Verärgerung darüber mit einer deutlichen Fehlermeldung
zum Ausdruck. Dieser Fall ist noch vergleichsweise leicht zu reparieren,
indem Sie das ISO-Latin-1-Zeichen
mit Hilfe ihres Texteditors wieder
durch einen Doppelpunkt ersetzen. Daraufhin ist
dpkg
wieder glücklich.
dpkg
bricht nach einem Bit-Dreher in der Statusdatenbank ab.
# dpkg --configure --pending
dpkg: error: parsing file '/var/lib/dpkg/status' near line 9 package 'geekcode':
field name `Dependsº' must be followed by colon
8.46.2. Die Paketstatusdatenbank aus dem lokalen Backup wiederherstellen
Anspruchsvoller wird es jedoch bspw. dann, wenn mehr als nur ein
einzelnes Bit oder Byte kaputt ging, plötzlich ganze Blöcke fehlen, oder
sich diese nach einer Reparatur des Dateisystems in ganz anderen
Formaten in dieser Datei wiederfinden. Dann hilft meist nur noch ein
Wiederherstellen der Paketstatusdatenbank aus ihrem Backup.
Zum Glück gibt es auf einem Debian-System mehrere Backups der
Paketstatusdatenbank. Ging die Datei erst gerade eben kaputt, so ist die
Chance sehr hoch, dass die vorhergehende Sicherheitskopie namens
/var/lib/dpkg/status-old
noch intakt ist. Dieses Backup
entspricht dem Zustand der Paketstatusdatenbank
vor der letzten
Änderung
und hinkt somit nur um eine einzige Aktion hinterher. Kopieren
Sie diese zurück nach
/var/lib/dpkg/status
, so fehlt
dpkg
nur das Wissen über die letzte Installation oder Deinstallation eines
Pakets. Führen Sie diese letzte Aktion erneut durch, ist alles gerettet.
Ist hingegen auch
/var/lib/dpkg/status-old
defekt, so gibt es
unter
/var/backups/dpkg.status.*
tlw. komprimierte
Schnappschüsse der Paketstatusdatenbank. Diese beziehen sich auf die
letzten sieben Tage, an denen ihr Rechnersystem eingeschaltet war.
Ersetzen Sie die aktuelle Paketstatusdatenbank durch eine ältere
Version, so weiß
dpkg
nichts mehr von sämtlichen Aktionen, die Sie
seitdem durchgeführt haben. Insbesondere denkt es, ein Paket sei noch
installiert, wenn es seit dem Backup der Datei deinstalliert wurde. In
diesem Fall führen Sie die Entfernung des entsprechenden Pakets nochmals
durch. Schlägt diese Aktion fehl, weil die dazu erwarteten Dateien
bereits nicht mehr da sind, so kann es helfen, das entsprechende Paket
mittels
dpkg -i
vorher nochmals zu installieren, um wieder einen
konsistenten Zustand zu erreichen.
8.46.3. Die Paketstatusdatenbanken von APT und
aptitude
Auch APT und
aptitude
führen eigene Archive über ihre Aktionen, zu
denen ebenfalls unter
/var/backups/
tägliche Schnappschüsse
existieren. Allerdings ist ein Verlust dieser Statusdatenbanken weniger
kritisch, da die meisten Informationen darin durch ein
apt-get update
bzw.
aptitude update
schnell wiederherstellbar sind. Grundlage dafür
sind jedoch die Daten aus der Paketstatusdatenbank von
dpkg
Das einzige, was auf diese Art und Weise nicht wiederhergestellt werden
kann, sind APT- und
aptitude
-spezifische Informationen. Dazu zählen
bspw. die Markierungen
automatisch installiert
sowie die Vormerkungen
und User-Tags von
aptitude
(siehe
Kapitel 11,
Mit
aptitude
Vormerkungen machen
).
8.47. Distribution aktualisieren (update und upgrade)
8.47.1. Vorworte
Das Aktualisieren einer bestehenden Linuxinstallation ist immer eine
etwas heikle Geschichte und eine Frage des Selbstvertrauens sowie des
Bauchgefühls. Es geht dabei schließlich nicht nur um vergleichbaren
Kleinkram wie ein einzelnes Paket, sondern um das ganze System, in
dessen Pflege Sie bereits viel Zeit und Mühe gesteckt haben. Dieser
Aufwand soll schließlich nicht umsonst gewesen sein.
Eine Aktualisierung bedeutet stets größere Umbauarbeiten, bei dem sich
vergleichsweise viel ändert und durchaus auch etliches schief gehen
kann, womit Sie nicht unbedingt rechnen. An der Stelle sei jedoch zu
Ihrer Beruhigung angemerkt, dass z.B. der Wechsel von Debian 6
Squeeze
auf Debian 7
Wheezy
recht unspektakulär verlief und vielfach
problemlos über die Bühne ging. Beim Wechsel von Debian 8
Jessie
nach Debian 9
Stretch
muss darauf geachtet werden, dass lokal
installierte PHP-Anwendungen auch mit PHP 7.0 kompatibel sind. Beim
Wechsel von Debian 10
Buster
auf Debian 11
Bullseye
ist zu
beachten, dass sich der Verzeichnis- bzw. Codename der
Sicherheitsaktualisierungen von
buster/updates
zu
bullseye-security
geändert hat. Und beim Wechsel von Debian 11
Bullseye
auf Debian 12
Bookworm
ist zu beachten, dass unfreie
Firmware nicht mehr mit anderer unfreier Software im Bereich
non-free
ist sondern in den Bereich
non-free-firmware
abgetrennt
wurde.
Trotzdem halten wir es für ganz praktisch, wenn wir Ihnen eine
Schritt-für-Schritt-Abfolge zur Verfügung stellen, der Sie folgen
können. Das verringert die Wahrscheinlichkeit, dass bei der
Aktualisierung etwas vergessen wird. Empfehlenswert ist auch, den
Vorgang zu zweit mit einem Sparringspartner vorzunehmen. Das mindert die
Anspannung und hilft Situationen zu umschiffen, in denen etwas
Unbekanntes auftritt, wo Sie vielleicht allein nicht ohne Hilfe
weiterkommen.
Desweiteren sind mehrere Hilfsmittel von Nutzen. Dazu gehören neben
einem vollständigen und verfügbaren Backup Ihrer Daten eine CD/DVD oder ein
USB-Stick mit einem Live-System für alle Fälle, um Ihr System bei
Missgeschicken davon booten zu können und darüber wieder Zugriff auf Ihr
System zu erhalten. Ein weiteres Gerät mit Internetzugang hilft dabei,
Lösungen zu aufkommenden Fragen oder Unklarheiten zu recherchieren.
Stift und Papier klingen trivial, ermöglichen aber flinke Notizen, falls
das doch erforderlich sein sollte.
8.47.2. Vom
upgrade
zum
dist-upgrade
Die vollständige Aktualisierung des Paketbestands erfolgt mit dem
APT-Unterkommando
dist-upgrade
. Es ist auf den ersten Blick sehr
ähnlich zu
upgrade
, es bestehen jedoch wesentliche Unterschiede
zwischen beiden. Ersteres bezieht nur Änderungen innerhalb der
bestehenden Veröffentlichung, das Zweite bezieht alles von der neuen
Veröffentlichung.
8.47.3. Unsere empfohlene Reihenfolge
Wir empfehlen Ihnen, bei der Aktualisierung Ihrer Distribution die
nachfolgenden Schritte nicht außer Acht zu lassen.
Lesen Sie zuerst die Dokumentation und die Hinweise zum
Distributionswechsel. Darin ist beispielsweise beschrieben, welche
Veränderungen Sie bezüglich interner Strukturen und Dienste erwartet.
Diese Informationen finden Sie unter dem Stichwort
Veröffentlichungshinweise – auf englisch
Release Notes
– einerseits
auf der Webseite des Debian-Projekts
[Debian-Release-Notes]
sowie als
Bestandteil der offiziellen, verfügbaren Debian-Images.
Halten Sie Ihre Zugangsdaten für administrative Zwecke bereit.
Sofern noch nicht vorhanden, erzeugen Sie ein Backup Ihrer wichtigen
Daten auf ein möglichst externes Medium. Dazu zählen neben den
Nutzerdaten insbesondere die Konfigurationseinstellungen Ihrer
Programme. Häufig werden dabei Inhalte von Datenbanksystemen und
Webpräsenzen übersehen, die sich unter dem Verzeichnis
/var
tummeln.
Überprüfen Sie danach Ihr Backup auf Vollständigkeit. Nichts ist
enttäuschender als eine Datensicherung, welche sich im Nachhinein als
unvollständig herausstellt.
Setzen Sie die Veröffentlichung
testing
oder
unstable
ein, fahnden
Sie mit Hilfe des Pakets
apt-listbugs
[Debian-Paket-apt-listbugs]
nach möglicherweise kritischen Fehlern in der Debian-Fehlerdatenbank
(siehe
Abschnitt 37.3.2, „Bugreports mit
apt-listbugs
lesen“
).
Aktualisieren Sie die bestehende Paketliste mittels
apt-get update
(siehe
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
). Damit bringen
Sie die Paketliste auf den aktuellen Stand und verringern die
Unterschiede zum verfügbaren Paketbestand.
Spüren Sie Waisen und nicht mehr benötigte Pakete mittels
apt-get
autoremove
auf (siehe
Abschnitt 8.44, „Umgang mit Waisen“
). Dieser Schritt verringert
den zu berücksichtigenden Paketbestand und macht sich in mehrfacher
Hinsicht bemerkbar. Einerseits werden Altlasten beseitigt, sie sparen
Zeit und Festplattenplatz, es müssen somit weniger Datenpakete über die
Leitung geschubst werden und anderseits danach eine geringere Anzahl
Pakete aktualisiert werden.
Spielen Sie die letzten Paketversionen Ihrer aktuell genutzten
Veröffentlichung mittels
apt-get upgrade
ein. Damit verringern Sie die
Unterschiede zum Versionswechsel weiter.
Passen Sie Datei
/etc/apt/sources.list
entsprechend auf die
neue Distribution an. Wechseln Sie bspw. von Debian 7
Wheezy
auf
Debian 8
Jessie
, ändern Sie alle Vorkommen von
wheezy
auf
jessie
Bringen Sie die Paketliste mittels
apt-get update
auf den neuesten
Stand (siehe „Paketliste aktualisieren“ unter
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
).
Aktualisieren Sie die Distribution mittels
apt-get dist-upgrade
Jetzt wird der Distributionswechsel vollzogen und alle bestehenden
Pakete werden erneuert, sofern neue Varianten vorliegen.
Abbildung 8.39. Ausgabe während des Upgrades von
Jessie
auf
Stretch
8.47.4. Anmerkungen
Ein Distributionswechsel ist auch mit
aptitude
möglich. Dazu verwenden
Sie in Schritt 10 obiger Liste auf der Kommandozeile statt
apt-get
dist-upgrade
den Aufruf
aptitude full-upgrade
. Aus historischen
Gründen besteht noch ein Synonym zu
dist-upgrade
, welches Sie derzeit
ebenfalls noch benutzen können.
Über die Textoberfläche gelingt Ihnen gleiches nur über einen kleinen
Umweg. Dazu markieren Sie zunächst mittels
Aktionen
Aktualisierbare markieren
alle Pakete, für die eine
neuere Variante verfügbar ist (Kurzform: Taste
). In Folge
lösen Sie mittels
die Erneuerung der zuvor markierten Pakete
aus.
[24]
Bis einschließlich Debian 8
Jessie
können Sie
jedoch das Paket
aptitude
mit Aptitude selbst entfernen. Unter
exotischen Umständen hat Aptitude das sogar bereits selbst als
Lösungsvorschlag für einen Abhängkeitskonflikt angeboten.
[25]
module-assistant
war lange Zeit
die
Methode, um Kernel-Module für den aktuell laufenden Kernel zu
kompilieren und installieren, die lediglich als Quellcode verfügbar
waren. Mittlerweile wurde es größtenteils durch
dkms
(für
Dynamic
Kernel Modules Support
, dt.: Dynamische Kernel-Modul-Unterstützung)
ersetzt, mit welchem es nicht notwendig ist, lokal
deb
-Pakete
generieren und installieren zu lassen.
[26]
„pig“ ist Englisch für
Schwein bzw. Sau. Es geht sozusagen um Debianpakete, die den
Plattenplatz versauen, auch bekannt als „Plattenplatzschweine“.
[27]
Ist die alternative
zcat
-Implementation aus dem
Paket
zutils
installiert, ist die Option
-f
nicht mehr
erforderlich.
[28]
Engl.
Dependencies
; ohne weitere
Angaben wird in den Abhängigkeiten des Feldes
Depends
gesucht.
Kapitel 9. Dokumentation
Ein einzelnes Werk, welches die Debian-Paketverwaltung in allen seinen
Facetten behandelt, gibt es unseres Wissens bisher nicht. Das Know-How
dazu ist über diverse Quellen in unterschiedlichen Qualitätsstufen und
Übersetzungen verstreut. Wir listen nachfolgend die verlässlichen
Ressourcen auf, die wir kennen.
9.1. Man- und Infopages
Um flink ein Kommando oder eine Option nachzuschlagen, geht daher der
erste Griff zu den
man
- und
info
-pages der Werkzeuge
dpkg
, APT
und
aptitude
. Diese Hilfeseiten bieten zwar meist nur eine
Kurzfassung der komplexen Werkzeuge an, helfen aber im Bedarfsfall
trotzdem weiter.
Der nicht zu unterschätzende Vorteil besteht darin, dass Ihnen diese
Informationen stets auf jedem Debian-System zur Verfügung stehen. Die
Hilfedokumente sind Bestandteil der Pakete und werden mitgeliefert.
Ausgegliederte Pakete mit Dokumentation installieren Sie bei Bedarf
einfach nach.
Benötigen Sie Hilfe für ein Paket, welches noch nicht installiert ist,
helfen Ihnen die beiden Werkzeuge
debman
und
debmany
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
weiter. Diese
besprechen wir ausführlich in Abschnitt
Abschnitt 8.29.2, „Manpages aus noch nicht installierten Paketen anzeigen“
9.2. Dokumentation in
/usr/share/doc/
Nummer zwei ist der Griff zur Dokumentation, welche im Verzeichnis
/usr/share/doc/
auf ihrem System liegt. Für APT und
aptitude
ist
diese Dokumentation jeweils als separates Paket ausgelagert. Diese
Pakete heißen
apt-doc
sowie
aptitude-doc
. Genauer gehen wir dazu in
den beiden Abschnitten zu
apt-doc
in
Abschnitt 9.4, „
apt-doc
— das Benutzerhandbuch zu APT“
und zum
aptitude
-Handbuch in
Abschnitt 9.8, „Handbuch zu
aptitude
ein.
Darüberhinaus werfen wir nachfolgend einen Blick auf weitere, passende
Online- und Offline-Dokumentation zu diesem Thema. Diese Liste erhebt
keinen Anspruch auf Vollständigkeit und soll Ihnen nur als Anregung
dienen und zeigen, was uns als lesenswert erscheint und sich zur
Ergänzung mit dem vorliegenden Werk eignet. Über den Tellerrand
hinausblicken schadet nie.
9.3. Die apt-dpkg-Referenzliste
Matthew Danish hat zu den beiden Programmen
dpkg
und APT eine
Referenzliste zusammengestellt. Diese ist als offizielles Debianpaket
mit dem Namen
apt-dpkg-ref
[Debian-Paket-apt-dpkg-ref]
bis
einschließlich Debian 11
Bullseye
verfügbar. Es existiert nur in
englischer Sprache, Übersetzungen in andere Sprachen liegen bislang
nicht vor.
Installieren Sie dieses Paket über die Paketverwaltung, finden Sie diese
Dokumentation danach im Verzeichnis
/usr/share/doc/apt-dpkg-ref/
wieder. Neben den Lisp- und LaTeX-Quellen ist die Dokumentation in Form
einer HTML-, PDF- und PostScript-Datei verfügbar.
Alle Formate beinhalten eine Übersicht zu den grundlegenden
dpkg
- und
APT-Kommandos samt griffiger Beschreibung der einzelnen Optionen.
Zudem werden kurz und knapp die Beziehungen zwischen
dpkg
und APT
hergestellt. Eine kurze Einführung zum Bauen von
deb
-Paketen aus den
Paketquellen rundet die Beschreibung ab.
Abbildung 9.1, „Die apt-dpkg-Referenzliste im PDF-Betrachter
xpdf
zeigt einen Ausschnitt der Referenzliste im PDF-Betrachter
xpdf
Abbildung 9.1. Die apt-dpkg-Referenzliste im PDF-Betrachter
xpdf
9.4.
apt-doc
— das Benutzerhandbuch zu APT
Das Paket
apt-doc
[Debian-Paket-apt-doc]
beinhaltet das
Benutzerhandbuch zu APT. Es wurde bereits 1998 von Jason Gunthorpe
begonnen und zwischenzeitlich mehrfach aktualisiert und in diverse
Sprachen übersetzt. Es steht Ihnen inzwischen als HTML- und Textversion
in englisch, deutsch, spanisch, französisch, italienisch,
niederländisch, japanisch, polnisch und portugiesisch zur Verfügung.
Alle Übersetzungen finden Sie im gleichen Paket.
Nach der Installation finden Sie die deutsche Dokumentation als
HTML-Dokument im Verzeichnis
/usr/share/doc/apt-doc/guide.de.html/
wieder. Zur Nutzung von APT in einem „Turnschuhnetzwerk“ (offline)
hilft Ihnen die Beschreibung unter
/usr/share/doc/apt-doc/offline.de.html/index.html
weiter.
Es umfasst eine Einführung in die Paketverwaltung und beschreibt recht
knapp die Werkzeuge
dselect
apt-deselect
und APT sowie deren
verschiedene Aufrufparameter. Nützlich sind in der Dokumentation die
Ausgaben der Programme im Terminal, die Ihnen auch dabei helfen, die
diversen Statusanzeigen und Fehlermeldungen der Programme zu überblicken
und zu verstehen.
Abbildung 9.2, „Ausschnitt aus der APT-Dokumentation mit
apt-doc
zeigt Ihnen dazu einen Ausschnitt der
Dokumentation im Webbrowser Iceweasel an.
Abbildung 9.2. Ausschnitt aus der APT-Dokumentation mit
apt-doc
Pflege ohne Internetzugang
Hier im Buch beschäftigen wir uns ausführlicher mit diesem Thema in
Kapitel 41,
Paketverwaltung ohne Internet
9.5. Der Debian-Spickzettel
Frank pflegt einen Debian-Spickzettel genannt
Cheatsheet für das
Debian-Paketmanagement
, in dem die wichtigsten Kommandos zur
Paketverwaltung zusammengestellt sind. Dieser steht als PDF auf
GitHub bereit
[Debian-Spickzettel-Github]
. Der Spickzettel liegt
derzeit in deutscher, englischer und französischer Sprache vor.
Übersetzungen in weitere Sprachen wie bspw. Russisch oder Spanisch
stehen an.
Abbildung 9.3. Der Debian-Spickzettel (Ausschnitt)
9.6. APT-Spickzettel von Nixcraft
Im Nixcraft-Blog
[nixcraft-blog]
finden Sie eine Übersicht, welches
die beiden Programme
dpkg
und
apt-get
mit vielen Erklärungen und
aussagekräftigen Beispielen gegenüberstellt. Zu beiden Programmen gibt
es einen Spickzettel für den Webbrowser (auf englisch
cheat sheet
),
welcher Ihnen auch in vielen Situationen weiterhilft. Der Spickzettel
steht zu
dpkg
[nixcraft-dpkg]
und
apt-get
[nixcraft-apt-get]
zur
Verfügung. Letzteres zeigt Ihnen
Abbildung 9.4, „Spickzettel zu
apt-get
Abbildung 9.4. Spickzettel zu
apt-get
9.7. Pacman Rosetta
Eine ausführliche Zusammenstellung der Kommandozeilenparameter und
Funktionen populärer Paketverwaltungen beinhaltet die Pacman Rosetta
[Pacman-Rosetta]
aus dem Wiki zu Arch Linux. Anhand von Aufrufen aus
der Praxis stellt es Pacman (Arch Linux), YUM (RedHat/Fedora),
dpkg
und
apt-get
(Debian, Ubuntu) sowie
rug
(älteres Suse), Zypper
(openSUSE) und
emerge
(Gentoo Linux) gegenüber. Eine ähnliche
Übersicht mit den aktuellen Parametern finden Sie auch im Anhang unter
„Kommandos zur Paketverwaltung im Vergleich“ in
Kapitel 51,
Kommandos zur Paketverwaltung im Vergleich
Abbildung 9.5. Die Pacman Rosetta (Ausschnitt)
9.8. Handbuch zu
aptitude
aptitude
ist ein recht komplexes Programm und bedarf daher einiges an
Dokumentation. Diese steht bislang in 9 Sprachen als HTML-Datei bereit,
so in englisch, tschechisch, spanisch, finnisch, französisch,
italienisch, niederländisch, russisch und japanisch. Eine deutsche
Übersetzung fehlt leider bisher noch.
Seit 2013 ist die Zusammenstellung für
aptitude
in der Version 0.6.8.2
in 7 Sprachen verfügbar
[aptitude-dokumentation]
, für Debian 8
Jessie
kamen zudem niederländisch und russisch dazu. Zuvor war es
längere Zeit recht ruhig um die Dokumentation, da der bisherige
Maintainer nicht mehr erreichbar war. Nachdem das neue
aptitude
-Team
vollen Zugriff auf die Daten bei Alioth – Debians damalige
FusionForge-Installation – hatte, ging es flink voran. Leider verweisen
etliche Suchmaschinen auch heute noch auf die vorherige Version 0.4.11.2
aus dem Jahr 2008
[aptitude-dokumentation-veraltet]
Die Dokumentation ist auch als sprachspezifisches Debianpaket
verfügbar. Bspw. enthält
aptitude-doc-en
die englische und
aptitude-doc-fr
die französische Übersetzung.
Abbildung 9.6. Dokumentation zu
aptitude
9.9. The Debian Administrator’s Handbook
Seit 2003 setzen Raphaël Hertzog und Roland Mas mit ihrem Kompendium „The
Debian Administrator’s Handbook“ Maßstäbe
[Hertzog-Mas-Debian-Administrators-Handbook]
(französischer
Originaltitel: „Cahiers de l’Admin“). Das Buch spielt in der gleichen
Liga wie Frank Ronneburgs „Debian-Anwenderhandbuch“
[Debian-Anwenderhandbuch]
, Michael Koflers „Linux – das umfassende
Handbuch“
[29]
[Kofler-Linux-2013]
und Martin Kraffts Buch „Das Debian-System. Konzepte und Methoden“
[Krafft-Debian-System]
. Aufgrund seiner Einzigartigkeit im
französischen Sprachraum erreichen Neuauflagen regelmäßig einen
Spitzenplatz in den Verkaufslisten des Buchhandels.
Ursprünglich nur in französischer Sprache verfasst, steht es mittlerweile
auch in einer englischen und spanischen Übersetzung bereit. Diese drei
Varianten sind sowohl als kostenfreie, digitale Version (PDF und eBook),
als auch als kostenpflichtige, gedruckte Variante (Paperback, Print on
demand) erhältlich. Die Finanzierung der Übersetzung ins Englische
erfolgte über eine Crowdfunding-Kampagne. Übersetzungen in andere
Sprachen wie bspw. Arabisch, Farsi, Deutsch, Griechisch und Russisch
werden von Freiwilligen beigesteuert, sind aber derzeit noch nicht ganz
vollständig und daher nicht in gedruckter Form verfügbar.
Das Buch wird jeweils für die aktuelle Debian-Veröffentlichung angepasst.
Gleichzeitig entsteht daraus auch ein reguläres Debianpakete namens
debian-handbook
[Debian-Paket-debian-handbook]
welches in die
Distribution wieder einfließt. Das Paket beinhaltet derzeit den
französischen, englischen und spanischen Text.
Das Buch ist für alle Anwender gedacht, die Debian GNU/Linux-Systeme
administrieren. Daher deckt es neben einem Einblick in das Debian-Projekt
(siehe
Abschnitt 1.1, „Was ist Debian?“
) alle Bereiche ab, über Sie als Administrator
Bescheid wissen müssen – die Debian-Installation, die Einrichtung und
Betreuung von Diensten wie KVM, Xen und LXC sowie die Absicherung der
von Ihnen betreuten Systeme. Auch die Thematik Automatisierung kommt
nicht zu kurz, bspw. mittels FAI (siehe
Kapitel 35,
Automatisierte Installation
). In Bezug auf das Debian-Paketformat
(siehe
Kapitel 4,
Debian-Paketformat im Detail
) setzen die Autoren auf
dpkg
(Grundlagen und Ebenen) und zeigen das Paketmanagement anhand von
aptitude
und
synaptic
. Auch der Erstellung von Debianpaketen ist
ein eigenes Kapitel gewidmet.
Abbildung 9.7. Cover des Buches
9.10. Weitere Bücher
Neben bereits oben besprochenen Dokumenten existieren viele thematisch
breiter angelegte Werke und Veröffentlichungen. Diese verschaffen dem
Neueinsteiger eine sehr gute Einordnung des Themas Paketmanagement im
Kontext der Einführung in den Umgang mit Linux als Betriebssystem sowie
der allgemeinen Betreuung von Rechnern und ganzen Rechnerverbünden. Auch
als dauerhaftes Nachschlagewerk sind diese Bücher wirklich zu empfehlen,
denn diese Bücher haben Substanz – auch wenn diese zum Teil bereits etwas
älter sind. Die meisten Autoren konzentrieren sich dabei auf das Basiswissen
mit
dpkg
in Kombination mit APT,
aptitude
oder
synaptic
Eric Amberg: „Linux-Server mit Debian 6 GNU/Linux: Das umfassende Praxishandbuch“
erschienen 2012 zu Debian 5
Lenny
und Debian 6
Squeeze
, im Februar 2014 fortgesetzt mit einer aktualisierten Fassung
für Debian 7
Wheezy
[Amberg-Linux-Server-Praxishandbuch]
. Fokussiert
ausschließlich auf Debian GNU/Linux.
Robert Gödl: „Debian GNU/Linux 12: Der umfassende Praxiseinstieg“
erschienen 2023 zu Debian 12
Bookworm
[GoedlDebian]
. Fokussiert
ausschließlich auf Debian GNU/Linux.
Heike Jurzik: „Debian GNU/Linux: Das umfassende Handbuch“
Erstveröffentlichung als Buch 2006 zu Debian 3.1
Sarge
, danach
regelmäßige Aktualisierung und Erweiterung
[Jurzik-Debian-Handbuch]
In der Regel erfolgt eine weitere Veröffentlichung, wenn eine neue
Debian-Veröffentlichung freigegeben wurde. Das Buch richtet sich an Ein-
und Umsteiger, die ihr Wissen Stück für Stück erweitern – vom Einstieg
über die Installation bishin zum Betrieb eigener Dienste und Server.
Fokussierung auf
deb
-basierte Distributionen mit dem Schwerpunkt
Debian GNU/Linux.
Michael Kofler: „Linux – das umfassende Handbuch“
Erstveröffentlichung 1995 mit jährlicher Aktualisierung. Nicht
distributionsspezifisch, sondern für
deb
- und
rpm
-basierte
Linux-Distributionen gleichermaßen gut geeignet
[Kofler-Linux-2013]
Martin F. Krafft: „Das Debian-System. Konzepte und Methoden“
2006
als Buch auf der Basis von Debian 3.1
Sarge
veröffentlicht. Eine
Fortsetzung und Aktualisierung ist bislang nicht erfolgt
[Krafft-Debian-System]
. Fokussiert ausschließlich auf Debian
GNU/Linux.
Frank Ronneburg: „Das Debian-Anwenderhandbuch“
1999 bis 2008 als
Buch aufgelegt und danach nur noch als Online-Dokumentation weitergeführt
[Debian-Anwenderhandbuch]
. Fokussiert ausschließlich auf Debian
GNU/Linux.
[29]
das Werk basiert von jeher auf SuSE-Linux,
reißt aber alle Bereiche des Linux-Alltags mit an
Teil III. Praxis
Kapitel 10. APT und
aptitude
auf die eigenen Bedürfnisse anpassen
Die Werkzeuge für
deb
-Pakete —
apt-get
apt
und auch
aptitude
— sind
sehr flexibel in ihrer Ausführung. Die von Debian mitgelieferte Konfiguration
ist alltagstauglich und sorgt für ein stabiles Arbeiten.
Recherchieren Sie nach der Konfiguration von APT, erhalten Sie viele Beiträge,
die sich lediglich auf die Liste der Paketquellen konzentrieren. Diesem Thema
gehen wir bereits ausführlich in
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
nach. Das
nun folgende Kapitel konzentriert sich hingegen auf die weiteren Einstellungen
von
apt-get
apt
und
aptitude
. Es soll Ihnen dabei helfen, das Verhalten
dieser Werkzeuge auf ihre eigenen Bedürfnisse anzupassen, insbesondere wenn es
um Spezialfälle geht.
Alle drei Werkzeuge greifen auf die gleichen Dateien zur Konfiguration zurück.
APT liefert Erweiterungen — genannt Hooks (siehe
Abschnitt 10.5, „APT-Hooks“
), und
aptitude
erlaubt sowohl permanente, globale Einstellungen als auch lokale
Einstellungen (siehe
Abschnitt 10.6, „Konfigurationsdateien von
aptitude
) sowie das Ändern
der Verhaltens beim Aufruf von
aptitude
(siehe dazu
Abschnitt 10.7, „
aptitude
: Interaktives Ändern von Optionen“
).
10.1. Konfiguration von APT
APT und auch alle Programme, die die Bibliotheken von APT benutzen,
greifen auf diverse Konfigurationsdateien zu. Über die Einstellungen
darin werden unterschiedliche Funktionen abgebildet. Alle globalen
Konfigurationsdateien befinden sich im Verzeichnis
/etc/apt
und
beinhalten:
apt.conf
bzw.
apt.conf.d
Grundlegende Einstellungen von APT und
den Bedienschnittstellen (Frontends). Siehe dazu
Abschnitt 10.3.1, „
/etc/apt/apt.conf(.d)
verstehen“
listchanges.conf
Hinterlegte Einstellungen zu den Änderungen, die
bei der Aktualisierung von Paketen durchgeführt werden. Diese Datei wird
vom Werkzeug
apt-listchanges
[Debian-Paket-apt-listchanges]
gepflegt. Genauer besprechen wir das Werkzeug in
Kapitel 37,
Qualitätskontrolle
preferences
bzw.
preferences.d
Diese Einträge steuern, welche
Versionen von Paketen zur Installation ausgewählt werden. Siehe dazu
Abschnitt 10.3.2, „
preferences
bzw.
preferences.d
sources.list
bzw.
sources.list.d
Beinhaltet die Liste der
Paketquellen, von denen APT Pakete bezieht. Ausführlich gehen wir darauf
in
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
ein.
trusted.gpg
bzw.
trusted.gpg.d
Beinhaltet die kryptographischen
Signaturen in Form von GnuPG-Schlüsseln der verwendeten Paketquellen.
Darüber wird sichergestellt, welchen Paketquellen APT vertraut. Siehe
dazu
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
Wie Sie bereits der obigen Auflistung entnehmen können, gibt es alle
Varianten der Konfigurationsdateien in zwei Geschmäckern — als einzelne
Datei sowie als gleichnamiges Verzeichnis mit dem Suffix
.d
(eine
Ausnahme davon bildet lediglich
listchanges.conf
):
als einzelne Datei
Das ist die ursprüngliche Variante der
Konfigurationsdatei. Diese ist Ihnen als lokaler Systemadministrator
vorbehalten.
als gleichnamiges Verzeichnis mit dem Suffix
.d
Alle Dateien in
diesem Verzeichnis werden so interpretiert, als wären sie an der
gleichnamigen Datei ohne
.d
angehängt — wie einzelne „Schnipsel“
von Einstellungen, die aneinandergereiht werden. Mehr Details liefert
Ihnen dazu die Manpage zu
run-parts(8)
[Debian-Paket-debianutils]
).
Ohne zusätzliche Parameter erfolgt die Aneinanderreihung der einzelnen
„Schnipsel“ entsprechend der lexikalischen Sortierreihenfolge (gemäß
den C/POSIX-Locale-Sortierregeln) ihrer Namen. Die einzelnen Dateien
müssen zudem bestimmten Regeln hinsichtlich des Dateinamens entsprechen.
Insbesondere dürfen keine Punkte im Dateinamen vorkommen.
Nachfolgend sehen beispielhaft den Inhalt des Verzeichnisses
/etc/apt/sources.list.d/
, wie er durchaus auf einer
Desktopinstallation vorkommen kann. Enthalten sind die separaten
Paketquellen für den Webbrowser
Google Chrome
sowie die beiden
Messenger
Signal
und
Skype
Zusätzliche Paketquellen als separate Dateien.
$ ls /etc/apt/sources.list.d/
google-chrome.list
signal-xenial.list
skype-stable.list
Jede aufgeführte Datei enthält eine oder mehrere, zusätzliche
Paketquellen für das entsprechende Programm. Für den Messenger
Signal
sieht das bspw. wie folgt aus:
Zusätzliche Paketquelle für
Signal
(Release für Xenial).
$ cat /etc/apt/sources.list.d/signal-xenial.list
deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main
Der Aufbau eines Eintrags entspricht der Datei
/etc/apt/sources.list
(siehe dazu
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
).
10.2. Konfiguration von APT anzeigen
Zu diesem Zweck steht Ihnen das Werkzeug
apt-config
zur Verfügung. Es ist
Bestandteil des Debianpakets
apt
[Debian-Paket-apt]
. Das Ziel des von
den Entwicklern gewählten Schnittstellendesigns besteht in der leichten
Benutzbarkeit des Programms — auch von Shellskripten aus (siehe dazu
den Abschnitt
AptConf
im Debian Wiki
[Debian-Wiki-AptConf]
).
Die Konfiguration von APT erhalten Sie mit dem Schalter
dump
. Nachfolgend
sehen Sie einen Auszug der Ausgabe. Um diese Informationen zusammenzustellen,
kombiniert
apt-config
die Inhalte der einzelnen Module zur Konfiguration
(siehe dazu
Abschnitt 10.3, „Konfigurationsdateien von APT im Detail“
).
Ausgabe der aktuellen Einstellungen von APT mittels
apt-config
$ apt-config dump
APT "";
APT::Architecture "i386";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "true";
APT::Install-Suggests "0";
APT::Authentication "";
APT::Authentication::TrustCDROM "true";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^firmware-linux.*";
APT::NeverAutoRemove:: "^linux-firmware$";
APT::NeverAutoRemove:: "^linux-image.*";
APT::NeverAutoRemove:: "^kfreebsd-image.*";
...
Nützliche Schalter und Optionen von
apt-config
sind:
dump
Nur der Inhalt des Konfigurationsbereichs wird angezeigt.
shell
Zugriff auf die Konfigurationsinformationen aus einem
Shellskript heraus.
-c
(Langform
--config-file
Angabe einer Konfigurationsdatei. Diese Datei
wird zusätzlich zur üblichen Konfigurationsdatei gelesen.
-h
(Langform
--help
Ausgabe der Hilfe zum Programm.
-o
(Langform
--option
Angabe einer Option direkt beim Aufruf. Diesen
Schalter können Sie mehrfach angeben.
-v
(Langform
--version
Ausgabe der Version samt Architektur
--empty
Damit schließen Sie Optionen ein, die einen leeren Wert haben. Das
ist die Standardeinstellung. Das Gegenstück dazu ist
--no-empty
--format
Darstellung der Ausgabe steuern. Zulässig sind diese Werte:
%f
— vollständiger, hierarchischer Name der Option
%n
— Zeilenumbruch
%N
— Tabulator
%t
— individueller Name der Option (Kurzform von
%f
%v
— Wert der Option
Die Standardeinstellung ist
%f "%v";%n
. Die nachfolgende Ausgabe zeigt die
Kurzform der Option inklusive deren Wert. Jede Zeile wird mit einem Semikolon
abgeschlossen.
$ apt-config dump --format '%t "%v"; %n'
APT "";
Architecture "amd64";
Build-Essential "";
"build-essential";
Install-Recommends "1";
Install-Suggests "0";
Sandbox "";
...
--no-empty
Damit schließen Sie Optionen aus, die einen leeren Wert haben.
Das Gegenstück dazu ist
--empty
Was uns
apt-config
bislang nicht freiwillig verraten hat, ist, welche Option
in welchem Konfigurationsschnipsel gesetzt wurde. Das ist bspw. dann wichtig,
wenn Sie herausfinden müssen, welche Optionen sich überschreiben oder auch
gegenseitig wieder aufheben. Für Debian 9
Stretch
haben wir diese
(provisorische) Lösung, um zumindest herauszubekommen, welche
Konfigurationsdateien gelesen werden:
Welche Dateien liest
apt-config
(Lösung für Debian 9
Stretch
).
$ strace -f -e open apt-config dump | grep "open("
...
open("/etc/apt/apt.conf.d/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
open("/etc/apt/apt.conf.d/00CDMountPoint", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/00trustcdrom", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/01autoremove", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/01autoremove-kernels", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/20listchanges", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/20packagekit", O_RDONLY) = 4
open("/etc/apt/apt.conf.d/70debconf", O_RDONLY) = 4
...
open("/var/lib/apt/lists/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
...
Da sich in Debian 10
Buster
der interne Aufruf von
open()
zu
openat()
geändert hat, sieht der Aufruf von
apt-config
nun wie folgt aus:
Welche Dateien liest
apt-config
(Lösung für Debian 10
Buster
).
$ strace -f -e openat apt-config dump | grep "openat("
...
Nach unseren Tests funktioniert obige Lösung ebenfalls für Debian 11
Bullseye
und 12
Bookworm
10.3. Konfigurationsdateien von APT im Detail
10.3.1.
/etc/apt/apt.conf(.d)
verstehen
In der Datei
/etc/apt/apt.conf
bzw. in den Dateien im Verzeichnis
/etc/apt/apt.conf.d/
stellen Sie viele Aspekte von APT und anderen
APT-Frontends ein. Alle diese Einstellungen überschreiben Sie bei Bedarf
explizit auch auf der Kommandozeile (siehe
Abschnitt 10.4, „Konfigurationsoptionen von APT“
).
Darunter fallen u.a.:
wie oft APT selbstständig Paketlisten und Pakete herunterladen soll
(Schlüsselwort
APT::Periodic
),
ob empfohlene (
Recommends
) oder vorgeschlagene Pakete (
Suggests
per Default installiert werden sollen (Schlüsselworte
APT::Install-Recommends
und
APT::Install-Suggests
),
welche Pakete nie automatisch entfernt werden sollen (Schlüsselwort
APT::NeverAutoRemove
),
ob Paketlisten lokal entpackt oder komprimiert gespeichert werden
sollen,
welche Kompressionsalgorithmen beim Herunterladen von Paketlisten
bevorzugt werden sollen (alle Schlüsselworte beginnend mit
APT::Compressor
),
wohin APT Paketlisten und Pakete herunterladen soll. (Sollten Sie
nicht systemweit ändern, kann aber beim Bearbeiten einer
Chroot-Umgebung von außen durchaus als Einstellung auf der
Kommandozeile nützlich sein.)
An- und Abschalten von Fortschrittsbalken (verfügbar ab APT 1.0)
(Schlüsselwort
Dpkg::Progress-Fancy
),
wo Changelogs heruntergeladen werden können,
welche Übersetzungen der Paketlisten heruntergeladen werden sollen,
welche Parameter APT an
dpkg-deb
übergibt,
Hooks, z.B. vor und nach dem Auspacken von Paketen (siehe
Abschnitt 10.5, „APT-Hooks“
Konfigurationen für beliebige Tools im APT-Ökosystem, die ebenfalls
diese Konfigurationsdateien verwenden, z.B.
aptitude
adequate
[Debian-Paket-adequate]
whatmaps
[Debian-Paket-whatmaps]
, etc.
Um das Vorgehen besser zu verstehen, werfen Sie am besten einen Blick in
das Verzeichnis
/etc/apt/apt.conf.d/
. Das nachfolgende Listing zeigt
den typischen Inhalt auf einem Debian 9
Stretch
. Ob und welche Dateien
tatsächlich vorhanden sind, hängt von den Werkzeugen ab, die Sie auf ihrem
System installiert haben.
Beispielhafter Inhalt von
/etc/apt/apt.conf.d/
$ ls /etc/apt/apt.conf.d/
00CDMountPoint 01autoremove 20listchanges 70debconf
00trustcdrom 01autoremove-kernels 20packagekit
Die Datei
01autoremove-kernels
beinhaltet bspw. Anweisungen, was mit älteren
und inzwischen aktualisierten Kernelpaketen auf ihrem System passieren soll.
Üblicherweise bleiben diese bei einer Aktualisierung des Pakets erhalten und
werden von APT niemals automatisch entfernt. Der nachfolgende Ausschnitt
demonstriert Ihnen das:
Inhalt der Datei
/etc/apt/apt.conf.d/01autoremove-kernels
(Ausschnitt).
// DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal
APT::NeverAutoRemove
"^linux-image-3\.16\.0-4-amd64$";
"^linux-image-4\.9\.0-11-amd64$";
"^linux-headers-3\.16\.0-4-amd64$";
"^linux-headers-4\.9\.0-11-amd64$";
"^linux-image-extra-3\.16\.0-4-amd64$";
"^linux-image-extra-4\.9\.0-11-amd64$";
"^linux-signed-image-3\.16\.0-4-amd64$";
"^linux-signed-image-4\.9\.0-11-amd64$";
"^kfreebsd-image-3\.16\.0-4-amd64$";
"^kfreebsd-image-4\.9\.0-11-amd64$";
"^kfreebsd-headers-3\.16\.0-4-amd64$";
"^kfreebsd-headers-4\.9\.0-11-amd64$";
"^gnumach-image-3\.16\.0-4-amd64$";
"^gnumach-image-4\.9\.0-11-amd64$";
"^.*-modules-3\.16\.0-4-amd64$";
"^.*-modules-4\.9\.0-11-amd64$";
"^.*-kernel-3\.16\.0-4-amd64$";
"^.*-kernel-4\.9\.0-11-amd64$";
"^linux-backports-modules-.*-3\.16\.0-4-amd64$";
"^linux-backports-modules-.*-4\.9\.0-11-amd64$";
"^linux-tools-3\.16\.0-4-amd64$";
"^linux-tools-4\.9\.0-11-amd64$";
};
...
10.3.2.
preferences
bzw.
preferences.d
Hier handelt es sich um eine Datei bzw. ein Verzeichnis, in welchem Sie
die Priorität eines oder mehrerer Pakete festlegen (siehe dazu
Kapitel 20,
Veröffentlichungen mischen
). Der Vorgang heißt
Pinning
und
erlaubt es Ihnen, Pakete aus einer anderen Debian-Veröffentlichung zu
verwenden — bspw.
stable
testing
oder
unstable
— ohne die
Notwendigkeit, dabei gleich ihr ganzes System auf diese Veröffentlichung
aktualisieren zu müssen.
Die Paketverwaltung respektiert ihre Festlegung und berücksichtigt das
bei der Aktualisierung sowie bei den Paketabhängigkeiten. Genutzt wird
ein Zahlenwert als Priorität — je höher dieser ist, umso mehr wird
die gewählte Veröffentlichung bevorzugt. Nachfolgendes Beispiel gibt
Paketen aus
testing
eine höhere Priorität als den Paketen aus
unstable
Veröffentlichungen priorisieren.
Package: *
Pin: release n=testing
Pin-Priority: 900

Package: *
Pin: release n=unstable
Pin-Priority: 800
Die Datei
preferences
bzw. das Verzeichnis
preferences.d
ist
ursprünglich leer. Eine detaillierte Beschreibung zu Pinning finden Sie
bspw. in
Abschnitt 20.4, „Paketweise festlegen“
10.3.3. cron.daily/apt
In dieser Datei sind alle APT-bezogenen Aktionen zusammengestellt, die
täglich ausgeführt werden, bspw. eine Aktualisierung der lokalen Liste
der Pakete mittels
apt update
. Es erfordert einen zusätzlichen
Eintrag für Cron in der Datei
/etc/crontab
10.4. Konfigurationsoptionen von APT
Dazu verwenden Sie als Schalter
-o
, gefolgt von der Form
=
ToDo:
welche Schalter gibt es denn überhaupt
Beispielaufruf für die Kommandozeile
10.5. APT-Hooks
Begriff und Nutzen
Ergänzungen, kleine Erweiterungen, Eingriffe
standardisierte Abläufe um eigene, paketbezogene Schritte ergänzen
Festlegung in der APT-Konfiguration
wo speichert man das
was ist erlaubt, was nicht
was sind Gepflogenheiten
10.6. Konfigurationsdateien von
aptitude
aptitude
verwendet alle Konfigurationsdateien von APT plus seine eigenen.
Diese finden Sie in der Datei
.aptitude/config
in ihrem Home-Verzeichnis.
Hier werden auch die interaktiven Änderungen der Konfiguration gespeichert,
die Sie zuvor über die Textoberfläche von
aptitude
vorgenommen haben.
aptitude
benutzt dabei die gleiche Syntax wie APT.
Um diese Einstellungen auf dem gesamten System anzuwenden, speichern Sie diese
bspw. als zusätzliche Datei in der globalen Konfiguration von APT unter
/etc/apt/apt.conf.d/lokale-aptitude-einstellungen
. Diese Einträge stören APT
nicht, da sie alle mit dem Präfix
Aptitude::
beginnen.
Beispiel einer lokalen Konfigurationsdatei von
aptitude
aptitude "";
aptitude::Keep-Unused-Pattern "";
aptitude::Delete-Unused-Pattern "";
10.7.
aptitude
: Interaktives Ändern von Optionen
.aptitude/config
(root vs non-root; interaktives Ändern von Optionen) (1)
Überschreiben von Optionen während des Aufrufs
Schalter und Parameter überschreiben Standardwerte
wie gebe ich diese beim Aufruf an?
10.8.
aptitude
Format Strings
Mit
Format Strings
legen Sie die Ausgabe anhand von vorgegebenen
Platzhaltern fest. Sie ähneln der Art und Weise, wie sie in der
printf()
-Funktion in der Programmiersprache C respektive der
print()
-Funktion in Python üblich sind. Eine ausführliche Beschreibung
der Platzhalter finden Sie im
aptitude
-Handbuch unter
Customizing the
package list
[aptitude-dokumentation-package-list]
Tabelle 10.1, „Format Strings in
aptitude
gibt Ihnen eine Übersicht zu den
verfügbaren Platzhaltern. Diese Platzhalter helfen Ihnen in Kombination
mit der Suche nach Paketen und bei der Gestaltung der Ausgabe. Sie
bestimmen damit, welche Informationen
aptitude
spaltenweise zu einem
Paket darstellt.
Tabelle 10.1. Format Strings in
aptitude
Platzhalter
Bedeutung
%a
das Flag für die Aktion des Pakets (
Action Flag
%A
die ausführlichere Beschreibung des Flags der Aktion
%B
die Anzahl der kaputten Pakete (
Broken Packages
%c
der aktuelle Paketstatus (
Current State Flag
%C
eine ausführlichere Beschreibung des aktuellen Paketstatus
%d
die kurze Paketbeschreibung (
Description
%D
die Größe der Paketdatei
%E
der Name des Source-Pakets
%H
der Name des Rechners, auf dem
aptitude
gerade ausgeführt wird (
Hostname
%i
benennt die höchste Priorität, die einer Paketversion zugewiesen wurde
%I
die (geschätzte) Installationsgröße (
Installed Size
%m
der Name des Paketmaintainers (
Maintainer
%M
gesetzt, falls das Paket automatisch installiert wurde (
Automatic Flag
%n
gibt die Programmversion von
aptitude
aus
%N
gibt den Namen des Programms aus, i.d.R
aptitude
%o
gibt eine Schätzung der Datenmenge zurück, die vom Repository bezogen wird
%p
der Paketname (
Package Name
%P
die Paketpriorität (
Priority
%r
gibt die geschätzte Anzahl Pakete an, die von diesem Paket abhängen (
Reverse Depends Count
%R
eine Abkürzung für die Priorität des Paketes (
Abbreviated Priority
%s
der Bereich, in den das Paket eingeordnet ist (
Section
%S
der Vertrauensstatus des Paketes; ist
, falls es nicht aus einer vertrauenswürdigen Quelle stammt
%t
der Name des Archivs, aus dem das Paket stammt
%T
gibt einen
zurück, falls das Paket getagged wurde, ansonsten nichts
%u
falls die anstehenden Aktionen die Größe des verfügbaren Speicherplatzes auf dem Datenträger verändern, gibt dieser Platz eine entsprechende Mitteilung aus
%v
die aktuell installierte Version des Pakets, falls installiert (
Version
%V
gibt die Paketversion aus, die installiert würde, falls die Aktion
Paket installieren
ausgeführt wird (
Candidate Version
%Z
die Größe des Speicherplatzes, der zusätzlich benutzt oder freigegeben wird, wenn das Paket installiert, entfernt oder aktualisiert wird (
Size Change
Die Voreinstellung von
aptitude
beinhaltet die fünf Platzhalter
%c
%a
%M
%p%
und
%d
. Es umfasst somit die einzelnen Spalten mit
dem Paketstatus, der Aktion, das
Automatic Flag
, dem Paketnamen und
der Paketbeschreibung.
Möchten Sie eine andere Ausgabe erhalten, benutzen Sie im Aufruf den
Schalter
-F
(Langform
--display-format
) gefolgt von einem String mit
den entsprechenden Platzhaltern. Das nachfolgende Beispiel listet alle
verfügbaren Pakete samt deren Installationsstatus (
%c
) auf, in dessen
Paketname die Zeichenkette
asciidoc' enthalten ist (
%p`). Zwischen dem
Paketstatus und dem Paketnamen wird lediglich ein Leerzeichen eingefügt.
Individuelle Gestaltung des Ausgabeformats von
aptitude
bei der Suche nach den verfügbaren Paketen mit
asciidoc
im Namen.
$ aptitude search -F '%c %p' asciidoc
i asciidoc
v asciidoc:i386
i asciidoctor
i asciidoctor-doc
Die Format Strings erlaubt ebenfalls zusätzliche Trennzeichen und
dezimale Angaben vor einem Platzhalter. Damit legen Sie die weitere
Gestaltung der Ausgabe und die jeweilige Spaltenbreite fest. Das
nachfolgende Beispiel legt drei Spalten fest — den Installationsstatus
%c
), die Versionsnummer, falls das Paket installiert ist (
%v
) sowie
den Paketnamen (
%p
). Alle drei Spalten sind jeweils durch einen
senkrechten Strich voneinander getrennt. Die Angabe
%20v
besimmt
als feste Spaltenbreite 20 Zeichen, die anderen Spalten bleiben in der
Größe variabel.
Installationsstatus, installierte Version und Paketname mit fester Breite.
$ aptitude search -F '%c | %20v | %p' asciidoc
i | 8.6.9-3 | asciidoc
v | | asciidoc:i386
i | 1.5.4-1~bpo8+1 | asciidoctor
i | 0.1.4-3 | asciidoctor-doc
In der Praxis ist es oft so, dass weitere Schalter im Aufruf miteinander
zu kombinieren sind. Das nachfolgende Beispiel listet nur den Namen aller
verfügbaren Pakete auf, die nicht als Abhängigkeiten installiert wurden.
Dabei bewirkt die Angabe
'~i !~M'
, dass nur die installierten Pakete
berücksichtigt werden (Angabe
'~i'
), und
'!~M'
, dass nur die
einbezogen werden, bei denen das
Automatic Flag
nicht gesetzt ist (das
bewirkt eine Negation).
Das Ergebnis ist zunächst erstmal der komplette, übliche Ausgabestring
aus Paketstatus, der Aktion, dem
Automatic Flag
, dem Paketnamen und
der kurzen Paketbeschreibung. Um das noch auf den Paketnamen zu
reduzieren, kommt der Format String
%p
ins Spiel.
Lediglich nicht automatisch installierte Pakete auflisten.
$ aptitude search '~i !~M' -F '%p'
abiword
abs-guide
ack-grep
acl
acpi
acpi-support-base
acpid
acpitool
adduser
adequate
...
Die obige Liste beinhaltet auch alle essentiellen Pakete (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
). Diese filtern Sie über die
zusätzliche Angabe
'!~E'
heraus. Damit ändert sich ihr Aufruf wie
folgt:
Nicht automatisch installierte und nicht essentielle Pakete auflisten.
$ aptitude search '~i !~M' -F '%p'
abiword
abs-guide
ack-grep
...
Anmerkung
Bitte beachten Sie, dass
aptitude
nur die Pakete berücksichtigt, die
auch das
Automatic Flag
tragen. Nicht alle Distributionen sind da
konsequent. Zum Beispiel ist Raspberry Pi OS dafür bekannt, die
Markierung kaum zu benutzen. Obiger Aufruf auf einem Raspberry Pi
liefert wohl deswegen auch viele C-Bibliotheken im Ergebnis mit, die
tatsächlicht nicht gebraucht werden.
Geht es Ihnen jedoch darum, lediglich die Namen der Pakete auszugeben,
die den Begriff
asciidoc
im Namen tragen und auch installiert sind,
hilft aus unserer Sicht nur die Kombination aus
asciidoc
und
grep
wie folgt weiter:
Alle installierten Pakete auflisten, die
asciidoc
im Namen tragen.
$ aptitude search '~i' -F '%p' | grep asciidoc
asciidoc
asciidoctor
asciidoctor-doc
Arbeiten Sie mit Repositorys vom Fremdanbietern, hängt die
Zuverlässigkeit der Pakete vom Fremdanbieter ab. Mit dem nachfolgenden
Aufruf — einer Kombination aus
aptitude
und
egrep
— finden Sie
alle installierten Pakete, die aus nicht-vertrauenswürdigen Quellen
stammen. Die Angabe
%S
am Beginn des Format Strings veranlasst
aptitude
, ein
zu produzieren, sollte der entsprechende Fall
eintreten. Der angeflanschte Aufruf von
egrep
benutzt einen regulären
Ausdruck, um für diejenigen Zeilen einen Treffer zu landen, die mit
einem großen
beginnen. Im Beispiel ist es das ausgedachte Paket
libblafaselsonstwas
Pakete aus nicht-vertrauenswürdiger Quelle herausfischen.
$ aptitude search '~i' -F '%S %p' | egrep "^U
U libblafaselsonstwas
10.9. Für
aptitude
die Ausgabebreite festlegen
Ohne weitere Angaben benutzt
aptitude
zur Ausgabe die gesamte Breite
des Terminals. Möchten Sie das auf einen bestimmten Wert festlegen,
nutzen Sie dafür den Schalter
-w
(Langform
--width
) gefolgt von der
Anzahl Zeichen. Das nachfolgende Beispiel zeigt Ihnen den Aufruf für
eine Breite von 40 Zeichen. Überflüssige Zeichen schneidet
aptitude
in
der Ausgabe ab.
Begrenzung der Ausgabe auf eine feste Breite.
$ aptitude search -w 40 debtags
i debtags - Akiviert die Unterstü
p debtags:i386 - Akiviert die Unterstü
p python-debta - Vergleicht »hardware:
p python3-debt - Vergleicht »hardware:
Dieser Wert korrespondiert mit der Einstellung
Aptitude::CmdLine::Package-Display-Width
in der Konfigurationsdatei zu
aptitude
10.10. Bei
aptitude
die Ausgabe sortieren
Möchten Sie die Ausgabe darüberhinaus noch sortieren, hilft Ihnen der
Schalter
-O
(Langform
--sort
) weiter. Die Sortierung der Ausgabe
erlaubt bspw. die Werte
installsize
(Installationsgröße),
name
(Paketname) und
version
(Versionsnummer). Die Basiseinstellung ist
name,version
, wobei
aptitude
zuerst eine Sortierung anhand des
Paketnamens und danach noch anhand der Paketversion durchführt. Somit
erscheinen ältere Pakete in der Auflistung zuoberst.
Nachfolgend sehen Sie wiederum eine dreispaltige Ausgabe, die hier aus
der Größe nach der Installation (Platzbedarf auf dem Speichermedium),
dem Paketnamen sowie dem Namen und der EMailadresse des Paketmaintainers
besteht. Zusätzlich ist die Ausgabe aufsteigend nach der Paketgröße
sortiert. Recherchiert wird dabei nach allen Paketen, die im Namen die
Zeichenkette
debtags
beinhalten.
Suche nach
debtags
-Paketen mit spezifischer Formatierung der Ausgabe und Sortierung.
$ aptitude search -F "%I %5p,%m" --sort installsize debtags
79,9 kB python-debtagshw ,Enrico Zini
79,9 kB python3-debtagshw ,Enrico Zini
826 kB debtags:i386 ,Enrico Zini
910 kB debtags ,Enrico Zini
10.11.
aptitude
-Gruppierung
10.11.1. Kommandozeile
Zur Gruppierung kennt
aptitude
den Schalter
--group-by
. Eine kurze Version des
Schalters existiert u.E. bislang nicht. Als Wert sind die folgenden
Möglichkeiten zulässig:
archive
nach dem Enthaltensein eines Pakets in einer Veröffentlichung, bspw.
stable
oder
unstable
auto
Gruppierung nach dem Paketnamen
none
Darstellung aller Versionen in einer einzigen Liste ohne jegliche
Sortierung
package
Gruppierung nach dem Paketnamen
source-package
Gruppierung nach dem Namen des Sourcepakets
source-version
Gruppierung nach dem Namen und der Version des Sourcepakets
Diese Werte korrespondieren mit der Einstellung
Aptitude::CmdLine::Versions-Group-By
in der Konfigurationsdatei zu
aptitude
10.11.2. Textoberfläche
Auch die textbasierte Bedienoberfläche ist nicht in Stein gemeisselt und
lässt sich anpassen. Dazu gehören die Anordnung und Breite der Spalten
zu den Paketen und deren Informationen sowie die Aufteilung auf dem
Bildschirm — horizontal oder vertikal geteilt.
Anordnung und Breite der Spalten
Die Darstellung entnimmt Aptitude der Konfigurationsgruppe
Aptitude::UI::Default-Package-View
. Diese beinhaltet eine Liste der
Komponenten, die in der TUI auftauchen. Jede Komponente bennenen Sie und
konfigurieren Sie über mindestens die nachfolgenden vier Angaben genauer:
Beschreibung für eine Komponente der Aptitude-TUI.
Komponentenname Typ {
Row Zeile;
Column Spalte;
Width Breite;
Height Höhe;
};
Der
Komponentenname
ist frei wählbar, darf aber nur aus einem einzigen
Wort ohne Trennzeichen bestehen. Der
Typ
bestimmt, was in der
Komponente dargestellt wird. Zur Auswahl stehen:
Description
Informationsfeld, bspw. für die Beschreibung des
aktuell ausgewählten Debianpaketes
MainWidget
Feld mit der Liste der Pakete; dieses muss genau einmal
vorkommen
Static
Feld mit statischem Text
Die Angaben für
Zeile
Spalte
Breite
und
Höhe
entsprechen denen
einer Tabelle, wobei die obere, linke Ecke die Position 0,0 hat. Mit den
nachfolgenden Zusatzoptionen gestalten Sie die Drastellung einer Spalte
und deren jeweiligen Inhalt noch genauer:
ColAlign
Ausrichtung
ColExpand
Color
ColShrink
Column
Columns
ColumnsCfg
Height
PopUpDownKey
PopUpDownLinked
Row
RowAlign
RowExpand
RowShrink
Visible
Width
Beispiel für eine Komponente.
Todo
Aufteilung auf dem Bildschirm
Dieses Thema besprechen wir im
Abschnitt 10.12, „
aptitude
-Farbschema anpassen“
genauer.
10.12.
aptitude
-Farbschema anpassen
10.12.1. Zwischen
aptitude
-Themes wechseln
Das Aussehen von der
aptitude
-Bedienoberfläche hängt von drei
Einstellungen ab — den gewählten Farben, der Anordnung der
Ausgabeelemente für die TUI und dem Wert der Konfigurationsoption
aptitude::Theme
Die Farben für die Ausgabeelemente sind einerseits vollständig im
aptitude
-Handbuch
[aptitude-dokumentation-themes]
dokumentiert, wir
widmen dem Thema den
Abschnitt 10.12.3, „Eigene Farben vergeben“
. Über welche Elemente
die TUI verfügt und wie Sie diese im Ausgabefenster anordnen, besprechen
wir im
Abschnitt 10.11, „
aptitude
-Gruppierung“
genauer.
Bleibt noch obige Konfigurationsoption
aptitude::Theme
, deren
Bedeutung es zu klären gilt. Für diese wählen Sie den Namen des von
Ihnen gewünschten Themes aus.
aptitude
liefert die folgenden zwei
Themes mit:
Dselect
das
aptitude
-Standardtheme, welches an die
Bedienoberfläche des Werkzeugs
dselect
angelehnt ist. Oben befindet
sich der Paketbaum aus Kategorien und den sich darin befindlichen
Softwarepaketen, darunter die Paketbeschreibung zum jeweils ausgewählten
Paket
Vertical-Split
Anordnung, in der die Ausgabe vertikal geteilt ist.
In der linken Spalte befindet der Paketbaum aus Kategorien und den sich
darin befindlichen Softwarepaketen, in der rechten Spalte die
Paketbeschreibung zum jeweils ausgewählten Paket
10.12.2. Standardvorgaben
aptitude
kommt mit einer Auswahl an Standardfarben. Diese sind in
Tabelle 6.2, „Farben und deren Bedeutung bei
aptitude
in
Abschnitt 6.3.2, „
aptitude
benannt.
10.12.3. Eigene Farben vergeben
Gefällt Ihnen die mitgelieferte Farbauswahl nicht, bauen Sie sich am
besten ihr eigenes Theme. Dazu legen Sie für die einzelnen
Strukturelemente eigene Farben fest (siehe
[aptitude-dokumentation-text-colors-and-styles]
). Anpassbare Elemente
sind:
Bullet
ChangelogNewerVersion
Default
DepBroken
DisabledMenuEntry
DownloadHit
DownloadProgress
EditLine
Error
Header
HighlightedMenuBar
HighlightedMenuEntry
MediaChange
MenuBar
MenuBorder
MenuEntry
MineBomb
MineBorder
MineFlag
MineNumberN
MultiplexTab
MultiplexTabHighlighted
PkgBroken
PkgBrokenHighlighted
PkgNotInstalled
PkgNotInstalledHighlighted
PkgIsInstalled
PkgIsInstalledHighlighted
PkgToDowngrade
PkgToDowngradeHighlighted
PkgToHold
PkgToHoldHighlighted
PkgToInstall
PkgToInstallHighlighted
PkgToRemove
PkgToRemoveHighlighted
PkgToUpgrade
PkgToUpgradeHighlighted
Progress
SolutionActionApproved
SolutionActionRejected
Status
TreeBackground
TrustWarning
Als Farben steht Ihnen eine Grundauswahl aus 8 Farben zur Verfügung.
Tabelle 10.2, „Farbauswahl bei
aptitude
stellt diese zusammen.
Tabelle 10.2. Farbauswahl bei
aptitude
Farbname
Beschreibung
black
schwarz
blue
blau
cyan
hellblau
green
grün
magenta
dunkelrosa
red
rot
white
weiss
yellow
gelb
Ergänzend zur Farbauswahl erlaubt
aptitude
zusätzliche Hervorhebungen.
Tabelle 10.3, „Hervorhebungen und deren Bedeutung bei
aptitude
fasst die Einstellungen
dafür zusammen
Tabelle 10.3. Hervorhebungen und deren Bedeutung bei
aptitude
Hervorhebung
Beschreibung
blink
Enables blinking text.
bold
Makes the foreground color of the text (or the background if reverse video is enabled) brighter.
dim
May cause text to be extra-dim on some terminals. No effect has been observed on common Linux terminals.
reverse
Swaps the foreground and background colors. Many visual elements flip this attribute to perform common highlighting tasks.
standout
This enables “the best highlighting mode of the terminal”. In xterms it is similar, but not idential to, reverse video; behavior on other terminals may vary.
underline
Enables underlined text.
gibt es vorgefertigte Themes zum Download?
Frage:
ist das empfehlenswert, oder stiftet das nicht eher Verwirrung?
Vorlieben und Gewohnheiten
Sehfähigkeiten (Farben, Kontrast)
Ausgabegerät, insbesondere Helligkeit
Kapitel 11. Mit
aptitude
Vormerkungen machen
Alle Paketoperationen, die wir Ihnen im Grundlagenteil ausführlich
vorgestellt haben, wirken sich unmittelbar auf den aktuellen
Paketbestand auf ihrem System aus. Das entspricht auch den üblichen
Erwartungen im Alltag – Sie aktualisieren zuerst die lokale Liste der
Pakete mit
apt-get update
oder
aptitude update
(siehe
Abschnitt 8.41, „Pakete aktualisieren“
), wählen danach aus der Paketliste die Pakete
aus, die hinzukommen, aktualisiert werden oder zu entfernen sind und
führen anschließend die jeweilige Aktion mittels
aptitude install
Paketname
respektive
aptitude full-upgrade Paketname
bzw.
aptitude
remove Paketname
aus (siehe
Abschnitt 8.38, „Pakete installieren“
Abschnitt 8.41, „Pakete aktualisieren“
und
Abschnitt 8.43, „Pakete deinstallieren“
).
aptitude
kennt ein Konzept namens Vormerkungen. Es gestattet Ihnen,
Paketoperationen zunächst Schritt für Schritt vorzubereiten und diese
Vormerkungen zu einem späteren Zeitpunkt als Stapel auszuführen. Dazu
gehören alle Aktionen, die den Paketbestand auf ihrem System verändern,
wie bspw. die Installation, das Aktualisieren und das Entfernen von
Paketen.
aptitude
merkt sich die einzelnen Aktionen und arbeitet diese
ab, wenn Sie das Programm via
aptitude install
ohne weiteren
Paketnamen aufrufen.
Vormerkungen mit Synaptic
Nicht verschweigen möchten wir Ihnen, dass Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
) ein ähnliches benanntes Konzept bietet. Unter dem
Menüpunkt
Datei
verbergen sich die drei Einträge
Vorgemerkte
Änderungen Speichern
Vorgemerkte Änderungen Einlesen
und
Vorgemerkte Änderungen Speichern unter
. Hier werden ihre Vormerkungen
in einer von Ihnen festgelegten, lokalen Datei gespeichert, die Sie
jederzeit wieder einlesen und durch Synaptic ausführen lassen können.
Beachten Sie bitte, dass diese Vormerkungen in keinerlei Zusammenhang zu
den Vormerkungen durch
aptitude
stehen.
11.1. Vormerkungen über die Kommandozeile durchführen
Dafür bietet Ihnen
aptitude
den Schalter
--schedule-only
an. Dieser
Schalter ist gleichwertig zur Auswahl über die Textoberfläche und
beliebig mit Vormerkungen daraus mischbar.
In nachfolgender Ausgabe sehen Sie, wie Sie die Vormerkungen zur
Installation des Pakets
cssed
, zum Entfernen des Pakets
apt-doc
und der Aktualisierung des Pakets
iceweasel
samt dessen
Abhängigkeiten
libmozjs24d
und
xulrunner-24.0
durchführen. Das
abschließende Kommando
gibt Ihnen eine Übersicht zu den
Paketoperationen, die sich
aptitude
nun gemerkt hat und welche Pakete
zur Änderung anstehen (siehe auch
Abschnitt 11.3, „Bestehende Vormerkungen anzeigen“
).
Vormerkungen über die Kommandozeile durchführen.
# aptitude --schedule-only install cssed
# aptitude --schedule-only remove apt-doc
# aptitude --schedule-only upgrade iceweasel
Auflösen der Abhängigkeiten ...
# aptitude search '!~akeep'
id apt-doc - Dokumentation für APT
pi cssed - graphical CSS editor
iu iceweasel - Webbrowser auf Basis von Firefox
iu libmozjs24d - Mozilla SpiderMonkey JavaScript library
iu xulrunner-24.0 - XUL + XPCOM application runner
Vormerkungen wieder aufheben
Möchten Sie die gewählten Vormerkungen nicht ausführen und stattdessen
wieder rückgängig machen, heben Sie diese wieder auf. Die Details dazu
entnehmen Sie dem
Abschnitt 11.5, „Vormerkungen wieder aufheben“
11.2. Vormerkungen über die Textoberfläche durchführen
Um eine Paketoperation für eine spätere Verarbeitung vorzumerken, wählen
Sie zunächst das gewünschte Paket aus der Paketliste aus.
Tabelle 11.1, „Tastenkombination für Vormerkungen in
aptitude
stellt die Tastenkombinationen zusammen,
die Sie dafür benutzen können.
Tabelle 11.1. Tastenkombination für Vormerkungen in
aptitude
Taste
Bedeutung
Paket installieren oder aktualisieren (
install
oder
upgrade
Paket entfernen (
remove
Paket vollständig entfernen (
purge
Paketversion behalten (
keep
Paketversion dauerhaft beibehalten (
hold
Paket nochmals installieren (
reinstall
alle aktualisierbaren Pakete zur Aktualisierung vormerken
Drücken Sie die Taste
, erhalten Sie danach zunächst nur eine
Vorschau ihrer Vormerkungen (siehe
Abschnitt 11.3, „Bestehende Vormerkungen anzeigen“
). Drücken Sie die Taste
erneut, führt
aptitude
ihre Vormerkungen auch tatsächlich aus (siehe
Abschnitt 11.6, „Vormerkungen ausführen“
).
Ihre bereits gewählten Vormerkungen können Sie jederzeit wieder
aufheben. Die Details dazu entnehmen Sie
Abschnitt 11.5, „Vormerkungen wieder aufheben“
11.3. Bestehende Vormerkungen anzeigen
aptitude
kennt zwei Wege, um Ihnen diese Informationen anzuzeigen –
einerseits über die Kommandozeile und andererseits über die
Textoberfläche. Nachfolgend gehen wir davon aus, dass Sie die gewünschten
Aktionen bereits vorbereitet haben (siehe dazu
Abschnitt 11.1, „Vormerkungen über die Kommandozeile durchführen“
und
Abschnitt 11.2, „Vormerkungen über die Textoberfläche durchführen“
).
Über die
Kommandozeile
ist
aptitude
recht auskunftsfreudig. Dazu
benutzen Sie das Unterkommando
mit der Option
~akategorie
oder als Langform
?action(kategorie)
. Als Wert für die Kategorie
können Sie eines der folgenden Werte angeben:
install
listet alle Pakete auf, die installiert werden (siehe
Abschnitt 8.38, „Pakete installieren“
upgrade
listet alle Pakete auf, die durch eine neuere Version ersetzt werden (siehe
Abschnitt 8.41, „Pakete aktualisieren“
downgrade
listet alle Pakete auf, die durch eine ältere Version ersetzt werden (siehe
Abschnitt 8.42, „Pakete downgraden“
remove
listet alle Pakete auf, die gelöscht werden (siehe
Abschnitt 8.43, „Pakete deinstallieren“
purge
listet alle Pakete auf, die vollständig gelöscht werden (siehe
Abschnitt 8.43, „Pakete deinstallieren“
hold
listet alle Pakete auf, deren Version explizit beibehalten wird (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
keep
listet alle Pakete auf, die automatisch beibehalten werden (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
Die nachfolgende Ausgabe ist das Äquivalent zu
Abbildung 11.1, „Paketoperationen anzeigen, die zur Ausführung anstehen“
im Terminal. Bitte beachten Sie dabei, dass
Sie die zusätzliche
aptitude
-Option mit der Kategorie in
Anführungszeichen einschließen, damit die ausführende Shell diese Option
nicht interpretiert und ggf. verändert.
Ausgabe der vorgemerkten Paketoperationen über die Kommandozeile.
# aptitude search '~ainstall'
pi cssed - graphical CSS editor
# aptitude search '~aremove'
id apt-doc - Dokumentation für APT
# aptitude search '~aupgrade'
iu iceweasel - Webbrowser auf Basis von Firefox
iu libmozjs24d - Mozilla SpiderMonkey JavaScript library
iu xulrunner-24.0 - XUL + XPCOM application runner
aptitude
kann Ihnen auch berichten, welche Pakete sich verändern und
nicht in dem bestehenden Zustand gehalten werden. Dabei hilft Ihnen die
Option
!~akeep
zum Unterkommando
. Die Liste der Pakete ist
deckungsgleich mit dem Ergebnis aus obiger Liste. In der linken Spalte
der Ausgabe sehen Sie den Paketstatus, gefolgt vom Paketnamen und der
Kurzbeschreibung des Pakets in der rechten Spalte.
Pakete darstellen, die nicht in dem bestehenden Zustand gehalten werden.
# aptitude search '!~akeep'
id apt-doc - Dokumentation für APT
pi cssed - graphical CSS editor
iu iceweasel - Webbrowser auf Basis von Firefox
iu libmozjs24d - Mozilla SpiderMonkey JavaScript library
iu xulrunner-24.0 - XUL + XPCOM application runner
Darstellung der Pakete, die aktualisiert werden können
Um herauszufinden, welche weiteren Pakete aktualisierbar wären, lesen
Sie das Vorgehen unter Aktualisierbare Pakete anzeigen in
Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“
nach.
In der
Textoberfläche
drücken Sie hingegen die Taste
Daraufhin sehen Sie eine Darstellung ähnlich zu
Abbildung 11.1, „Paketoperationen anzeigen, die zur Ausführung anstehen“
, in der die einzelnen Paketoperationen
gruppiert sind. Als Kategorien bestehen derzeit:
Pakete, die automatisch in ihrem derzeitigen Zustand gehalten werden
(siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
),
Pakete, die installiert werden (siehe
Abschnitt 8.38, „Pakete installieren“
),
Pakete, die zurückgehalten werden (siehe
Abschnitt 2.15, „Lokale Paketmarkierungen“
),
Pakete, die entfernt werden (siehe
Abschnitt 8.43, „Pakete deinstallieren“
) und
Pakete, die aktualisiert werden (siehe
Abschnitt 8.41, „Pakete aktualisieren“
).
aptitude
zeigt Ihnen nur die Kategorien an, in denen überhaupt
Paketoperationen stattfinden. Alle anderen Kategorien werden von
vornherein ausgeblendet. Im vorliegenden Fall ist nur das Paket
cssed
zur Installation vorgemerkt,
apt-doc
wird hingegen entfernt und
iceweasel
von der Version
24.8.0esr-1~deb7u1
auf
24.8.1esr-1~deb7u1
aktualisiert. Zwei weitere Pakete werden ebenfalls
aktualisiert, sind aber in der Auflistung nicht sichtbar.
Jede Paketoperation wird gesondert farblich hervorgehoben, damit Ihnen
auch optisch deutlich wird, was mit den ausgewählten Paketen passieren
wird. Mehr zur Kennzeichnung durch die verschiedene Farben lesen Sie in
Abschnitt 6.3.2, „
aptitude
und
Abschnitt 10.12, „
aptitude
-Farbschema anpassen“
Abbildung 11.1. Paketoperationen anzeigen, die zur Ausführung anstehen
Änderungen der Vormerkungen
In der Vorschau können Sie nochmals die vorgemerkten Paketoperationen
verändern. Die Ansicht wird dabei aber nicht automatisch neu aufgebaut.
11.4. Vormerkungen simulieren
Insbesondere bei vielen Vormerkungen oder wenn Sie grundlegende Pakete
ändern, geht mitunter die Übersicht verloren, welche Pakete in der
Gesamtheit überhaupt betroffen sind. Um vorher auszuprobieren, was
passieren wird, wenn Ihre Vormerkungen durch
aptitude
ausgeführt
werden, bietet Ihnen das Programm daher die entsprechende Option
-s
(Langform
--simulate
) an. Die nachfolgende Ausgabe zeigt das Ergebnis
der Simulation für die vorgemerkten Paketoperationen analog zu
Abbildung 11.1, „Paketoperationen anzeigen, die zur Ausführung anstehen“
in
Abschnitt 11.3, „Bestehende Vormerkungen anzeigen“
Zukünftige Aktionen auflisten durch Simulation.
# aptitude install -s
Die folgenden NEUEN Pakete werden zusätzlich installiert:
cssed
Die folgenden Pakete werden ENTFERNT:
apt-doc
Die folgenden Pakete werden aktualisiert:
iceweasel libmozjs24d xulrunner-24.0
3 Pakete aktualisiert, 1 zusätzlich installiert, 1 werden entfernt und 19 nicht aktualisiert.
22,9 MB/23,7 MB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 1.909 kB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?]
Pakete würden heruntergeladen/installiert/entfernt werden.
Automatisches Ausführen
Kombinieren Sie obigen
aptitude
-Aufruf zur Simulation mit dem
Parameter
-y
(Langform
--assume-yes
), entfällt die manuelle
Beantwortung der Frage „Möchten Sie fortsetzen?“. In diesem Fall
werden alle Fragen automatisch mit „Ja“ beantwortet.
11.5. Vormerkungen wieder aufheben
Natürlich bietet Ihnen
aptitude
auch die Möglichkeit, die bereits
bestehenden Vormerkungen wieder aufzuheben. Für die
Kommandozeile
verfügt
aptitude
über ein Unterkommando namens
keep-all
. Sie rufen
es ohne weitere Optionen auf, wie Ihnen die nachfolgende Ausgabe zeigt.
Aufheben der Vormerkungen.
# aptitude keep-all
Es werden keine Pakete installiert, aktualisiert oder entfernt.
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 22 nicht aktualisiert.
0 B an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.

In der
Textoberfläche
wählen Sie stattdessen den äquivalenten
Menüpunkt
Aktionen
Noch ausstehende Aktionen abbrechen
aus (siehe
Abbildung 11.2, „Vormerkungen abbrechen“
).
Abbildung 11.2. Vormerkungen abbrechen
11.6. Vormerkungen ausführen
Nachdem Sie die gewünschten Paketoperationen zusammengestellt,
vorgemerkt und überprüft haben, fehlt noch der abschließende Schritt –
die Umsetzung. In der
Kommandozeile
genügt es vollkommen, wenn Sie
aptitude
mit dem Unterkommando
install
ohne weitere Paketnamen
aufrufen. Zusätzliche Parameter sind in diesem Fall nicht erforderlich.
# aptitude install
Die folgenden NEUEN Pakete werden zusätzlich installiert:
cssed
Die folgenden Pakete werden ENTFERNT:
apt-doc
Die folgenden Pakete werden aktualisiert:
iceweasel libmozjs24d xulrunner-24.0
3 Pakete aktualisiert, 1 zusätzlich installiert, 1 werden entfernt und 19 nicht aktualisiert.
22,9 MB/23,7 MB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 1.909 kB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] y
Holen: 1 http://security.debian.org/ wheezy/updates/main iceweasel i386 24.8.1esr-1~deb7u1 [2.873 kB]
Holen: 2 http://security.debian.org/ wheezy/updates/main xulrunner-24.0 i386 24.8.1esr-1~deb7u1 [18,4 MB]
69% [2 xulrunner-24.0 12,9 MB/18,4 MB 70%] 699 kB/s 10 s
...
Aktueller Status: 19 aktualisierbare Pakete [-3].
In der
Textoberfläche
erfolgt das mit der Taste
. Daraufhin
arbeitet
aptitude
ihre vorbereitete Liste der Vormerkungen ab.
11.7. Risiken und Seiteneffekte
Die Idee, die
aptitude
mit dem Konzept der Vormerkungen transportiert,
ist toll und ungemein praktisch. Es erleichtert komplexe Veränderungen
des Paketbestands auf Ihrem Debian-System. Es hilft Ihnen dabei, den
ganzen Arbeitsberg in handhabbare Einzelschritte zu zerlegen und später
„alles in einem Rutsch“ ablaufen zu lassen.
Sind Sie jedoch mit dem Konzept noch weniger vertraut, lauern kleine
Fallen, die durchaus für Überraschungen sorgen können.
aptitude
merkt sich, welche Vormerkungen Sie über die
Textoberfläche
vorgenommen haben. Beenden Sie
aptitude
mittels
, speichert es die Vormerkungen. Brechen Sie
aptitude
hingegen
mit
Ctrl
ab, werden die Vormerkungen nicht aktualisiert und
bleiben so, wie sie bisher sind.
Nutzen Sie
aptitude
eher selten, ist nicht auszuschließen, dass Sie
die vorher gemerkten Aktionen inzwischen nicht mehr präsent haben. In
Folge können Änderungen des Paketbestands passieren, die Sie (nicht
mehr) zuordnen können. Wir raten Ihnen daher, vorher die eventuell
bereits bestehenden Vormerkungen zu prüfen (siehe
Abschnitt 11.3, „Bestehende Vormerkungen anzeigen“
) und erst danach weitere Änderungen
im Paketbestand zu veranlassen.
Wechseln Sie in der Benutzung zwischen
aptitude
und anderen
Paketverwaltungsprogrammen hin und her, wird es auch sehr spannend. APT
weiß bspw. nichts von den Vormerkungen seitens
aptitude
und kann diese
daher auch nicht berücksichtigen. Verwirrung auf allen Seiten ist hier
zu erwarten und gegebenenfalls werden andere Paketoperationen
ausgeführt, als sie beabsichtigt haben (siehe dazu auch
Kapitel 12,
APT und
aptitude
mischen
).
Kapitel 12. APT und
aptitude
mischen
12.1. Hintergrund
Immer wieder taucht die Frage auf, ob APT und
aptitude
identisch sind
oder sich beide Werkzeuge im Alltag miteinander kombinieren lassen. Aus
unserer Sicht sollte Ihnen als Leser bisher mehr als deutlich geworden
sein, dass zwar beide Werkzeuge das gleiche Ziel verfolgen, jedoch etwas
anders „ticken“. Zu klären ist daher, ob sich beide Werkzeuge bei
deren gemischter Verwendung wechselseitig ins Gehege kommen und welche
Situationen unkritisch sind.
Für viele Nutzer stellt sich die Frage nicht, weil die Präferenz für ein
bestimmtes Programm seit längerem feststeht und dieses aus purer
Gewohnheit für die Erledigung aller Aufgaben im Kontext der
Paketverwaltung verwendet wird — egal, wie umständlich das auch ist.
Müssen Sie Beispielanleitungen oder auch HowTos nachvollziehen, wird es
jedoch sehr spannend. Da besteht keinerlei Einheitlichkeit und zeitweise
wird APT beschrieben, ein andermal
aptitude
genutzt. Da blindes
Vertrauen nie gut ist, sollten Sie einschätzen können, was passiert,
wenn Sie der Anleitung folgen und „den anderen“ Paketmanager
verwenden. Es hilft Ihnen auch dabei, zu wissen, wie Sie die
beschriebenen Aktionen in die Handlungsschritte für den Paketmanager
übersetzen, den Sie bevorzugen.
Darüber nachdenken führt dazu, dass Sie Ihren Arbeitsfluss Revue passieren
lassen und die Handhabung der Programme im Alltag hinterfragen. Dabei
können sich Gewohnheiten verändern und Blickwinkel erweitern. Eine
Antwort auf die Fragen „Welches Programm erleichtert mir die Aufgaben?
Was kann es besonders gut, was ist praktikabel und was nicht?“ eröffnet
sich.
12.2. Sollten Sie das überhaupt machen?
An diesem Punkt sind Pro und Contra genau abzuwägen. Diese Abschätzung
fällt natürlich leichter, umso mehr Sie mit den einzelnen Werkzeugen zur
Paketverwaltung vertraut sind.
Dafür spricht die grundlegende Philosophie, auf der UNIX/Linux-Systeme
basieren. Setzen Sie ein Programm stets genau für die Aufgabe(n) ein,
für die es am besten passt. Zudem hat jedes Werkzeug Eigenschaften, mit
denen es sich von anderen abhebt und womit Sie bestimmte Aufgaben
besonders schnell oder möglichst gut erledigen können.
Dagegen spricht, dass die Programme in kleinen Details verschieden sind,
auch wenn sie in der Gesamtheit das gleiche Ergebnis liefern. Ins
Gewicht fällt hierbei insbesondere die Synchronisation der Informationen
bzgl. Status und Vormerkungen zu den Softwarepaketen zwischen
dpkg
APT und
aptitude
, was bislang nicht vollständig erfolgt. Damit Sie
zwischen den verschiedenen Programmen wechseln können, muss jedes wissen,
was das andere macht bzw. gemacht hat, oder eben nicht macht. Das ist
derzeit noch nicht gegeben und wächst erst Stück für Stück zusammen.
Und nun? Mischen gelingt Ihnen sorgenfrei, wenn Sie wissen, was Sie tun
und wie die einzelnen Werkzeuge zusammenspielen. Für den Zusammenhang
zwischen
dpkg
, APT,
aptitude
empfehlen wir Ihnen das Kapitel
Zusammenspiel von dpkg und APT in
Abschnitt 2.5, „Zusammenspiel von dpkg und APT“
Sind Sie sich diesbezüglich noch unsicher, kombinieren Sie am besten
zunächst nur die Aktionen, die ungefährlich sind und lesen die
benötigten Details zu den beteiligten Werkzeugen nach, bevor Sie diese
kreuz und quer einsetzen.
12.3. Was ist zu beachten, wenn Sie das machen
Unkritisch sind in jedem Fall alle Paketoperationen, bei denen Sie nur
lesend
auf den Paketbestand zugreifen, d.h. es in diesem nicht zu
einer Veränderung kommt. Dazu zählen z.B. das Erfragen des Paketstatus
(siehe
Abschnitt 8.4, „Paketstatus erfragen“
), die Liste der installierten Pakete
anzeigen und deuten (siehe
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
), die neuen
Pakete anzeigen (siehe
Abschnitt 8.8, „Neue Pakete anzeigen“
), die Pakete nach
Prioritäten finden (siehe
Abschnitt 8.9, „Pakete nach Prioritäten finden“
), die
Installationsgröße eines Pakets bestimmen (siehe
Abschnitt 8.15, „Installationsgröße eines Pakets“
), die Paketabhängigkeiten
anzeigen (siehe
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
), die Herkunft der
Pakete klären (siehe
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
) und über
den Paketinhalt suchen (siehe dazu
Abschnitt 8.24, „Paket zu Datei finden“
und
Abschnitt 8.26, „Paketinhalte anzeigen“
).
Definitiv als bedenklich schätzen wir ein, wenn Sie APT und
aptitude
im fliegenden Wechsel für alle Paketoperationen benutzen, bei denen der
Paketbestand
verändert wird
oder entsprechende Vormerkungen dazu
getroffen werden. Weiterhin treten Seiteneffekte auf, wenn mehrere
Programme zur Paketverwaltung gleichzeitig geöffnet sind, bspw.
aptitude
, Synaptic und SmartPM. Jedes der genannten Werkzeuge
versucht, für die einzelnen Aktionen die Paketdatenbank exklusiv nutzen.
Funken an dieser Stelle andere Programme dazwischen, entstehen Konflikte
mit unvorhersagbarem Ergebnis.
Um Letzteres zu verhindern, raten wir Ihnen zur konsequenten Benutzung
des gleichen Werkzeugs. Zu den Operationen zählen z.B. das Beziehen und
Installieren eines Pakets (siehe
Abschnitt 8.34, „Paketdatei nur herunterladen“
Abschnitt 8.35, „Installation zwischengespeicherter Pakete aus dem Paketcache“
und
Abschnitt 8.38, „Pakete installieren“
) sowie das Ändern der Paketversion (siehe
Abschnitt 8.41, „Pakete aktualisieren“
und
Abschnitt 8.42, „Pakete downgraden“
) und Deinstallieren
bestehender Pakete (siehe
Abschnitt 8.43, „Pakete deinstallieren“
und
Abschnitt 8.44, „Umgang mit Waisen“
).
Im Alltag hat sich besipielsweise bewährt, dass Sie zunächst über die
Textoberfläche von
aptitude
oder die Debian-Webseite nach dem
passenden Paket suchen. In Folge installieren Sie die konkreten,
gewünschten Pakete via
apt-get
oder
apt
nach. Damit kombinieren Sie
eine graphische bzw. textbasierte Oberfläche mit der unmißverständlichen
Direktheit einer Kommandozeile.
12.4. Empfehlungen für Dokumentation und Beispiele
Stöbern Sie nach Beispielen zur Paketverwaltung oder auch in der
Dokumentation zu komplexeren Softwarepaketen, wird der stete Wechsel und
die Vermischung von
dpkg
, APT und
aptitude
offenkundig. Bislang hat
sich dazu noch kein Standard durchgesetzt, welches der vorgenannten
Werkzeuge zur Installation genutzt oder empfohlen wird. Jeder Entwickler
und Autor folgt an dieser Stelle seinen eigenen Präferenzen.
Verfassen Sie selbst Dokumentation, Beispiele oder Anleitungen, raten
wir Ihnen zu folgendem Vorgehen:
geben Sie die verwendeten Programme stets in identischer Art und Weise
an. Das betrifft insbesondere die Groß- und Kleinschreibung bzgl. APT
und
apt
, da sonst Gefahr zur Verwirrung besteht, welches Werkzeug
tatsächlich gemeint ist.
geben Sie bei den Optionen und Schaltern sowohl die genutzte Kurz- als
auch die Langversion an, sofern diese existieren und bekannt sind.
Erklären Sie zusätzlich, warum Sie die von Ihnen verwendeten Optionen
nutzen und diese in der genannten Reihenfolge Verwendung finden.
Mit diesen Schritten steigt das Verständnis des Kommandoaufrufs und
vereinfacht es nicht nur Einsteigern, vorab zu verstehen, was da
passieren soll. Der vollständige Aufruf mit Beschreibung klärt
Missverständnisse und hilft Ihnen auch dabei, Fehler zu vermeiden.
Bei der Benennung und Auswahl der Werkzeuge spielen Gewohnheit und die
Faulheit beim Tippen des Aufrufs eine Rolle. Nutzen Sie einen expliziten
Aufruf, der exakt so funktioniert und nicht anders, hilft neben einem
Hinweis auch ein wenig Hintergrundinformation zum Aufruf. Dazu zählen
insbesondere Seiteneffekte, von denen Sie wissen und die Sie durch die
spezifischen Parameter jedoch vermeiden möchten. Ein Verweis auf
Alternativen und zusätzliche Dokumentation rundet den Text ab.
Kapitel 13. Erweiterte Paketklassifikation mit Debtags
13.1. Einführung
Wie bereits in der Einführung zum Buch in
Teil I, „Konzepte“
deutlich
wurde, umfasst die Klassifikation der Pakete in Debian unterschiedliche
Stufen. Neben der Verfügbarkeit verschiedener Veröffentlichungen (siehe
Abschnitt 2.10, „Veröffentlichungen“
) erfolgt eine Paketzuordnung anhand der
Distributionsbereiche (siehe
Abschnitt 2.9, „Distributionsbereiche“
) und lediglich
einer möglichen
Softwarekategorie (siehe
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
). Ein Paket können Sie
auch auf der Grundlage des Paketnamens selektieren, sofern Sie sich mit
dieser etwas doch recht eigenen Logik vertraut fühlen.
Obwohl sich diese Vorgehensweisen über die letzten 20 Jahre bewährt
haben, ergeben sich daraus mittlerweile eine ganze Reihe von Problemen.
Diese rühren schlicht und einfach aus der schieren Anzahl an Paketen,
die inzwischen erfreulicherweise für Debian zur Verfügung stehen.
Der Paketüberblick geht verloren und die Auswahl und das Finden eines
bestimmten Pakets gerät mehr oder weniger zum zufälligen Ereignis.
Das Klassifikationsraster zur Einordnung der Pakete in die bestehenden
Softwarekategorien ist zu grob und lässt nur einen einzigen, vorher
bestimmten Blickwinkel zu. Der Maintainer eines Pakets muss daher genau
abwägen, welche Paketkategorie überwiegt oder am besten passt und trägt
diese Kategorie in der
control
-Datei des Debian-Pakets ein (siehe
„Aufbau eines Debian-Pakets“ in
Abschnitt 4.2.3, „Binärpakete“
).
Es ist keine Mehrfachzuordnung möglich, wenn ein Programm verschiedene
Aspekte umfasst und thematisch in unterschiedliche Kategorien passt.
Die Suche mittels APT und
aptitude
gelingt nur in der korrekten
Schreibweise über den Paketnamen bzw. einem Fragment daraus, alternativ
über ein Muster oder einen Begriff aus der Paketbeschreibung.
aptitude
gestattet Ihnen zwar dazu auch die Verwendung Regulärer Ausdrücke, setzt
aber den gekonnten Umgang damit voraus. Eine Recherche nach der
thematischen Ähnlichkeit, einer konkreten Eigenschaft des Pakets oder
dem Funktionsumfang ist nicht möglich. Ausführlich besprechen wir diese
Recherchemöglichkeiten bereits unter „Pakete über den Namen finden“ in
Abschnitt 8.20, „Pakete über den Namen finden“
Gelingt Ihnen die Recherche über die Paketkategorien oder den Namen des
Pakets nicht, geht das Paket in der Masse der Möglichkeiten unter und
bleibt letztendlich unentdeckt. Im Ergebnis führt das vor allem dazu, dass
Sie als Debian-Benutzer mehr und mehr Experte sein müssen, um sich
innerhalb der Debian-Paketliste zurechtzufinden. Für die Praxis heißt
das, dass Sie ungefähr wissen müssen, wo das betreffende Paket derzeit in
der Hierarchie eingeordnet wurde. Das Gefühl dafür erlangen Sie meist
erst im Laufe der Zeit. So toll es auch ist, dass Debian so vielfältig
bezüglich seiner Pakete ist, wird es doch zunehmend anspruchsvoller,
sich den Überblick über die Komponenten zu erarbeiten und diesen zu
behalten.
13.2. Kurzinfo zum Debtags-Projekt
Um den eingangs zunehmend stärker ins Gewicht fallenden Widrigkeiten zu
begegnen, nahm sich der italienische Debian-Entwickler Enrico Zini im
Jahre 2003 des Problems an. Er orientierte sich dabei an der Art und
Weise, wie Bücher und Dokumente von je her anhand von Schlüsselworten
und Kategorien indexiert und klassifiziert werden. Zur
Debian-Entwicklerkonferenz DebConf im Jahre 2005 in Helsinki
[DebConf5]
stellte er sein Projekt
Debtags
[Debian-Debtags]
vor, welches die Debianpakete und deren Beschreibung um geeignete
Stichworte oder Attribute ergänzt und damit die Granularität der Suche
deutlich erhöht. Seit Anfang 2016 ist die Webseite des Debtags-Projekts
Bestandteil der offiziellen Webseite des Debian-Projekts (siehe auch
„Debtags Webseite“
Abschnitt 13.3, „Webseite zum Projekt“
).
Der Projektname
Debtags
leitet sich von den beiden Worten
Debian
und
tags
ab, wobei sich letzteres mit Schlagwort, Markierung, Stichwort,
Etikettierung oder Attribut ins Deutsche übersetzen lässt. Enrico Zini
pflegt dazu das gleichnamige Paket
debtags
[Debian-Paket-debtags]
welches sehr schnell in den regulären Paketbestand aufgenommen wurde.
Seit Debian 4.0
Etch
sind die Debtags ein regulärer Bestandteil jeder
Paketbeschreibung.
Den hier angestoßenen Vorgang kennen Bibliothekare sowie Spezialisten
zum Information Retrieval und zur Suchmaschinenoptimierung – engl. SEO
als Abkürzung für Search Engine Optimization – unter dem Fachbegriff
Verschlagwortung von Inhalten und Indexierung von Dokumenten. Gleiche
Sachverhalte werden dabei durch einheitliche Begriffe repräsentiert. In
dem hier genutzten Klassifikationsschema entspricht ein verwendeter
Begriff einem Aspekt oder einer spezifischen Eigenschaft eines Pakets.
Jedes Paket kann beliebig viele Schlagworte besitzen, sogenannte
Mehrfachattribute oder Facetten. Daher heißt das Klassifikationsschema
auch Facettenklassifikation – englisch
faceted classification
. Die im
Schema verwendeten Begriffe orientieren sich an der Umgangssprache und
umfassen bspw.
interface
(Benutzerschnittstelle des Programms),
protocol
(verwendetes oder unterstütztes Netzwerkprotokoll) oder
works-with-format
(unterstütztes bzw. akzeptiertes Datenformat).
Sowohl die Liste der verwendeten Schlagworte, als auch die bereits
vergebenen Schlagworte für ein Paket können bei Bedarf von jedem
Interessierten unkompliziert ergänzt und korrigiert werden.
Als Datenbank zu den Schlagworten fungiert eine Textdatei, die sich
unter
/var/lib/debtags/vocabulary
befindet. Neben dem Hauptbegriff
(„Facette“) finden Sie eine Beschreibung und ggf. auch eine
Statusinformation. Nachfolgend sehen Sie einen Ausschnitt aus dem
Abschnitt
interface
Klassifikation der Benutzerschnittstelle über die Facette
interface
(Ausschnitt).
Facet: interface
Description: User Interface
What kind of user interface the package provides
Status: needing-review

Tag: interface::3d
Description: Three-Dimensional

Tag: interface::commandline
Description: Command Line

Tag: interface::text-mode
Description: Text-based Interactive
Wurden die Debian-Pakete entsprechend markiert, vereinfacht sich darüber
die Suche nach passenden Paketen erheblich (siehe „Vergebene
Schlagworte anzeigen“ in
Abschnitt 13.5, „Vergebene Schlagworte anzeigen“
und „Suche
anhand der Schlagworte“ in
Abschnitt 13.6, „Suche anhand der Schlagworte“
). Damit
profitieren Sie als Nutzer sofort von dem Klassifikationsschema und
können bei Interesse gleichzeitig zu dessen Komplettierung beitragen,
indem Sie Debianpakete, die noch unvollständig kategorisiert oder
gänzlich ohne Attribute sind, um weitere Schlagworte ergänzen. In Folge
haben alle Debian-Benutzer kurzfristig einen spürbaren Vorteil davon.
Innerhalb kürzester Zeit erfolgte zudem eine nahtlose Integration von
Debtags in die bestehenden Paketmanager, sodass das Feature allgemein
verfügbar wurde. Leider ist diese nützliche Eigenschaft bislang nicht
allen Benutzern präsent. Wir erhoffen uns einen höheren Verbreitungs-
und Nutzungsgrad, indem wir nachfolgend das Projekt und insbesondere
dessen Werkzeuge ausführlicher beleuchten.
13.3. Webseite zum Projekt
Koordiniert wird Debtags über die Webseite zum Projekt
[Debian-Debtags]
. Um ihrerseits am Projekt mitzuwirken, ist ein
SSL-Client-Zertifikat des Debian-Single-Sign-On-Services
[Debian-SSO]
erforderlich. Jeder Debian-Entwickler hat dort
automatisch ein Benutzerkonto. Externe und angehende Debian-Entwickler
können sich — trotz der Abschaltung der Alioth-Webseiten Anfang 2018 —
auf Anfrage ein Konto im noch laufenden Alioth-LDAP anlegen lassen
[Debian-SSO-Alioth]
und darüber sich ein Debian-Single-Sign-On
SSL-Client-Zertifikat erstellen lassen.
Auf der Projektseite finden Sie neben den Basisdaten eine ausführliche
Dokumentation inklusive der Informationen zum Application Programming
Interface (API) sowie zum genutzten Vokabular, d.h. den verwendeten
Schlagworten. Weiterhin gehört auch eine statistische Auswertung dazu,
um die Menge und die Verteilung der genutzten Schlagworte nachvollziehen
zu können
[Debian-Debtags-Statistics]
Über vorbereitete Formulare recherchieren Sie sowohl paketbezogen als
auch anhand der Schlagworte. Für jedes Paket werden Ihnen diese
angezeigt. Im
Debtags Editor
können diese von Ihnen ergänzt und
modifiziert werden (siehe
Abbildung 13.9, „Webseite zum Debtags-Projekt mit den Informationen zum Paket
gimp
). Alle darüber
vorgenommenen Änderungen fließen in das genutzte Vokabular und die
Datenbank zur Verwaltung und Speicherung der Schlagworte ein und werden
sofort wirksam. Bei einer späteren Veröffentlichung des
debtags
-Pakets
sind dann auch Ihre Beiträge ganz offiziell im aktualisierten Paket
enthalten und somit für alle Benutzer verfügbar.
Die Webseite ist hervorragend konzipiert und bildet im Vergleich zu den
später besprochenen graphischen Programmen eine recht einfach zu
bedienende Schnittstelle zu den cleveren Werkzeugen aus dem
debtags
-Paket. Diese Werkzeuge stellen wir Ihnen in
Abschnitt 13.4, „Debtags-Werkzeuge“
genauer vor.
13.4. Debtags-Werkzeuge
Mittlerweile hat das Debtags-Konzept entsprechende Verbreitung gefunden
und ist in einer ganzen Reihe von Werkzeugen verfügbar. Der
Funktionsumfang variiert dabei erheblich.
Das Herzstück auf der
Kommandozeile
bildet das Paket
debtags
[Debian-Paket-debtags]
. Dieses beinhaltet die Programme
debtags
debtags-fetch
und
debtags-submit-patch
. Ersteres zeigt Ihnen die
bereits vergebenen Schlagworte für ein Paket an und ermöglicht Ihnen
anhand der Schlagworte in der Paketdatenbank eine Suche (siehe dazu
Abschnitt 13.6, „Suche anhand der Schlagworte“
). Mit den anderen beiden Programmen
stöbern Sie im gesamten Vokabular („Schlagwortschatz“), nehmen darin
Veränderungen vor und laden ihre Änderungen zur zentralen
Vokabulardatenbank hoch (siehe
Abschnitt 13.8, „Verwendetes Vokabular bearbeiten und erweitern“
).
Ebenso unverzichtbar ist das Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
, welches Ihnen die Recherche im
Paketbestand erleichtert und dabei die vergebenen Schlagworte der Pakete
auswertet. Es stellt mehrere Programme bereit, die jedoch stets als
symbolische Links auf das Kommandozeilenwerkzeug
grep-dctrl
ausgeführt
sind und dieses mit spezifischen Parametern aufrufen. Dazu zählen
grep-available
grep-aptavail
grep-debtags
und
grep-status
Anwendungsbeispiele zu
grep-available
sind das Auflisten bekannter
Paketnamen (siehe
Abschnitt 8.3, „Bekannte Paketnamen auflisten“
) sowie das Finden
von Paketen anhand der Begriffe, die in der Paketbeschreibung enthalten
sind (siehe dazu
Abschnitt 8.21, „Pakete über die Paketbeschreibung finden“
). Während
Sie mittels
grep-aptavail
lediglich in der Liste der verfügbaren
Pakete und über den Namen der darin enthaltenen Dateien stöbern (siehe
ebenfalls
Abschnitt 8.3, „Bekannte Paketnamen auflisten“
und
Abschnitt 8.26, „Paketinhalte anzeigen“
), benutzt
grep-debtags
stattdessen
die vergebenen Debtags als Grundlage zur Recherche. Mit dem Werkzeug
grep-status
erfragen Sie hingegen den aktuellen Status eines Pakets
(siehe dazu mehr in
Abschnitt 8.4, „Paketstatus erfragen“
).
Eine kleine und zunächst unscheinbar wirkende Anwendung ist
ara
aus
dem gleichnamigen Debianpaket
[Debian-Paket-ara]
. Ebenso wie das
vorgenannte
grep-dctrl
stöbern Sie damit im Paketbestand. Mittels
boolescher Ausdrücke kombinieren Sie die gewünschten Suchfelder. Die
nachfolgende Ausgabe präsentiert einen Ausschnitt des Suchergebnisses in
tabellarischer Form bestehend aus dem Paketnamen, dessen Größe und dem
Paketmaintainer beispielhaft zu allen Debianpaketen, die zur Kategorie
utils
(Werkzeuge) gehören, zudem vom Window Manager XFCE abhängen oder
kleiner als 10000 Bytes sind und bzgl. der Priorität als
optional
eingestuft sind (siehe dazu
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
).
Recherche mittels
ara
nach optionalen Paketen zum Window Manager XFCE (Auswahl).
$ ara -fields Package,Size,Maintainer:30 -table 'section=utils & (depends:(xfce) | size<10000) & priority=optional'
+--------------------------------+------+--------------------------------+
| Package | Size | Maintainer |
+--------------------------------+------+--------------------------------+
| acpitail | 8340 | Debian Acpi Team | athena-jot | 9876 | Francesco Paolo Lovergine <... |
| autotrash | 9796 | Lorenzo De Liso | binclock | 9540 | Nico Golde |
| colortest-python | 9052 | Jari Aalto | createfp | 9982 | Rene Engelhard | ddir | 9776 | Jari Aalto | eatmydata | 7778 | Modestas Vainius | ksshaskpass | 9426 | Armin Berres | laptop-detect | 5212 | Otavio Salvador | leave | 7584 | Josip Rodin | zeitgeist | 7570 | Siegfried-Angel Gevatter Pu... |
| zinnia-utils | 5336 | IME Packaging Team | ziptorrent | 7714 | Fathi Boudra |
+--------------------------------+------+--------------------------------+
Die in
Abschnitt 6.4, „GUI zur Paketverwaltung“
bereits vorgestellten
graphischen
Werkzeuge
Synaptic, SmartPM, Gdebi und
PackageKit können bislang nicht mit dem Thema Debtags umgehen.
Stattdessen entstanden auf der Grundlage der Bibliotheken zu Debtags
mehrere Alternativen, die von Ihnen zum Teil ein sehr unübliches
Bedienritual erfordern. Dazu gehören PackageSearch
[Debian-Paket-packagesearch]
und Adept
[Debian-Paket-adept]
. Alle
Programme bieten die Suche anhand der Debtags über die Paketdatenbank
an und verfügen darüber hinaus auch über eine einfache Schnittstelle
zur Paketverwaltung.
Im Paket
goplay
[Debian-Paket-goplay]
verbergen sich die einzelnen
Werkzeuge
goadmin
golearn
gonet
gooffice
goplay
gosafe
goscience
und
goweb
. Jedes der genannten Programme ist auf eine
spezifische Paketkategorie von Debian ausgerichtet, so z.B.
goplay
auf
Spiele (siehe
Abbildung 13.1, „Suche nach Spielen anhand von Debtags“
),
golearn
auf Lernprogramme und
goscience
auf wissenschaftliche Werkzeuge (siehe dazu
Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
).
Abbildung 13.1. Suche nach Spielen anhand von Debtags
Als
Schnittstellen über den Webbrowser
stehen Ihnen
die Paketsuche über die Debian-Webseite zur Verfügung
[Debian-Debtags-Search]
. Bei den Suchergebnissen werden die Debtags
des jeweiligen Pakets von vornherein mit angezeigt (siehe
Abbildung 13.2, „Debian Tags zum Paket
xara-gtk
(zuletzt in Debian 9 Stretch)“
).
Eine Möglichkeit, Schlagworte zu Paketen zu ergänzen oder Schlagworte
zu korrigieren, besprechen wir in
Abschnitt 13.7, „Pakete um Schlagworte ergänzen“
genauer.
Abbildung 13.2. Debian Tags zum Paket
xara-gtk
(zuletzt in Debian 9 Stretch)
13.5. Vergebene Schlagworte anzeigen
13.5.1. Auf der Kommandozeile
Hier ist das Programm
debtags
mit Hilfe der Unterkommandos
cat
show
und
tag
am besten geeignet. Während
cat
für
alle
Pakete
deren hinterlegte Schlagworte auflistet, erfordern
show
und
tag
als
weitere Angabe im Aufruf noch den Namen des gewünschten Pakets. Zu
diesem stellt
debtags
dann alle Informationen detailliert dar. In den
ersten beiden Fällen kommt zusätzlich das UNIX-Werkzeug
grep
ins
Spiel, welches Ihnen aus der Ausgabe jeweils die spezifische Zeile mit
den Debtags herausfischt. Im ersten Fall benötigt
grep
den Paketnamen,
hier beispielhaft am Paket
xpdf
zu sehen.
Auflistung der vergebenen Schlagwörter samt Wert für das Paket
xpdf
anhand von
debtags cat
$ debtags cat | grep xpdf
xpdf: implemented-in::c++, interface::x11, role::program, scope::application, uitoolkit::motif, use::viewing, works-with-format::pdf, works-with::text, x11::application
Im zweiten Fall ist lediglich die Zeile mit dem Stichwort
Tag
interessant – nachfolgend wiederum beispielhaft am Paket
xpdf
zu
sehen.
Auflistung der vergebenen Schlagwörter samt Wert für das Paket
xpdf
anhand von
debtags show
$ debtags show xpdf | grep Tag
Tag: implemented-in::c++, interface::x11, role::program, scope::application, uitoolkit::motif, use::viewing, works-with-format::pdf, works-with::text, x11::application
Im dritten Fall erhalten Sie eine Auflistung mit einem Schlagwort pro
Zeile in alphabetisch aufsteigender Abfolge, was bspw. im Rahmen einer
Weiterverarbeitung durch Skripte nützlich ist. Für das Paket
xpdf
sieht das wie folgt aus:
Auflistung der vergebenen Schlagwörter samt Wert für das Paket
xpdf
anhand von
debtags tag ls
$ debtags tag ls xpdf
implemented-in::c++
interface::x11
role::program
scope::application
uitoolkit::motif
use::viewing
works-with-format::pdf
works-with::text
x11::application
Obige Ausgaben besagen, dass
xpdf
als X11-Programm mit einer
entsprechenden graphischen Schnittstelle einsortiert ist
interface::x11
x11::application
), welches zu den Anwendungen zählt
role::program
scope::application
) und genauer gesagt zu den
Betrachtern für PDF und Text gehört (
use::viewing
works-with-format::pdf
works-with::text
). Ersichtlich ist außerdem,
dass
xpdf
das Motif-Toolkit verwendet (
uitoolkit::motif
) und in der
Sprache C++ entwickelt wurde (
implemented-in::c++
).
Benötigen Sie zu einem Paket stattdessen lediglich die Namen der
vergebenen Schlagworte ohne deren konkreten Wert, erreichen Sie das über
den Aufruf von
debtags
mit Hilfe dessen Unterkommandos
grep
und des
Schalters
--facets
, welches Sie wiederum über das UNIX-Kommando
grep
und dem Paketnamen filtern. Nachfolgend sehen Sie das für die Recherche
zum Paket
apt-move
[Debian-Paket-apt-move]
Auflistung der vergebenen Schlagwörter ohne Wert für das Paket
apt-move
$ debtags grep --facets | grep apt-move
apt-move: hardware, implemented-in, interface, role, scope, suite, use, works-with
13.5.2. Integration in
aptitude
Sofern das Paket
debtags
auf Ihrem System installiert ist, stellt auch
aptitude
die hinterlegten Schlagworte als Zusatzinformationen zum gerade
von Ihnen ausgewählten Paket dar.
Abbildung 13.3, „Darstellung der Schlagworte zum Paket
xpdf
in
aptitude
zeigt
dies ebenfalls für den PDF-Betrachter
xpdf
und das gleichnamige Paket
dazu.
Abbildung 13.3. Darstellung der Schlagworte zum Paket
xpdf
in
aptitude
Dass die Übersetzung von Begriffen keine triviale Aufgabe ist, sehen Sie
in der Paketbeschreibung. Anstatt von Schlagwörtern wird in der
deutschen Version von
aptitude
der Begriff Markierungen benutzt, was
ebenfalls zutreffend ist.
13.5.3. Graphische Programme
Debtags zeigt Ihnen z.B. PackageSearch an, ebenso die bereits oben
genannten Programme aus dem Paket
goplay
. Alle Werkzeuge haben
gemeinsam, dass die Debtags-Informationen auf der rechten Seite der
Benutzeroberfläche zu finden sind – entweder in der oberen oder unteren
Hälfte.
Bei PackageSearch tragen Sie zuerst das gewünschte Paket über das
Suchfeld unten rechts ein und sehen danach die Debtags-Informationen im
darunter angeordneten Reiter
Details
13.5.4. Über den Webbrowser
Für diese Aktivität ist zunächst die Webseite des Debian-Projekts und
insbesondere der Unterpunkt
Paketsuche
[Debian-Paketsuche]
ein
zentraler Anlaufpunkt. Wie bereits eingangs erwähnt, listet Ihnen die
Paketsuche automatisch die vergebenen Schlagwörter für ein Paket auf
(siehe dazu
Abbildung 13.2, „Debian Tags zum Paket
xara-gtk
(zuletzt in Debian 9 Stretch)“
).
Ebenso aufschlussreich und noch deutlich ausführlicher ist der
Debtags
Editor
. Darüber sehen Sie nicht nur die vergebenen Schlagwörter für ein
Paket, sondern korrigieren diese bei Bedarf direkt. Mehr dazu erfahren
Sie in
Abschnitt 13.7, „Pakete um Schlagworte ergänzen“
13.6. Suche anhand der Schlagworte
13.6.1. Über die Kommandozeile
Suche mittels
debtags
Hier spielt wiederum das bereits zuvor eingesetzte Werkzeug
debtags
seine Stärken aus – diesmal mit den beiden Unterkommandos
grep
und
gefolgt von Schaltern und einer Liste der Suchbegriffe. Während
der Aufruf von
debtags grep
dabei lediglich die gesamte Zeile aus der
Paketdatenbank extrahiert, in der der von Ihnen gewählte Suchbegriff
vorkommt, liefert Ihnen
debtags search
lediglich den Paketnamen und
die Kurzbeschreibung zum Paket in einer einzigen Zeile zurück. Je nach
konkretem Anwendungsfall ist das ausgesprochen praktisch.
Dabei bestehen die
Suchbegriffe
aus einem Debtags-Eintrag. Dieser
Eintrag besteht wiederum aus drei Teilen – einem Schlagwort (Tag),
gefolgt von zwei Doppelpunkten (
::
) als Trennzeichen und dem
gewünschten Wert für das vorher benannte Tag. Korrekt sind bspw.
role::program
suite::debian
und
use::searching
. Im ersten
Beispielaufruf sehen Sie eine Suche nach den Paketen, die mit dem
Datenformat PDF umgehen können und daher entsprechend mit dem Schlagwort
works-with-format::pdf
markiert sind. Da die Liste recht lang ist,
umfasst das nachfolgende gezeigte Ergebnis lediglich die beiden Pakete
pdfgrep
und
pdfjam
mit ihren jeweiligen Schlagworten.
$ debtags grep "works-with-format::pdf"
...
pdfgrep: implemented-in::c++, role::program, scope::utility, use::searching, works-with-format::pdf, works-with::file
pdfjam: implemented-in::shell, interface::commandline, role::program, scope::utility, use::converting, works-with-format::pdf, works-with::text
...
Wie bereits oben angesprochen, sind im Aufruf ebenfalls verschiedene
Schalter zulässig. Geht es Ihnen ausschließlich um die Paketnamen, ist
für Sie der Schalter
--names
interessant. Damit beschränken Sie die
Ausgabe nur auf die Liste der Paketnamen. Die vergebenen Schlagworte
werden nicht mit ausgegeben. Die untenstehende Ausgabe enthält eine
Auswahl der Pakete, die Debian-spezifisch sind und daher das Schlagwort
suite::debian
tragen.
$ debtags grep --names "suite::debian"
adduser
alien
approx
apt
apt-build
apt-cacher
apt-cacher-ng
apt-doc
apt-dpkg-ref
apt-file
...
Über den Schalter
-i
(Langform
--invert
) erhalten Sie das umgekehrte
Suchergebnis, d.h. alle Treffer, in denen ihr Suchbegriff
nicht
enthalten ist. Benötigen Sie zu einem Paket stattdessen lediglich die
Namen der vergebenen Schlagworte ohne deren konkreten Wert, erreichen
Sie das über den Schalter
--facets
(siehe dazu
Abschnitt 13.5, „Vergebene Schlagworte anzeigen“
).
Für die Suche anhand mehrerer Schlagworte kombinieren Sie diese im
Aufruf mit zwei Kaufmanns-Und. Im nachfolgenden Beispiel sehen Sie eine
Suche nach den Spielen, die einerseits X11-tauglich sind und
andererseits als Simulation einsortiert wurden. Daher umfasst die
Recherche die beiden Tags
interface::x11
und
game::simulation
$ debtags search "game::simulation && interface::x11"
billard-gl - 3D billiards game
cultivation - game about the interactions within a gardening community
foobillard - 3D billiards game using OpenGL
gtkpool - simple pool billiard game written with GTK+
libopenscenegraph-dev - 3D scene graph, development files
libopenscenegraph80 - 3D scene graph, shared libs
lincity-ng - City simulator game with polished graphics
oolite - space sim game, inspired by Elite
opencity - 3D city simulator game
openssn - modern submarine tactical simulator
openttd - reimplementation of Transport Tycoon Deluxe with enhancements
pinball-dev - Development files for the Emilia Pinball Emulator
searchandrescue - fly aircraft to search (for) and rescue people in distress
simutrans - transportation simulator
singularity - game where one becomes the singularity
stormbaancoureur - simulated obstacle course for automobiles
An dieser Stelle hilft Ihnen auch das Paket
dctrl-tools
[Debian-Paket-dctrl-tools]
weiter – jetzt jedoch mit dem Programm
grep-debtags
. Mit dem nachfolgendem Aufruf erhalten Sie eine Liste
aller verfügbaren Pakete zu leichtgewichtigen Webbrowsern, die keinen
Bezug zum Kool Desktop Environment (KDE) haben. Über die beiden Schalter
-sPackage
und
-d
reduzieren Sie die Ausgabe auf den Paketnamen und
die einzeilige Paketbeschreibung,
-n
unterdrückt zusätzlich die
Feldnamen. Mehrere Suchkriterien kombinieren Sie mittels
-a
für ein
boolesches AND sowie
-a -!
für ein boolesches NAND.
$ grep-debtags -sPackage -d -n web::browser -a interface::x11 -a -! suite::kde
arora
simple cross platform web browser

chimera2
Web browser for X

dillo
Small and fast web browser

midori
fast, lightweight graphical web browser

xxxterm
Minimalist's web browser

Suche mit
axi-cache
Eine Alternative zum bereits zuvor vorgestellten Werkzeug
debtags
ist
das Programm
axi-cache
aus dem Paket
apt-xapian-index
[Debian-Paket-apt-xapian-index]
. Es sucht ebenfalls in der
Paketdatenbank anhand der Debtags nach passenden Paketen.
Der Aufruf folgt dem Schema
axi-cache search
Debtag
. Das hübsche an
axi-cache
ist, dass es die Ergebnisse nach Relevanz sortiert, sprich:
zuoberst erscheint der Treffer mit dem größten Grad der Übereinstimmung
mit dem Suchtreffer. Untenstehende Abbildung zeigt das Ergebnis nach der
Suche zum Tag
use::searching
Abbildung 13.4. Ergebnis der Paketsuche nach dem Tag
use::searching
mit Hilfe von
axi-cache
13.6.2. Textoberfläche von
aptitude
aptitude
gruppiert die Pakete ebenfalls anhand ihrer Schlagworte.
Diese zugegebenermaßen etwas versteckte Darstellung finden Sie im
Programm unter
Ansichten
Neuer Debtags-Browser
(siehe
Abbildung 13.5, „Auswahl des Debtags-Browsers in
aptitude
). Danach erhalten Sie eine Auswahlliste
anhand der Debtags und wählen darüber ihre Pakete wie gewohnt aus.
Abbildung 13.5. Auswahl des Debtags-Browsers in
aptitude
13.6.3. Graphische Programme
In dieser Kategorie bleiben aus der Liste der Werkzeuge zur
Paketverwaltung nur PackageSearch (siehe
Abbildung 13.6, „PackageSearch im Einsatz“
übrig. Bei PackageSearch stöbern Sie über die Liste oben rechts und
selektieren daraus die gewünschten Einträge.
Abbildung 13.6. PackageSearch im Einsatz
13.6.4. Suche über den Webbrowser
Eine webbasierte Recherche anhand der Debtags geht derzeit (noch) nicht
über die Paketsuche, auch wenn die Debtags im Suchergebnis bereits
angezeigt werden und anklickbar sind. Stattdessen stehen Ihnen der
Debtags Browser
[Debian-Debtags-Search]
und die
Debtags Cloud
[Debian-Debtags-Search-By-Tags]
zur Verfügung.
Die Schreibweise der Suchanfrage im Debtags Browser orientiert sich
dabei an den Gepflogenheiten im Web. Das Formular nimmt eine direkte
Eingabe der Debtags entgegen. In
Abbildung 13.7, „Suche anhand der Debtags über den Webbrowser“
sehen Sie das
Ergebnis einer Suche nach den Paketen, bei denen das Schlagwort
interface::commandline
hinterlegt ist und verifiziert wurde.
Abbildung 13.7. Suche anhand der Debtags über den Webbrowser
Die Recherche mit Hilfe der Debtags Cloud funktioniert etwas anders.
Die Grundlage dafür bilden bereits überprüfte, validierte Schlagworte
(sogenannte
reviewed tags
). Zunächst wählen Sie aus der „Wolke“ das
gewünschte Schlagwort aus, woraufhin in der Ergebnisliste darunter alle
Pakete aufgeführt werden, die mit diesem Schlagwort versehen sind (siehe
Abbildung 13.8, „Auswahl der Pakete anhand der Debtags Cloud“
). Jeder Listeneintrag umfasst den
Paketnamen, eine kurze Paketbeschreibung und alle bereits vergebenen
Schlagwörter. Der Paketname des Listeneintrags ist dabei ein Link, der
Sie direkt zum Debtags Editor bringt.
Aktivieren Sie einen Link in der „Wolke“ mit der Maus, erscheinen zwei
zusätzliche Symbole – ein zustimmender und ein abwertender Daumen.
Gleiches gilt für die Darstellung der ausgewählten Schlagworte in den
beiden linken Spalten, die mit
Good Tags
bzw.
Bad Tags
betitelt
sind. Über diese Symbole steuern Sie die Auswahl innerhalb der Wolke und
grenzen ihren Suchbereich genauer ein. Ein zustimmender Daumen erweitert
den Suchbereich, während ein abwertender Daumen den Suchbereich
entsprechend verringert.
Abbildung 13.8. Auswahl der Pakete anhand der Debtags Cloud
13.7. Pakete um Schlagworte ergänzen
Nach dem derzeitigen Entwicklungsstand besteht keine Möglichkeit, über
die Kommandozeile oder über graphische Werkzeuge die bereits vergebenen
Schlagworte zu einem Paket zu verändern. Dafür ist der webbasierte
Debtags Editor
[Debian-Debtags-Editor]
das Mittel der Wahl.
In
Abbildung 13.9, „Webseite zum Debtags-Projekt mit den Informationen zum Paket
gimp
sehen Sie diesen im Webbrowser Firefox/Iceweasel
und darin beispielhaft die Informationen des Pakets
gimp
zur
gleichnamigen Bildbearbeitungssoftware. Die Darstellung umfasst zwei
Spalten – links die Informationen zum ausgewählten Paket und rechts die
vergebenen Schlagwörter.
Abbildung 13.9. Webseite zum Debtags-Projekt mit den Informationen zum Paket
gimp
Unter der Paketinformation stehen die verfügbaren und automatisch
vorgeschlagenen Schlagwörter (Reiter
All tags
und
Suggested tags
).
Letzteres umfasst die Schlagworte, die eventuell noch fehlen und die Sie
ergänzen können, sofern Ihnen diese passend erscheinen. Die Vorschläge
basieren auf einem Automatismus, der sich auf ähnliche Pakete und deren
bereits bestehende Klassifikation stützt und lediglich Empfehlungen für
noch fehlende Schlagwörter gibt. Daher ist es hilfreich, die Vorschläge
kritisch zu prüfen und danach ggf. die gesamte Liste der Eigenschaften
des Pakets durchzugehen. Dabei prüfen Sie am besten Schritt für Schritt,
ob alle Schlagworte stimmig vergeben wurden. Alle verfügbaren
Schlagworte verbergen sich hinter dem Reiter
All tags
In der rechten Leiste erscheinen zunächst die derzeit vergebenen Tags
(bezeichnet mit
Current tags
). Darunter finden Sie die vorbereiteten
Änderungen, bezeichnet mit
Changes
Nachdem Sie in der linken Spalte ein Schlagwort mit einem Mausklick
ausgewählt haben, wird dieses zunächst nur zur Liste der vorbereiteten
Änderungen hinzugefügt. Um eine dieser vorbereiteten Änderungen wieder
rückgängig zu machen, wählen Sie das entsprechende Schlagwort aus der
Liste der vorbereiteten Änderungen aus und entfernen es mit einem Klick
darauf. Sind Ihre vorbereiteten Änderungen vollständig, klicken Sie auf
den Knopf
Submit
und übertragen damit die Ergänzungen zum jeweiligen
Paket zur Debtags-Datenbank. Danach sind Ihre Änderungen sofort für alle
Benutzer verfügbar.
13.8. Verwendetes Vokabular bearbeiten und erweitern
Bislang lagen lediglich die Pakete und deren zugeordnete Schlagworte im
Blickfeld. Nun rückt das dabei genutzte Vokabular in den Mittelpunkt,
d.h. der dafür verwendete Wortschatz zur Klassifizierung der Pakete.
Die Federführung bei der Pflege übernimmt derzeit Enrico Zini, der Autor
des Debtags-Projekts. Zu beobachten ist jedoch über die letzten Jahre,
dass das Thema Verschlagwortung von den Benutzern verstärkt wahrgenommen
wird und ein größeres Interesse besteht, daran mitzuwirken. Die
vorgenommenen Veränderungen im Wortschatz reflektieren dabei einerseits
den Wandel im Paketbestand und andererseits das gestiegene Bedürfnis der
Debiananwender nach einer möglichst zielgenauen Recherchemöglichkeit zu
den Paketen mit Hilfe passender sprachlicher Mittel.
13.8.1. Alle verfügbaren Schlagworte anzeigen
Auf der
Kommandozeile
erhalten Sie diese Informationen über den Aufruf
debtags tagcat
. Zu jedem Eintrag sehen Sie eine kürzere und eine
ausführlichere Beschreibung, welche den Einsatzzweck des Schlagworts
näher beleuchtet.
Auflistung der verfügbaren Schlagworte (Ausschnitt).
$ debtags tagcat
Tag: accessibility::input
Description: Input Systems
Input Systems
Applies to input methods for non-latin languages as well as special input
systems.

...

13.8.2. Informationen zu Schlagworten anzeigen
Auf der
Kommandozeile
stehen Ihnen mehrere Möglichkeiten offen,
weitere Informationen zu den Schlagworten zu erhalten. Das Werkzeug
debtags
zeigt Ihnen die Schlagworte an, die sich mit einem bestimmten
Thema befassen. Dazu kennt es das Unterkommando
tagsearch
, welches Sie
um einen weiteren Begriff ergänzen. Die nachfolgende Ausgabe zeigt Ihnen
die hinterlegten Unterkategorien zum Schlagwort
mail
Anzeige aller verfügbaren Unterkategorien zum Schlagwort
mail
$ debtags tagsearch mail
mail (facet) - Electronic Mail
mail::TODO - Need an extra tag
mail::delivery-agent - Mail Delivery Agent
mail::filters - Filters
mail::imap - IMAP Protocol
mail::list - Mailing Lists
mail::notification - Notification
mail::pop - POP3 Protocol
mail::smtp - SMTP Protocol
mail::transport-agent - Mail Transport Agent
mail::user-agent - Mail User Agent
protocol::fidonet - FidoNet
protocol::finger - Finger
protocol::imap - IMAP
protocol::nntp - NNTP
protocol::pop3 - POP3
protocol::smtp - SMTP
system::server - Server
works-with::mail - Email
Mit dem Unterkommando
tagshow
erhalten Sie weitere Informationen zu
einem Schlagwort. Für die Facette
protocol::pop3
sieht das wie folgt
aus:
Anzeige der Informationen zu einer spezifischen Facette, hier
protocol::pop3
$ debtags tagshow "protocol::pop3"
Tag: protocol::pop3
Description: POP3
POP3
Post Office Protocol, a protocol to download emails from a mail server,
designed for users that have only intermittent connection to the Internet.

In contrast to IMAP server, messages that are downloaded via POP3 are not
supposed to stay on the server afterwards, since POP3 does not support
multiple mailboxes for one account on the server.

Link: https://en.wikipedia.org/wiki/Post_Office_Protocol
Link: http://www.ietf.org/rfc/rfc1939.adoc
Über die
Debtags-Webseite
sind Ihnen die Informationen zu einem
Schlagwort ebenfalls zugänglich. Verlinkt werden dabei auch die Pakete,
die mit diesem Schlagwort versehen sind (siehe
Abbildung 13.10, „Informationen zur Facette
protocol::pop3
).
Abbildung 13.10. Informationen zur Facette
protocol::pop3
13.8.3. Schlagworte bearbeiten
debtags diff
Dateiname
(Alternative
mkpatch
create a tag patch between the current tag database and the tag
collection
Dateiname
. Standard input is used if filename is not
specified.
debtags submit
Patchdatei
upload the given patch file to the central tag repository. If
Patchdatei
is omitted, mail the local tag modifications (uses
debtags-submit-patch
).
debtags tag add
Paket
Schlagworte
Füge die angegebenen Schlagworte für das Paket in der Debtags-Datenbank hinzu.
debtags tag rm
Paket
Schlagworte
Entferne die angegebenen Schlagworte aus der Debtags-Datenbank für das
genannte Paket.
debtags update
Collect package tag data from the sources listed in
/etc/debtags/sources.list, then regenerate the debtags tag database and
main index. It needs to be run as root.
debtags-fetch
fetch tag sources from /etc/debtags/sources.list
debtags-submit-patch
submit tag patches to
Kapitel 14. Mehrere Pakete in einem Schritt ändern
14.1. Mit
apt-get
APT kennt mehrere Varianten für diesen Schritt. In Variante eins geben
Sie beim Aufruf einfach mehrere Paketnamen in beliebiger Reihenfolge
hintereinander an. Dabei erfolgt die Trennung der Paketnamen durch
Leerzeichen. In Variante zwei schreiben Sie den Paketnamen nicht
explizit aus, sondern als Muster. APT löst dieses Muster auf und liefert
eine Liste der Paketnamen zurück, die auf das angegebene Muster passen.
In beiden Varianten erfolgt eine automatische Auflösung der
Paketabhängigkeiten durch APT — es wird halt nur aufwendiger. Bei der
Abarbeitung sortiert APT selbst und zwar automatisch so, dass die
Paketabhängigkeiten möglichst problemlos aufgelöst werden können.
Installation der drei Pakete
goplay
xara-gtk
und
debtags
in einem Rutsch.
# apt-get install goplay xara-gtk debtags
...
Dass, was oben mit dem Unterkommando
install
gezeigt wurde, geht auch
mit den anderen Unterkommandos wie bspw.
remove
purge
und
upgrade
14.2. Mit
aptitude
Im Vergleich zu APT hat
aptitude
deutlich mehr auf dem Kasten. Es
versteht hierbei nicht nur die Angabe mehrerer Pakete im Aufruf
(analog zu APT wie in
Abschnitt 14.1, „Mit
apt-get
beschrieben), sondern auch verschiedene, zusätzliche
Optionen beim
Aufruf
. Diese Optionen sind identisch zu den Tasten, die Sie in der
Textoberfläche bei den Vormerkungen anwenden (siehe dazu
Kapitel 11,
Mit
aptitude
Vormerkungen machen
und
Abschnitt 16.1.3, „Mit Aptitude“
).
Tabelle 14.1. Zusätzliche Optionen für den Aufruf bei
aptitude
Taste
Bedeutung
paketname
Paket installieren (
install
paketname
Paket entfernen (
remove
paketname
Paket vollständig inklusive Konfigurationsdateien entfernen (
purge
paketname
Paketversion behalten (
keep
paketname
Paketversion dauerhaft beibehalten (
hold
Jeder der nachfolgend genannten Aufrufe sorgt dafür, dass Sie das Paket
goplay
installieren,
xara-gtk
deinstallieren und
debtags
so
belassen (es auf
hold
setzen). Bitte beachten Sie, dass diese
Zusatzoptionen stets in Bezug zu den Unterkommandos zu sehen sind.
Installation mit
aptitude
und Zusatzoptionen.
# aptitude install goplay -xara-gtk =debtags
# aptitude remove xara-gtk +goplay =debtags
ToDo: Umfangreich:
aptitude
(6)
Tabelle welche gibts
Änderungen am [Y/n/?] Prompt
Kapitel 15. Ausgewählte Pakete aktualisieren
Bereits in „Pakete aktualisieren“ in
Abschnitt 8.41, „Pakete aktualisieren“
beleuchteten wir, wie Sie alle bereits bestehenden Pakete auf ihrem
Linuxsystem aktualisieren. Das hilft Ihnen dabei, dass alle Pakete
aus einem in etwa ähnlichen Veröffentlichungszeitraum stammen. Die
Abstimmung der Pakete aufeinander bleibt somit weitestgehend
konfliktfrei und es verringert die Wahrscheinlichkeit, dass bei
einem Wechsel der Veröffentlichung Probleme auftreten.
Nachfolgend zeigen wir Ihnen, wie Sie nur einzelne, ausgewählte
Pakete auf einen bestimmten, aktuelleren Stand bringen. Dieses
Vorgehen bringt es mit sich, dass die Anzahl der Softwarepakete
zunimmt, die explizit auf einem ausgewählten Stand gehalten werden
bzw. werden müssen, um die Paketabhängigkeiten zu erfüllen. Für die
Paketverwaltung heißt das, dass bei einer Veränderung des
Paketbestands mehr und insbesondere komplexere Bedingungen zu
berücksichtigen sind. Sie als Betreuer planen daher sicherheitshalber
für diesen Schritt und die Wartung ihres Systems etwas mehr Zeit ein.
15.1. Nur ein einzelnes Paket aktualisieren
Im Alltag sind häufig für mehrere Pakete gleichzeitig Aktualisierungen
verfügbar. Sowohl APT, als auch
aptitude
gestatten es Ihnen daher, nur
die Pakete zu erneuern, die Sie wünschen. Stets werden dabei die
Paketabhängigkeiten berücksichtigt und nur die Softwarepakete mit
einbezogen, die es betrifft.
15.1.1. Auf der Kommandozeile
Hier verstehen
apt-get
, APT und
aptitude
die beiden Unterkommandos
upgrade
und
dist-upgrade
, jeweils gefolgt von einer Liste von
Paketnamen. Ältere Versionen von APT können nicht damit umgehen und
ignorieren diese Liste.
Beispiel für Einzelaktualisierung von LibreOffice Calc und
python3-uno
mit
aptitude upgrade
# aptitude upgrade libreoffice-calc python3-uno
Auflösen der Abhängigkeiten ...
Die folgenden Pakete werden aktualisiert:
libreoffice libreoffice-base libreoffice-base-core libreoffice-base-drivers libreoffice-calc
libreoffice-core libreoffice-draw libreoffice-impress libreoffice-math libreoffice-writer python3-uno
11 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 29 nicht aktualisiert.
56,6 MB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?]
...
Automatische Aktualisierung bei der Installation
Ist ein Paket bereits installiert und Sie führen erneut das Kommando
aptitude install
Paketname
aus, wird es nach Möglichkeit durch eine
neuere Version ersetzt. Es entspricht in diesem Fall dem Aufruf
aptitude upgrade
Paketname
aptitude
mit seinen Unterkommandos
safe-upgrade
und
full-upgrade
nimmt hingegen schon länger Parameter entgegen. Dabei sind nicht nur
Paketnamen, sondern auch Suchausdrücke möglich. Bspw. erneuert der
Aufruf
aptitude full-upgrade '?section(libs)'
alle aktualisierbaren
Pakete aus der Kategorie
libs
(Bibliotheken).
Beispiel für Einzelaktualisierung mit
aptitude safe-upgrade
# aptitude safe-upgrade ure
Auflösen der Abhängigkeiten ...
Die folgenden Pakete werden aktualisiert:
libuno-cppuhelpergcc3-3 uno-libs-private ure ure-java
4 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 25 nicht aktualisiert.
1.848 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 0 B zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?]
...
15.1.2. Über die Textoberfläche von
aptitude
Zweig/Kategorie
Sicherheitsaktualisierungen
Paket markieren mit
Paketvorschau mit
Paketaktualisierung mit
ToDo: da muss aber noch mehr sein ….
15.1.3. Durchführung bei
Synaptic
siehe
Abschnitt 6.4.1, „Synaptic“
Auswahl der Kategorie
Aktualisierbar (Upstream)
Rechtsklick auf Eintrag in der Paketliste
Auswahl
Zum Aktualisieren vormerken
15.2. Aktualisierung mit Wechsel der Veröffentlichung
Frage/Problem:
Ich möchte alle Abhängigkeiten von
kdegames
von
unstable
auf
experimental
heben (da es noch kein neues
kdegames-Metapaket gibt, das von diesen Versionen abhängt und daher
apt-get -t experimental kdegames
gar nix macht).
Bisherige Lösung:
Aufruf zur Auswahl.
apt-get install -t experimental $( apt-cache depends kdegames | awk '{ print$4 }' )
Status:
geht, ist aber umständlich
kann man das einfacher machen? (ist eine Art pinning für ein einzelnes Paket)
Kapitel 16. Ausgewählte Pakete nicht aktualisieren
Die Paketverwaltung muss darüber Bescheid wissen, wenn Sie ein
bestimmtes Paket auf dem derzeitigen Stand belassen möchten. Dazu
existiert das Paketflag
hold
, welches Sie in dem Fall explizit
festklopfen müssen (siehe auch „Paketflags“ unter
Abschnitt 2.15, „Lokale Paketmarkierungen“
). Haben Sie das Flag gesetzt, wird das
Paket somit nicht weiter aktualisiert oder gelöscht, sondern in dem
derzeit bestehenden Zustand und der Version gehalten.
Ergebnis dieses Vorgehens ist, dass das Paket auf Ihrem Linuxsystem so
erhalten bleibt, wie es aktuell ist. Es gibt keine Veränderungen bzgl.
genutzter Schnittstellen und Abhängigkeiten zu anderen Paketen. Das ist
insbesondere dann sinnvoll, wenn eine ganz bestimmte Komponente benötigt
wird, die sich nicht verändern darf. Hintergrund können bspw.
Softwareunverträglichkeiten, Schnittstellenänderungen oder auch noch
nicht abgeschlossene Anpassungen sein. Sind diese umgesetzt, kann das
Paketflag dann wieder entfernt werden.
Dieses Vorgehen hat Fallstricke. Je länger Sie warten und das Paket
zurückhalten, umso stärker entwickelt sich das Drumherum weiter. In
Folge heißt das, dass Aktualisierungen schwieriger und insbesondere
aufwendiger werden. Bedenken Sie diesen Schritt daher gut.
16.1. Auf der Kommandozeile
16.1.1. Mit
dpkg
Das Werkzeug
dpkg
kennt dazu die beiden Optionen
--set-selections
zum Setzen einer Markierung und
--get-selections
zum Auslesen einer
Markierung. Um das Paket
vrms
[Debian-Paket-vrms]
zurückzuhalten,
benutzen Sie den folgenden Aufruf:
Das Paket
vrms
zurückhalten.
# echo "vrms hold" | dpkg --set-selections
Den geänderten Status des Pakets zeigen Sie mit einem kombinierten
Aufruf aus
dpkg
und
grep
wie folgt an:
Zustand des Pakets
vrms
anzeigen.
# dpkg --get-selections | grep -E '^vrms'
vrms hold
Um die Zurückbehaltung wieder aufzuheben, setzen Sie den hinterlegten
Wert von
hold
wieder auf
install
wie folgt:
Die Zurückbehaltung des Pakets
vrms
aufheben.
# echo "vrms install" | dpkg --set-selections
16.1.2. Mit
apt-mark
Zu APT gehört das Werkzeug
apt-mark
aus dem Paket
apt
[Debian-Paket-apt]
. Hier kommen die drei Unterkommandos
hold
unhold
und
showhold
ins Spiel.
apt-mark
akzeptiert als
Parameter eine Liste der Paketnamen und kann somit die Aktion für
mehrere Pakete durchführen. Die nachfolgenden Ausgaben zeigen das
Vorgehen für das Paket
wireshark
Das Zurückbehalten eines Pakets gelingt mit dem Unterkommando
hold
wie folgt:
Aufruf von
apt-mark
zum Setzen der Markierung
hold
für das Paket
wireshark
# apt-mark hold wireshark
wireshark auf Halten gesetzt.
Den Status des Pakets
wireshark
zeigen Sie mit dem Unterkommando
showhold
an:
Information zum Paket
wireshark
, welches zurückgehalten wird.
# apt-mark showhold wireshark
wireshark
Um die Zurückbehaltung wieder aufzuheben, rufen Sie
apt-mark
mit
dem Unterkommando
unhold
auf:
Entfernen der Markierung
hold
für das Paket
wireshark
mittels
apt-mark
# apt-mark unhold wireshark
Halten-Markierung für wireshark entfernt.
16.1.3. Mit Aptitude
Was
dpkg
und APT können, kann Aptitude auch, aber noch etwas
detaillierter. Es kennt dazu die fünf Unterkommandos
hold
unhold
keep
keep-all
und
show
hold
steht dafür, daß eine aktive Installation, ein Upgrade oder
eine Entfernung abgebrochen und verhindert wird, ebenso dass dieses
Paket in Zukunft automatisch aktualisiert wird. Es führt zudem dazu,
dass dieses Paket von zukünftigen Aufrufen mit
aptitude safe-upgrade
oder
aptitude full-upgrade
ignoriert wird. Das Unterkommando
unhold
hebt diesen Zustand wieder auf.
keep
bedeutet, daß jede Installation, Entfernung oder Aktualisierung
des Pakets abgebrochen und unterbunden wird. Im Gegensatz zu
hold
verhindert dies keine automatischen Upgrades in der Zukunft. Das
Unterkommando
keep-all
weitet diese Aktion auf alle Pakete aus.
Die nachfolgenden Ausgaben zeigen das Vorgehen für das Paket
wireshark
. Das Zurückbehalten gelingt mit dem Unterkommando
hold
wie folgt:
Aufruf von
aptitude
zum Setzen der Markierung
hold
für das Paket
wireshark
# aptitude hold wireshark
Den Status des Pakets
wireshark
zeigen Sie mit dem Unterkommando
show
in Kombination mit
grep
an:
Information zum Paket
wireshark
, welches zurückgehalten wird.
# aptitude show wireshark | grep Zustand
Zustand: Installiert [zurückgehalten]
Um die Zurückbehaltung wieder aufzuheben, rufen Sie
aptitude
mit
dem Unterkommando
unhold
auf:
Entfernen der Markierung
hold
für das Paket
wireshark
mittels
aptitude
# aptitude unhold wireshark
16.2. Textoberflächen
16.2.1. Mit Aptitude
Hier gelten die gleichen Erklärungen zu den Zustandsveränderungen, wie
bereits in
Abschnitt 14.2, „Mit
aptitude
und
in
Abschnitt 16.1.3, „Mit Aptitude“
beschrieben.
Über die Textoberfläche steuern Sie die Aktionen wie folgt:
halten (
hold
) über den Menüpunkt „Paket“ → „Zurückhalten“
halten (
keep version
) über den Menüpunkt „Paket“ → „Beibehalten“
Den gesetzten Zustand setzen Sie bspw. über den Menüpunkt „Aktionen“ →
„Noch ausstehende Aktionen abbrechen“ zurück. Das entspricht dem
Unterkommando
keep-all
16.2.2. Mit Nala
Nala (siehe
Abschnitt 6.3.3, „Nala“
) kann derzeit keine Zustandsveränderungen auslesen
und setzen.
16.3. Graphische Programme
16.3.1. Synaptic
Synaptic bietet dazu den Menüpunkt „Paket“ → „Version sperren“
(siehe
Abbildung 16.1, „Setzen des Paketflags
hold
in Synaptic“
). Ein so markiertes Paket wird farbig in
der Auswahlliste der Pakete hervorgehoben (default: rot). Zusätzlich
erscheint ein Symbol eines Hängeschlosses über dem Auswahlkästchen und
es ist im Kontextmenü mit den Paketaktionen (erreichbar über die
rechte Maustaste) nicht mehr aufrufbar — nur noch über das Menü. Das
gelingt nur bei bereits installierten Paketen.
Abbildung 16.1. Setzen des Paketflags
hold
in Synaptic
16.3.2. Mit Apper
Apper (siehe
Abschnitt 6.4.4, „PackageKit“
) kann derzeit keine Zustandsveränderungen
auslesen und setzen.
Kapitel 17. Fehlende Pakete bei Bedarf hinzufügen
Bisher haben wir reguläre Debian-Installationen betrachtet. Hierbei
ist der Bestand installierter Software statisch in dem Sinne, dass
nur Sie als Systemadministrator entscheiden, wenn Pakete erneuert,
hinzugefügt oder entfernt werden. Ist ein Paket nicht installiert,
können Programme daraus nicht benutzt werden und ihre Shell macht
Sie darauf mit einem passenden Hinweis aufmerksam.
Ändert sich der Bedarf, bspw. indem neue Hardware hinzukommt, wäre es
cool, wenn das Debian-System diesen Bedarf erkennen würde und
zumindest passend darauf reagieren könnte. Gleiches gilt für Software,
deren Fehlen im laufenden Betrieb bemerkt wird, bspw. indem ihnen das
entsprechende Paket vorgeschlagen wird, in welchem sich die Software
befindet. Womit beide Szenarien umsetzbar sind, lesen Sie nachfolgend.
17.1. Neue Hardware
Die Auswahl der installierten Pakete auf Ihrem System orientiert sich
an den Hardwarekomponenten, die im System verbaut wurden und in
Benutzung sind. Ändert sich daran etwas — bspw. Hardware wird
ausgetauscht oder hinzugefügt — werden mitunter auch andere
Kernelmodule zur Unterstützung dieser neuen Komponenten benötigt.
Etwas mühselig ist es, durch eigene Experimente Gewissheit zu
bekommen, welche Pakete aufgrund des Komponentenwechsels entfernt und
ergänzt werden müssen. In diesem Fall kommen die beiden Pakete
isenkram
[Debian-Paket-isenkram]
und
isenkram-cli
[Debian-Paket-isenkram-cli]
des norwegischen Entwicklers Petter
Reinholdtsen ins Spiel. Dieses hat zwar bereits den Status
stable
steht aber unter sehr aktiver Entwicklung.
Hinter Isenkram — dänisch und norwegisch für Eisenwaren (
Hardware
) — verbirgt sich eine Art Benachrichtigungsdienst, der überprüft, ob
die benötigten Pakete für die neue Hardware bereits auf ihrem System
installiert sind. Falls nicht, werden diese (automatisch) nachgezogen.
Dazu klinkt es sich als zusätzliches Modul in die Konfiguration von
Tasksel ein (siehe
Abschnitt 6.3.1, „tasksel“
).
Das Modul wird vom Paket
isenkram-cli
[Debian-Paket-isenkram-cli]
bereitgestellt und nach dessen Installation unter unter
/usr/share/tasksel/descs/isenkram.desc
abgelegt. Es beinhaltet die
notwendige Beschreibung für den Menüeintrag, den Tasksel dann anzeigt,
nachfolgend beispielhaft für den Eintrag
isenkram-firmware
zu sehen.
Menüeintrag zu Isenkram für Tasksel (Ausschnitt).
$ cat /usr/share/tasksel/descs/isenkram.desc
...
Task: isenkram-firmware
Section: hardware
Description: Hardware specific firmware packages (autodetected by isenkram)
Based on the detected hardware various hardware specific firmware
packages are proposed.
Test-new-install: mark show
Relevance: 8
Packages: for-current-hardware-firmware
Abbildung 17.1. Zusätzliche Menüeinträge in Tasksel
Als nächstes stellen wir Ihnen die einzelnen Werkzeuge und deren Funktionen
genauer vor, die sich in den Paketen befinden.
17.1.1. Passende Pakete mit
isenkram-lookup
finden
Das Werkzeug
isenkram-lookup
aus dem Paket
isenkram-cli
[Debian-Paket-isenkram-cli]
gleicht die Hardware ihres Systems mit
den Einträgen in den Paketlisten ab und sucht daraus die Pakete
heraus, die für ihre Maschine relevant sind. Ein Durchlauf auf einem
Lenovo ThinkPad unter Debian 12.6
Bookworm
brachte nachfolgende
Liste hervor, die bspw. Pakete wie
tpb
[Debian-Paket-tbp]
thinkfan
[Debian-Paket-thinkfan]
und
gkrellm-thinkbat
[Debian-Paket-gkrellm-thinkbat]
zur Steuerung ThinkPad-spezifischer
Komponenten beinhaltet. Das Paket
cheese
ist enthalten, da das Gerät
über eine Kamera verfügt, die über USB angeschlossen ist.
Module mit
isenkram-lookup
finden.
$ isenkram-lookup
bluez
cheese
ethtool
gkrellm-thinkbat
hdapsd
media-player-info
pidgin-blinklight
thinkfan
tlp
tp-smapi-dkms
tpb
Obige Liste kommt zustande, nachdem
isenkram-lookup
zuerst alle
Werte von
modalias
[modalias]
aus dem Verzeichnis
/proc
ausgelesen hat. Es versucht im Anschluss daran, passende Pakete zu
diesen
modalias
-Werten zu finden. Die ausgegebene Liste ist
alphabetisch anhand des Paketnames sortiert und umfasst keine
weiteren Angaben zum identifizierten Paket.
17.1.2. Hardware-spezifische Pakete mit
isenkram-pkginstall
lokalisieren
Das Werkzeug
isenkram-pkginstall
aus dem Paket
isenkram-cli
[Debian-Paket-isenkram-cli]
bietet alle zuvor von
isenkram-lookup
gefundenen Hardware-spezifischen Pakete zur Installation an, die zur
aktuellen Maschine passen.
ToDo:
kommt beim Debian-Installer zum Einsatz, um zu erkennen, welche Pakete beim Setup benötigt werden
wie unterscheiden sich
isenkram-pkginstall
und
isenkram-autoinstall-firmware
voneinander?
isenkram-autoinstall-firmware
wertet
dmesg
aus und sucht darin nach Ausgaben zu fehlenden Treibern
aktiviert dazu die Distributionsbereiche
contrib
non-free
und
non-free-firmware
in den Paketquellen, um an alle Pakete zu den Treibern zu kommen
17.1.3. Fehlende Firmware mit
isenkram-autoinstall-firmware
nachziehen
Mit dem Werkzeug
isenkram-autoinstall-firmware
aus dem Paket
isenkram-cli
[Debian-Paket-isenkram-cli]
gleichen Sie den
laufenden Linuxkernel mit der Hardware ihres Systems ab und
installieren fehlende Firmware-Pakete. Im folgenden Beispiel ist es
das Paket
firmware-misc-nonfree
[Debian-Paket-firmware-misc-nonfree]
und daraus das Modul
firmware-realtek-rtl8723cs-bt
für den Realtek-Chipsatz.
Nachinstallation von Paketen nach Ausführung von
isenkram-autoinstall-firmware
# isenkram-autoinstall-firmware
info: looking for firmware file iwl-debug-yoyo.bin requested by kernel
info: looking for firmware file iwl-debug-yoyo.bin requested by kernel
...
info: locating packages with the requested firmware files
info: determining whether enabling other components is required
info: trying to install firmware-misc-nonfree
firmware-realtek-rtl8723cs-bt
Vormals nicht ausgewähltes Paket firmware-misc-nonfree wird gewählt.
(Lese Datenbank ... 419694 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../firmware-misc-nonfree_20230210-5_all.deb ...
Entpacken von firmware-misc-nonfree (20230210-5) ...
Vormals nicht ausgewähltes Paket firmware-realtek-rtl8723cs-bt wird gewählt.
Vorbereitung zum Entpacken von .../firmware-realtek-rtl8723cs-bt_20181104-2_all.deb ...
Entpacken von firmware-realtek-rtl8723cs-bt (20181104-2) ...
firmware-misc-nonfree (20230210-5) wird eingerichtet ...
firmware-realtek-rtl8723cs-bt (20181104-2) wird eingerichtet ...
Trigger für initramfs-tools (0.142) werden verarbeitet ...
update-initramfs: Generating /boot/initrd.img-6.1.0-23-amd64
17.1.4. Passende Hardware identifizieren
Nicht immer ist es einfach, herauszufinden, ob eine gewünschte
Hardware auf ihrem Linux-System unterstützt wird. Die folgenden
beiden Projekte helfen Ihnen bei der Vorauswahl:
passende Hardware herausfinden: Linux-Hardware
[LinuxHardware]
passende Drucker identifizieren: OpenPrinting
[Openprinting]
17.2. Neue Software
17.2.1. Ausgangssituation
Das Setup auf ihrem Linux-System umfasst stets nur eine Auswahl an
Paketen. Wie Sie wissen, installieren Sie fehlende Pakete bei Bedarf
einfach über die Werkzeuge zur Paketverwaltung nach.
Geht es hingegen um unbekannte oder fehlende Werkzeuge, ist nicht
immer sofort klar, über welches Debianpaket diese bereitgestellt
werden. Wie Sie eine manuelle Suche anstoßen, erklären wir Ihnen
ausführlich unter
Paket zu Datei finden
in
Abschnitt 8.24, „Paket zu Datei finden“
Diesen Schritt zu automatisieren, kann den Prozess der Verwaltung von
Software vereinfachen und Zeit sparen. Wir klären nachstehend, wie Sie
fehlende Pakete identifizieren und diese einspielen lassen.
17.2.2. Empfehlungen mittels
command-not-found
Für einen Hinweis auf der Kommandozeile, welches Paket noch zusätzlich
installiert werden müsste, ist das Paket
command-not-found
[Debian-Paket-command-not-found]
die passende Lösung. Es sucht nach
aktuell nicht installierten, aber in den Repositories verfügbaren
Programmen. Dafür benutzt es eine eigene Datenbank, die im Verzeichnis
/var/cache/apt/apt-file
liegt.
Für die Bash und die Zsh funktioniert es automatisch. Diese stellen
eine Funktion
command_not_found_handle
bereit, an die das Werkzeug
command-not-found
andockt. Zur Recherche selbst greift es auf Python3
und das Werkzeug
apt-file
zurück.
Nach der Installation von
command-not-found
ist noch ein initialer
Schritt erforderlich: die interne Werkzeugdatenbank muß auf den
neuesten Stand gebracht werden. Dazu genügt ein Aufruf von
apt update
Ohne diesen Schritt meldet die Shell bei Ihnen Handlungsbedarf an.
Erster Aufruf nach der Installation des Paketes
command-not-found
$ yum
command-not-found Datenbank konnte nicht gefunden werden. Führen Sie »sudo apt update« aus, um sie zu füllen.
yum: Befehl nicht gefunden.
Nach der Aktualisierung der Paketliste mittels
apt update
zeigt sich
die Shell bereits versöhnlicher und liefert ihnen Vorschläge für
passende Pakete mit Werkzeugen mit gleichem oder ähnlich klingendem
Namen.
Ausgabe von
command-not-found
nach der Aktualisierung.
$ yum
Der Befehl 'yum' wurde nicht gefunden, meinten Sie:
Befehl 'uum' aus dem deb freewnn-jserver
Befehl 'num' aus dem deb quickcal
Befehl 'zum' aus dem deb perforate
Befehl 'sum' aus dem deb coreutils
Versuche: apt install
Diese zusätzliche Recherche ist schick, kommt aber mit einem kleinen
Nachteil. Es entsteht eine Verzögerung, nachdem Sie einen unbekannten
Befehl eingetippt haben. Dies beruht darauf, daß das Durchsuchen der
Paketdatenbank von
command-not-found
einen kurzen Moment benötigt.
Bei langsameren Systemen ist daher mit einer spürbaren Verzögerung zu
rechnen.
Von Zeit zu Zeit ist die Aktualisierung der Datenbank erforderlich,
die
command-not-found
benutzt. Mit Hilfe des Werkzeugs
update-command-not-found
erfolgt dieser Schritt. Dabei werden die
Einträge auf den neuesten Stand gebracht, auf die
apt-file
zur
Recherche zurückgreift.
Aufruf von
update-command-not-found
# update-command-not-found
Derzeit verfügt
update-command-not-found
über die folgenden
Schalter:
-h
(Kurzform für
--help
zeige die Hilfe zu
update-command-not-found
an
-n
(Kurzform für
--no-apt-file
führe das Kommando
apt-file update
nicht aus, bevor die Datenbank aktualisiert wird.
17.2.3. Fehlendes sofort installieren
Für PackageKit
[PackageKit]
gibt es ein zusätzliches Paket namens
packagekit-command-not-found
[Debian-Paket-packagekit-command-not-found]
Dieses sorgt dafür, dass fehlende Software bei Aufruf auf der
Kommandozeile automatisch nachinstalliert wird. Es enthält zudem die
beiden Werkzeuge
pkcon
und
pkmon
zur Installation und zum
Monitoring des Paketbestands über die Kommandozeile.
Kapitel 18. Alternative Standard-Programme mit Debians Alternativen-System
Moderne Benutzeroberflächen regeln die Auswahl des Standard-Webbrowsers
und des Standard-Editors über XDG
[30]
. Die Basis dafür bildet die Zuordnung der
Anwendungen über MIME (engl.
MIME Applications Associations
[mime-applications-associations]
und im Speziellen die Liste der
Standardanwendungen (engl.
Default Applications
[mime-applications-associations-default-applications]
. Zur
Konfiguration steht Ihnen meist eine passende graphische Oberfläche zur
Verfügung.
Ähnliches leisten die Programme
select-editor
sensible-browser
sensible-editor
und
sensible-pager
aus dem Paket
sensible-utils
[Debian-Paket-sensible-utils]
. Diese werten primär die
Umgebungsvariablen wie
$EDITOR
$BROWSER
und
$PAGER
aus und leiten
daraus die Programmauswahl ab. Viele Einzelanwendungen, die wiederum
andere Standardprogramme aufrufen, ermitteln bspw. die Information nicht
selbst, welchen Editor Sie als Benutzer bevorzugen und verwenden. Sie
verlassen sich stattdessen auf die Rückgabewerte, die Ihnen an dieser
Stelle vom Werkzeug
sensible-editor
geliefert werden. Gleiches gilt
für die anderen drei Werkzeuge.
Ebenso funktioniert das auch in Ihrem Terminal. Rufen Sie darin die
Programme namens
editor
oder
x-www-browser
auf, werden ebenfalls
diese Variablen ausgewertet und das darüber referenzierte Werkzeug
ausgeführt.
Leider funktionieren diese beiden o.g. Arten der Auswahl des
Standardprogramms nicht für alle Einsatzzwecke, sei es, weil es keinen
passenden MIME-Typ für eine bestimmte Aufgabe gibt — z.B. das
Standard-Desktop-Hintergrundbild — oder weil niemand bislang eine
allgemein gültige Umgebungsvariable dafür definiert hat. Letzteres
betrifft bspw. das Ballerspiel Doom, für das mehrere, unterschiedliche
Spieleengines verfügbar sind.
Aus diesem Grund ermöglicht Debian Ihnen als Systembetreuer zusätzlich
zu den bereits vorher beschriebenen Varianten auch noch die Festlegung
eines sinnvollen Standardprogramms über das Debian Alternativen-System.
Basierend auf den lokal installierten Werkzeugen legen Sie dieses
Standardprogramm manuell fest oder lassen dieses automatisch auswählen.
Das Alternativen-System ist eine Debian-Eigenheit, die für viele
Programme und -Pakete existiert. In RedHat/Fedora wurde das System in
leicht veränderter Form übernommen
[Debian-Wiki-Alternatives]
. Ubuntu
präferiert hingegen XDG und greift vor allem dann auf das Debian
Alternativen-System zurück, wenn es die Pakete unverändert von Debian
übernimmt.
Es basiert auf symbolischen Verweisen (kurz
Symlink
) nach und in das
Verzeichnis
/etc/alternatives/
sowie gemäß der vom Paketbetreuer zuvor
festgelegten Priorität pro Alternative. Folgen Sie den Vorgaben, wird
dabei stets das Programm ausgeführt, welchem die höchste Priorität
zugeordnet ist. Eine manuelle Festlegung hebt die Vorgaben auf.
Das Werkzeug zur Verwaltung dieser Symlinks auf der Kommandozeile heißt
update-alternatives
, für die graphische Benutzerschnittstelle steht
Ihnen
galternatives
aus dem gleichnamigen Paket bereit
[Debian-Paket-galternatives]
. In
Abbildung 18.1, „Auswahl mit Hilfe des Programms
galternatives
sehen Sie
exemplarisch die Möglichkeiten für die Gruppe
x-www-browser
Abbildung 18.1. Auswahl mit Hilfe des Programms
galternatives
18.1. Hintergrund: Warum alternative Standardprogramme?
In Debian stellen mehrere Programme bzw. Pakete eine ähnliche oder
gleiche Fähigkeit bereit. Damit entscheiden Sie, welches Werkzeug zum
Einsatz kommt. Ubuntu fährt hier eine wesentlich restriktivere Politik.
Das betrifft auf der einen Seite sehr generische Funktionalitäten wie
z.B. die eines Webbrowsers, eines (Text-)Editors oder eines Pagers, aber
auch sehr spezifische Funktionalitäten, für die einfach mehrere
Implementierungen vorliegen. Zu Letzteren gehören bspw. das Schweizer
Taschenmesser für TCP/IP namens
netcat
oder die Skriptsprache
awk
Letztere liegt in drei Varianten vor — in der eher umfangreicheren
Implementation des GNU Projektes (
gawk
), in der kleineren und
schnelleren Implementation von Mike Brennan (
mawk
) und in der
originalen Awk-Implementation
[awk]
Weiterhin gibt es in Debian von einigen Programmen mehr als eine
Programmgeneration.
In Debian 8
Jessie
gibt z.B. verschiedene Veröffentlichungen von GCC
und Automake. GCC ist in den beiden Versionen 4.8 und 4.9 enthalten
und Automake in den Versionen 1.11 und 1.14. Einer der Gründe für die
verschiedenen Versionen ist, dass manche Pakete in Debian z.B. nur
mit einer bestimmten Generation eines Compilers übersetzt werden
können. So werden z.B. in Debian 8
Jessie
alle Linuxkernel mit GCC 4.8
kompiliert, während GCC 4.9 der Standardcompiler ist. Je nach
Einsatzzweck eines Systems kann es entsprechend auch hilfreich sein, den
Standardcompiler systemweit auf eine bestimmte Generation festzulegen.
In Debian 9
Stretch
ist dagegen GCC wieder nur noch in einer Version
enthalten, nämlich 6.3.0. Dafür ist OpenSSL hingegen in zwei
verschiedenen Versionen enthalten — 1.1.0 und 1.0.2. Hintergrund ist
hier, dass bestimmte Programme (noch) nicht sauber mit der neueren
OpenSSL-Version kompiliert werden können und die dazu notwendigen
Änderungen nicht-trivial sind. So ist z.B. Apache gegen OpenSSL 1.0.2
gelinkt, weil noch nicht alle SSL-nutzenden Apache-Module sauber mit
OpenSSL 1.1 zusammenarbeiten. Eine Standard-Version in dem Sinne, wie es
sie beim GCC gibt, existiert hier jedoch nicht. Gegen welche
OpenSSL-Version ein Programm kompiliert und später gelinkt wird, hängt
davon ab, welches der beiden sich gegenseitig ausschließenden Pakete
libssl-dev
(OpenSSL 1.1) oder
libssl1.0-dev
(OpenSSL 1.0.2)
installiert ist.
Ein weiterer Grund für die Verwendung des Alternativen-Systems
innerhalb desselben Binärpakets oder von Binärpaketen auf der Basis
desselben Sourcepakets sind unterschiedliche Konfigurationen oder
variierende Abhängigkeiten. Beispiel eins ist GNU Emacs, welcher in drei
Varianten vorliegt:
basierend auf dem Gimp Tool Kit (GTK+) und mit voller
Unterstützung moderner Desktops (
emacs23
bzw.
emacs24
). Dieses Paket
hängt u.a. von D-Bus ab.
basierend auf dem schlankeren Lucid-Toolkit (
emacs23-lucid
bzw.
emacs24-lucid
). Mit Unterstützung für das X-Window-System, aber ohne
allzuviele sonstige Abhängigkeiten.
ganz ohne graphische Benutzeroberfläche (
emacs23-nox
bzw.
emacs24-nox
).
Ein zweites Beispiel ist der Windowmanager
dwm
, bei welchem die
Konfiguration zum Kompilierzeitpunkt festgelegt wird. Das Paket
dwm
[Debian-Paket-dwm]
enthält daher vier Programme mit einer jeweils
unterschiedlichen Konfiguration —
dwm.default
dwm.maintainer
dwm.web
und
dwm.winkey
. Über das Alternativen-System legen Sie fest,
welches davon verwendet wird, wenn Sie lediglich
dwm
aufrufen.
Viele Administratoren haben zudem sehr genaue Vorstellungen, welche
Programme verwendet werden sollten, wenn sie unter dem generischen
Programmnamen aufgerufen werden.
18.2. Standardprogramme anzeigen
Mit dem Aufruf
update-alternatives --get-selections
listen Sie alle
generischen Programme oder Dateien auf, für die es Alternativen auf
Ihrem lokalen System gibt. Ebenfalls mit ausgegeben werden dabei die
aktuell ausgewählte Alternative sowie die konkrete Auswahlform — automatisch anhand der installierten Pakete und Prioritäten oder manuell
durch den lokalen Administrator.
Beispielausgabe
[31]
von
update-alternatives --get-selections
(massiv gekürzt).
$ update-alternatives --get-selections
automake auto /usr/bin/automake-1.14
awk auto /usr/bin/gawk
c++ auto /usr/bin/g++
c89 auto /usr/bin/c89-gcc
c99 auto /usr/bin/c99-gcc
cc auto /usr/bin/gcc
cpp auto /usr/bin/cpp
csh auto /bin/bsd-csh
de.multi manual /usr/lib/aspell/de-alt.multi
desktop-background auto /usr/share/images/desktop-base/lines-wallpaper_1920x1080.svg
desktop-background.xml auto /usr/share/images/desktop-base/lines.xml
desktop-grub auto /usr/share/images/desktop-base/lines-grub.png
desktop-splash auto /usr/share/images/desktop-base/spacefun-splash.svg
doom auto /usr/games/chocolate-doom
dwm auto /usr/bin/dwm.default
editor manual /usr/bin/zile
emacs auto /usr/bin/emacs24-x
emacsclient auto /usr/bin/emacsclient.emacs24
ex auto /usr/bin/nex
gnome-text-editor auto /usr/bin/leafpad
gnome-www-browser auto /usr/bin/opera
html2markdown auto /usr/bin/html2markdown.py2
infobrowser auto /usr/bin/info
jar auto /usr/bin/fastjar
java auto /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
ksh auto /bin/ksh93
locate auto /usr/bin/mlocate
mp3-decoder auto /usr/bin/mpg321
nc manual /bin/nc.traditional
pager auto /bin/less
rcp auto /usr/bin/scp
rename auto /usr/bin/file-rename
rlogin auto /usr/bin/slogin
rsh auto /usr/bin/ssh
rxvt manual /usr/bin/urxvt
ssh-askpass manual /usr/bin/ssh-askpass-fullscreen
telnet auto /usr/bin/telnet-ssl
unison auto /usr/bin/unison-latest-stable
unison-gtk auto /usr/bin/unison-latest-stable-gtk
vi manual /usr/bin/nvi
view manual /usr/bin/nview
wesnoth auto /usr/games/wesnoth-1.10
www-browser auto /usr/bin/links2
x-cursor-theme manual /etc/X11/cursors/crystalwhite.theme
x-session-manager auto /usr/bin/choosewm
x-terminal-emulator manual /usr/bin/uxterm
x-window-manager manual /usr/bin/ratpoison
x-www-browser manual /usr/bin/conkeror
Welche Alternativen für ein generisches Kommando verfügbar sind,
erfahren Sie mit dem Schalter
--list
. Nachfolgend sehen Sie das für
die Skriptsprache Awk.
Ausgabe der verfügbaren Alternativen für die Skriptsprache Awk.
$ update-alternatives --list awk
/usr/bin/gawk
/usr/bin/mawk
/usr/bin/original-awk
Über den Schalter
--display
erfahren Sie die derzeit festgelegte
Alternative für ein generisches Kommando mitsamt den verfügbaren,
weiteren Möglichkeiten und allen ebenfalls umgebogenen Referenzen auf
dessen
Slaves
Slaves
sind weitere Dateien, die zu einem Programm
dazugehören, bspw. die passenden Handbuchseiten (
Manual Pages
). Anhand
des nachfolgenden Beispiels zu Awk verdeutlichen wir Ihnen das.
Ausgabe der ausgewählten und verfügbaren Alternativen für Awk.
$ update-alternatives --display awk
awk - automatischer Modus
Link verweist zur Zeit auf /usr/bin/gawk
/usr/bin/gawk - Priorität 10
Slave awk.1.gz: /usr/share/man/man1/gawk.1.gz
Slave nawk: /usr/bin/gawk
Slave nawk.1.gz: /usr/share/man/man1/gawk.1.gz
/usr/bin/mawk - Priorität 5
Slave awk.1.gz: /usr/share/man/man1/mawk.1.gz
Slave nawk: /usr/bin/mawk
Slave nawk.1.gz: /usr/share/man/man1/mawk.1.gz
/usr/bin/original-awk - Priorität 0
Slave awk.1.gz: /usr/share/man/man1/original-awk.1.gz
Gegenwärtig »beste« Version ist »/usr/bin/gawk«.
Alternative Darstellung
Benötigen Sie stattdessen eine maschinenlesbare Ausgabe, hilft Ihnen in
diesem Fall der Schalter
--query
weiter. Dabei werden die Blöcke in
einer an den RFC 822
[RFC822]
angelehnten Weise formatiert und
zwischen den einzelnen Blöcken zusätzliche Leerzeilen eingefügt.
18.3. Standardprogramm ändern
Ist nur ein Paket installiert, welches für ein generisches Programm
eine einzige Alternative anbietet, so wird automatisch dieses verwendet
und es gibt keine Auswahl zur Konfiguration.
Hinweis, falls für ein generisches Programm nur eine Alternative installiert ist.
# update-alternatives --config emacs
Es gibt nur eine Alternative in Link-Gruppe emacs (die /usr/bin/emacs
bereitstellt): /usr/bin/emacs24-x
Nichts zu konfigurieren.
Installieren Sie hingegen mehrere Pakete, die alle eine Alternative für
ein bestimmtes generisches Programm anbieten, so wird ohne weitere
Interaktion die Alternative ausgewählt, für die die höchste Priorität
vergeben wurde. Die Priorität legt der Paketmaintainer fest. Für manche
Gruppen von Alternativen gibt es jedoch feste Regeln zur Berechnung der
Prioritäten, so z.B. für Window-Manager. Diese sind in Abschnitt 11.8.4
des Debian Policy Manuals festgelegt
[Debian-Policy-Manual]
Installieren Sie bspw.
vim-gtk
auf einem System, auf dem bisher
nano
der Editor mit der höchsten Priorität war, so werden bspw. die Datei
/usr/bin/editor
und
/etc/alternatives/editor
automatisch auf die graphische Variante von Vim umgestellt.
Hinweise über die automatische Auswahl von Alternativen bei der Paketinstallation.
[...]
Setting up vim-gtk (2:7.4.488-4) ...
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/editor (editor) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/gvim (gvim) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/gview (gview) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/rgview (rgview) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/rgvim (rgvim) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/evim (evim) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/eview (eview) in auto mode
update-alternatives: using /usr/bin/vim.gtk to provide /usr/bin/gvimdiff (gvimdiff) in auto mode
[...]
Die präferierte Alternative für ein gegebenes generisches Programm
ändern Sie mit der Option
--config
. Dabei entscheiden Sie auch, ob bei
zukünftigen Paketinstallationen die von Ihnen präferierte Alternative
automatisch neu ausgewählt werden soll, oder ob die manuell ausgewählte
Alternative stets beibehalten werden soll. Damit behalten Sie die
derzeit ausgewählte Alternative unverändert bei.
Ändern des systemweiten Standardeditors von einer automatischen Wahl auf
zile
$ update-alternatives --config editor
Es gibt 10 Auswahlmöglichkeiten für die Alternative editor (welche
/usr/bin/editor bereitstellen).

Auswahl Pfad Priorität Status
- ----------------------------------------------------------
* 0 /usr/bin/vim.gtk 50 automatischer Modus
1 /bin/ed -100 manueller Modus
2 /bin/elvis-tiny 10 manueller Modus
3 /bin/nano 40 manueller Modus
4 /usr/bin/emacs24 0 manueller Modus
5 /usr/bin/mcedit 25 manueller Modus
6 /usr/bin/nvi 19 manueller Modus
7 /usr/bin/vigor -150 manueller Modus
8 /usr/bin/vim.gtk 50 manueller Modus
9 /usr/bin/vim.nox 40 manueller Modus
10 /usr/bin/zile 30 manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 10
update-alternatives: /usr/bin/zile wird verwendet, um /usr/bin/editor
(editor) im manuellen Modus bereitzustellen
Bei manchen Paketen wurde dem Prioritätswert mit einem Augenzwinkern
sogar noch eine zusätzliche Bedeutung untergeschoben. So zeigen zum
Beispiel die Prioritätswerte für die deutschsprachigen Wörterbücher
aus den Paketen
aspell-de
und
aspell-de-alt
gleichzeitig auch das
Jahr an, in welchem die entsprechende Reform der Rechtschreibung in
Kraft trat.
Beispiel mit viel Humor in den deutschsprachigen
aspell
-Wörterbüchern.
There are 2 choices for the alternative de.multi (providing /usr/lib/aspell/de.multi).

Selection Path Priority Status
- ----------------------------------------------------------
0 /usr/lib/aspell/de-neu.multi 1996 auto mode
* 1 /usr/lib/aspell/de-alt.multi 1901 manual mode
2 /usr/lib/aspell/de-neu.multi 1996 manual mode
[30]
X Desktop Group (XDG), seit
dem Jahr 2000 freedesktop.org
[31]
von Axels Thinkpad und mit einer durchaus nicht ganz üblichen Auswahl
Kapitel 19. Backports
Der Beitrag erschien ursprünglich unter http://www.wizards-of-foss.de/de/weblog/2013/03/08/debian-backports-verwenden/ und wurde von uns überarbeitet.
19.1. Ausgangssituation
Debian handhabt die Pakete seiner stabilen Veröffentlichung
stable
(siehe
Abschnitt 2.10, „Veröffentlichungen“
) äußerst konservativ und lässt (mit extrem
wenig Ausnahmen) keinerlei neue Funktionalitäten zu. Die einzigen
vorgesehenen Aktualisierungen in der Veröffentlichung
stable
sind
Sicherheitsupdates oder die Behebung gröberer Bugs.
Benötigen Sie dennoch von einzelnen Programmen neuere Versionen — sei
es wegen neuerer Funktionen oder aufgrund von Kundenanforderungen — so
gibt es verschiedene Wege, diese dennoch über das Paketsystem zu
bekommen:
Die Anwendung lokal kompilieren und in das Verzeichnis
/usr/local
installieren,
Nutzen der Entwicklungszweige
testing
oder
unstable
Pakete aus den Entwicklungszweigen
testing
oder
unstable
auf
stable
installieren,
Pakete aus den Entwicklungszweigen
testing
oder
unstable
auf
stable
neu bauen, oder
Pakete aus dem Backports-Repository verwenden, falls diese darin verfügbar sind.
Pakete aus dem Fasttrack-Repository verwenden, falls diese darin verfügbar sind.
19.2. Gegenüberstellung der verschiedenen Lösungsansätze
Der erste Lösungsansatz — das lokale Kompilieren und Installieren — geht am Paketsystem vorbei und Sie verlieren damit sämtliche Vorteile
der Paketverwaltung. Handelt es sich um ein Programm, von dem andere
Pakete abhängen, kommt noch das Problem hinzu, dass diese Abhängigkeiten
dann im Paketsystem nicht mehr erfüllt sein müssen. Wir gehen daher auf
diese Option nicht näher ein, auch wenn es sicher Fälle gibt, in denen
dies nicht die schlechteste Variante ist.
Das Nutzen von Debians
testing
- oder
unstable
-Zweigen anstatt
stable
bedingt, dass nicht nur die benötigte Software, sondern das
komplette Betriebssystem mit allen Anwendungen in einer neueren
Version verwendet wird. Dabei nehmen Sie das Risiko in Kauf, dass die
Pakete noch nicht die Stabilitätskriterien von Debian erfüllen und
daher durchaus Fehler, bei
unstable
sogar Inkonsistenzen und
Uninstallierbarkeit einzelner Pakete auftreten können. Dazu kommt, dass
sich Pakete aus
testing
und
unstable
im dauernden Fluß befinden und
sich daher relativ oft bezüglich der Konfigurationsformate oder ihrer
unterstützten Funktionen ändern — wie bei einem sogenannten
Rolling
Release
Manchmal, aber lange nicht immer, sind die Abhängigkeiten eines Pakets
aus
testing
oder
unstable
nicht allzu restriktiv und Sie können
dieses — z.B. mit dem Aufruf
dpkg -i
— einfach so auch auf einem
stable
-System installieren. Das bedeutet aber nicht zwangsläufig, dass
die nächste Version dieses Pakets aus Debians Entwicklungszweigen dies
immer noch tut. Sie gehen damit das Risiko ein, das Paket nicht
aktualisieren zu können oder es weiter benutzen zu können.
Um nicht auf die Stabilität und die Sicherheitsupdates von Debians
stable
-Zweig zu verzichten und gleichzeitig einzelne Anwendungen in
neueren Versionen nutzen zu können, ist der sauberste Weg die
Rückportierung (engl.
to backport
[Debian-Backports]
. Die Grundlage
stellen die Versionszweige
testing
unstable
und auch
experimental
dar. Damit erreichen Sie, dass sich das ausgewählte Paket auch auf dem
stable
-Zweig bauen und installieren lässt. Es gehört meistens eine
kleine Portion Glück dazu, das Paket ohne Murren zu portieren. Solche
Backports sind nicht immer trivial in der Entwicklung und können auch
vergleichsweise aufwendig in der Pflege sein, z.B. wenn neuere Versionen
weitere Backports benötigen, weil in der nachfolgenden Entwicklung
weitere Abhängigkeiten hinzukamen oder neuere Versionen der
referenzierten Abhängigkeiten benötigt werden.
Debian FastTrack
[Debian-Fasttrack]
ist ein Repository, welches es
erlaubt, Rückportierungen von Paketen für Benutzer der stabilen
Distribution zur Verfügung zu stellen, wenn diese Pakete nicht in dem
Versionszweig
testing
gepflegt und auf dem üblichen Weg zurückportiert
werden können.
19.3. Debian Backports
Dass o.g. Bedürfnisse, Gedanken und Lösungen nichts Neues sind, können
Sie sich sicher denken. Deswegen hat Norbert Tretkowski 2003
backports.org
, kurz
bpo
, ins Leben gerufen — einen zentralen
Platz für solche Rückportierungen.
Bedarf und Interesse an den Backports wuchs und es gab ein eigenes
Spiegelnetzwerk analog zu dem von Debian. 2010 wurde das Projekt dann
mit dem Umzug von
backports.org
zu
backports.debian.org
offizieller
Bestandteil des Debian-Projektes
[backports.org-moved-to-backports.debian.org]
Dennoch wurde die von nun an
Debian Backports
genannten Pakete noch
eine Weile getrennt von den offiziellen Paketen der Distribution
verteilt. Erst seit Debian 7
Wheezy
sind die Backports ebenfalls im
selben Paketpool enthalten, jedoch nach wie vor in einem eigenen Zweig,
der auf die Zeichenkette
-backports
endet. Aus diesem Grunde waren
Backports für Debian 6
Squeeze
noch leicht anders einzurichten, als für
darauf folgende Veröffentlichungen.
19.4. Welche Pakete gibt es als offiziellen Backport?
Welche Pakete es auch als offiziellen Backport gibt, können Sie
mittlerweile recht einfach in der Debian Paketsuche
[Debian-Paketsuche]
herausfinden. Ob es ein solches Paket auch als
offiziellen Backport gibt, hängt von zwei Dingen ab — dem Bedarf
(wesentliche Änderungen gegenüber der Version im
stable
-Zweig) und
jemanden, der die Rückportierung initial macht und dann auch weiterhin
pflegt.
Letzteres muss nicht der eigentliche Paketbetreuer des Pakets in
Debian sein. Es kommt durchaus vor, dass dieser keinen Bedarf bzw.
Interesse an einem Backport hat. In diesem Fall ist es nicht unüblich,
dass sich jemand anderes um den (nach wie vor offiziellen) Backport
kümmert. U.a. aus diesem Grund sollten Sie Bug-Reports gegen Pakete aus
den Debian Backports stets an die Backports-Mailingliste
[Backports-Mailingliste]
senden und nicht an das normale
Bug-Tracking-System von Debian (Stand Januar 2015).
19.5. Welche Versionen gibt es als offizielle Backports?
Für den Zweig
stable-backports
der Debian Backports sind nur Versionen
erlaubt, die momentan in Debians
testing
-Zweig enthalten sind. Für den
oldstable-backports
-Zweig — quasi als Backports für die vorletzte
stable
-Veröffentlichung von Debian — sind nur Paketversionen aus der
aktuellen
stable
-Veröffentlichung zugelassen. Diese Varianten haben
die Bezeichnung
oldstable
. Hintergrund für diese Zuordnung ist, dass
es möglich sein soll, bei der Aktualisierung eines Systems mit
(offiziellen) Backports auf die jeweils nächste
stable
-Veröffentlichung alle bestehenden Backports automatisch durch
die entsprechenden, neuen
stable
-Pakete zu ersetzen.
Trotzdem gibt es auch hier immer wieder Bedarf für Backports von
testing
nach
oldstable
, die von o.g. Regel des sauberen Upgrades
abweichen. Aus diesem Grund gibt es für die
oldstable
-Veröffentlichungen von Debian neben den
oldstable-backports
auch noch
oldstable-backports-sloppy
. Das
englische Wort
sloppy
steht für „schlampig“, „schluderig“ oder
„nachlässig“ und besagt, dass diese Backports o.g. Anforderung an eine
saubere Aktualisierbarkeit auf die nächste
stable
-Veröffentlichung
nicht entsprechen.
19.6. Einbindung in den Paketbestand
Backports sind nicht von Hause aus aktiviert und Sie müssen diese in der
Paketverwaltung explizit ergänzen. Dazu fügen Sie in der Liste der
Paketquellen unter
/etc/apt/sources.list
(siehe dazu
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
) einen entsprechenden Eintrag für die
passenden Backports ihrer Distribution hinzu. Für Debian 9
Stretch
und Debian 8
Jessie
mit den dem Distributionsbereich
main
sieht
der jeweilige Eintrag wie folgt aus:
Eintrag zu Debian Backports für Debian 9
Stretch
# Backports
deb http://ftp.debian.org/debian stretch-backports main
Eintrag zu Debian Backports für Debian 8
Jessie
# Backports
deb http://ftp.debian.org/debian jessie-backports main
Wie bereits oben erwähnt, findet sich das APT-Repository für die
Backports für Debian 6
Squeeze
in einem getrennten Spiegelnetzwerk.
Deswegen ist dort die kanonische Mirror-Adresse eine leicht andere:
Eintrag zu Debian Backports für Debian 6
Squeeze
# Backports
deb http://httpredir.debian.org/debian-backports squeeze-backports main contrib non-free
Nach der Aktualisierung der Paketquellen — bspw. mittels
apt-get
update
— stehen Ihnen die zusätzlichen Pakete bereits zur Verfügung.
Diese werden jedoch nicht automatisch berücksichtigt und installiert,
sondern dazu bedarf es noch eines expliziten Aufrufs mit zusätzlichen
Schaltern.
apt-get
und
aptitude
benutzen dazu den Schalter
-t
gefolgt vom Namen des Backports-Archivs.
Das Paket
asciidoc
steht bspw. nicht für Debian 7
Wheezy
bereit,
existiert jedoch in den Backports. Um dieses aus den Backports
nachzuziehen, geben Sie auf der Kommandozeile folgendes ein:
Installation eines Pakets mit expliziter Angabe der Distribution
wheezy-backports
# apt-get -t wheezy-backports install asciidoc
...
Alternativ können Sie auch mittels Pinning paketweise bestimmen
(siehe
Abschnitt 20.4, „Paketweise festlegen“
), bei welchen Paketen Backports
verwendet werden sollen.
19.7. Die installierten Pakete anzeigen
Wie bereits genannt, gliedern sich die Pakete aus Debian Backports
recht nahtlos in den Paketbestand ein. Möchten Sie herausfinden, welche
der installierten Pakete auf ihrem System aus den Backports stammen,
kommt ihnen das Namens- und Versionsschema von Debian entgegen (siehe
Benennung einer Paketdatei
in
Abschnitt 2.11, „Benennung einer Paketdatei“
).
In der Versionsangabe des Pakets ist die Zeichenkette
~bpo
plus die
Versionsnummer der Debianveröffentlichung enthalten, so bspw.
~bpo8
für eine Rückportierung auf Debian 8
Jessie
und
~bpo9
für eine
Rückportierung auf Debian 9
Stretch
. Diese Angabe ist soweit
verlässlich, da sich die meisten Entwickler brav an diese Konvention für
die Benennung halten. Zusätzlich achten die FTP-Master für Debian
Backports recht pedantisch darauf, dass diese Schreibweise eingehalten
wird.
Mit einem beherzten Griff zu
dpkg
grep
und
awk
filtern Sie aus
der Paketliste alle Pakete samt Versionsnummer heraus, die diese
Zeichenkette enthalten:
Auflisten der installierten Pakete samt Versionsnummer aus Debian Backports.
$ dpkg -l | grep ~bpo8 | awk '{print $2 " " $3}'
libroutino-slim0 3.1.1-1~bpo8+1
libroutino0 3.1.1-1~bpo8+1
qmapshack 1.7.2-1~bpo8+1
routino 3.1.1-1~bpo8+1
routino-common 3.1.1-1~bpo8+1
Geht es Ihnen nur um die Paketnamen, vereinfacht sich der Aufruf wie
folgt — Sie filtern mittels
awk
und einem Regulären Ausdruck und
geben danach nur noch die zweite Spalte jeder Zeile aus:
Auflisten der installierten Pakete aus Debian Backports.
$ dpkg -l | awk '/~bpo8/{print $2}'
libroutino-slim0
libroutino0
qmapshack
routino
routino-common
Das Risiko bei den beiden Varianten ist, dass Sie auch andere Pakete
erwischen, die diese Zeichenkette in der Versionsnummer oder der
Paketbeschreibung tragen. Zudem müssen Sie das bspw. in Skripten immer
wieder an die von Ihnen verwendete Debianversion anpassen. Um diese
Fallen zu umgehen, bestehen zwei weitere Lösungswege — a) mit Hilfe von
aptitude
und b) mit Hilfe von
apt
. Letzteres gelingt Ihnen erst ab
Debian 8
Jessie
, da es vorher
apt
nicht als Werkzeug in Debian gibt.
Die Variante a) mit
aptitude
kombiniert mehrere Aufrufparameter — so
search ~i
zur Suche in den installierten Paketen und dazu
?narrow()
zur weiteren Eingrenzung der Auswahl.
~VCURRENT
bezieht sich dabei auf
die aktuelle Debianversion,
~Abackports
auf die Pakete, die aus den
Paketquellen (Archiv) kommen, in denen Backports im Archivnamen
vorkommt.
Auflisten der installierten Pakete aus Debian Backports mittels
aptitude
$ aptitude search '~i ?narrow(~VCURRENT, ~Abackports)'
i A libroutino-slim0 - Routino slim routing library
i A libroutino0 - Routino routing library
i qmapshack - GPS mapping (GeoTiff and vector) and GPSr
i A routino - Set of tools to find a path between two po
i A routino-common - Routino data
Nachteilig ist, dass
aptitude
etwas Zeit benötigt, um das Ergebnis zu
ermitteln.
aptitude
baut intern erst alle möglichen Datenstrukturen
auf, bevor es darauf herumrechnet. Von Vorteil ist, dass diese Variante
unabhängig von einer Veröffentlichung funktioniert und somit auch gut
mit älteren Debianvarianten nutzbar ist.
Die Variante b) auf der Basis von
apt
und
fgrep
liefert das gleiche
Ergebnis, jedoch eine andere Ausgabe. Jede Zeile beinhaltet den
Paketnamen samt Repository, aus dem Paket stammt, sowie die
Versionsnummer, die Architektur und den Installationsstatus.
Auflisten der installierten Pakete aus Debian Backports mittels
apt
$ apt list --installed | fgrep backports

WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.

libroutino-slim0/jessie-backports,now 3.1.1-1~bpo8+1 amd64 [Installiert,automatisch]
libroutino0/jessie-backports,now 3.1.1-1~bpo8+1 amd64 [Installiert,automatisch]
qmapshack/jessie-backports,now 1.7.2-1~bpo8+1 amd64 [installiert]
routino/jessie-backports,now 3.1.1-1~bpo8+1 amd64 [Installiert,automatisch]
routino-common/jessie-backports,now 3.1.1-1~bpo8+1 all [Installiert,automatisch]
19.8. Weiterführende Dokumentation
Die offizielle Dokumentation auf Englisch gibt es auf der
Backports-Projektseite
[Debian-Backports]
. Eine deutschsprachige
Anleitung finden Sie im Wiki von debianforum.de
[Debianforum-Wiki-Backports]
19.9. Backports bei Ubuntu
Auch bei Ubuntu gibt es Backports. Diese funktionieren nach ähnlichen
Regeln wie bei Debian. Da es bei Ubuntu aber keinen
testing
-Zweig wie
bei Debian gibt und die Veröffentlichungen wesentlich häufiger
passieren, werden Backports dort üblicherweise von der aktuellen
Veröffentlichung zur vorherigen Veröffentlichung oder zur vorherigen
LTS-Veröffentlichung gemacht.
19.10. Wichtige Fragen, die sich bei Backports ergeben
wie kommt ein Backport-Paket zustande? Sicher gibt es dazu einen definierten Arbeitsablauf
Laufen die Pakete außerhalb des üblichen Validierungsprozesses (ähnlich wie Ubuntu PPAs)
wann ist die Installation eines Backport-Pakets sinnvoll, wann nicht?
kann bei Backports was schiefgehen? Wenn ja, was? Kann ich das vorher irgendwie testen?
Gibt es Updates dazu? Pflege ich die über den üblichen
apt-get update
-Prozess ein, oder geht das anders, bspw. manuell?
Pakete werden wie ein normales Paket ausgewählt und gepflegt
Wie entferne ich ein Backport-Paket wieder (
apt-get remove Paketname
)?
ja
Oder meintest Du "Wie downgrade ich ein Backport-Paket wieder?"
Kapitel 20. Veröffentlichungen mischen
Debian reglementiert die Erweiterung der vorhandenen Funktionalität für
die Veröffentlichung eines Pakets aus Debian
stable
deutlich. Besteht
Ihrerseits jedoch die Notwendigkeit für eine neuere Paketversion mit
zusätzlichen Funktionen, prüfen Sie als erstes, ob es für Ihr Paket
bereits einen Kandidaten aus dem Bereich
Debian Backports
gibt (siehe
Kapitel 19,
Backports
). Ein solches Paket ist dann auch auf Debian
stable
zugeschnitten.
Bleibt diese Suche erfolglos, ist der nächste Schritt die Recherche nach
neueren Paketen in den Veröffentlichungen Debian
testing
und
unstable
sowie das nachfolgende Mischen der unterschiedlichen
Veröffentlichungen. Dafür bestehen zwei Wege — die Paketauswahl mit der
expliziten Angabe der Veröffentlichung (siehe
Abschnitt 20.2, „
apt-get
mit expliziter Angabe der Veröffentlichung“
) und
der paketweisen Festlegung von Prioritäten, genannt APT-Pinning (siehe
Abschnitt 20.4, „Paketweise festlegen“
).
Bei beiden Wegen werden zwei Dinge angestrebt — einerseits eine neuere
Programmversion einzuspielen, ohne eine vollständige Aktualisierung
Ihrer gesamten Installation durchführen zu müssen (siehe
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
), und andererseits das Gesamtsystem
möglichst stabil zu halten. Das ganze ist ein Balanceakt ohne die
Garantie von Debian
stable
Problematisch ist dabei, dass Abhängigkeiten zwischen den verschiedenen
Paketversionen aus den genutzten Veröffentlichungen bestehen. Aus der
Erfahrung heraus wissen wir jedoch, dass das ganze zwischen zwei
aufeinanderfolgenden Veröffentlichungen weitestgehend reibungslos
funktioniert, bspw. aus der Kombination von Debian
stable
und
testing
. Der Hintergrund liegt darin, dass in diesem Fall die
Unterschiede zwischen den Paketen aus den Veröffentlichungen noch nicht
ganz so groß sind (
[Jurzik-Debian-Handbuch]
[Drilling-APT-Pinning-LinuxUser]
). Sollte Ihnen das Ergebnis nach dem
APT-Pinning dennoch zu instabil sein, bleibt als Folgeschritt stets noch
ein Distributionsupgrade übrig (siehe
Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“
).
20.1. Die bevorzugte Veröffentlichung für alle Pakete festlegen
Hilfreich ist die Festlegung einer bevorzugten Veröffentlichung — einer
sogenannten
target release
. Daran orientiert sich APT und benutzt nur
Pakete dieser Veröffentlichung — egal, was sonst noch an anderen
Paketversionen existiert.
APT entnimmt die Veröffentlichung der Datei
/etc/apt/apt.conf
Sofern diese Datei noch nicht vorhanden ist, legen Sie sie an. In die
Datei tragen Sie die gewünschte Veröffentlichung ein, bspw. Debian
stable
wie folgt:
Debian
stable
als bevorzugte Veröffentlichung festlegen.
APT::Default-Release "stable";
20.2.
apt-get
mit expliziter Angabe der Veröffentlichung
APT richtet sich nach den festen Einstellungen in den
Konfigurationsdateien. Mit dem Schalter
-t
(Langform
--target-release
oder
--default-release
) übergehen Sie diese
Festlegung und legen explizit fest, aus welcher Veröffentlichung Sie das
Paket beziehen möchten. Alternativ geben Sie die Veröffentlichung ohne
den Schalter und direkt nach dem Paketnamen an.
Für das Paket
gdm3
und die Veröffentlichung Debian
testing
sind die
folgenden beiden Aufrufe zulässig:
Aufrufe mit expliziter Angabe der Veröffentlichung.
apt-get -t testing install gdm3
apt-get install gdm3/testing
Um dieses Paket einzuspielen, erzeugt APT eine Vorgabe-Pin mit der
Priorität 990 (siehe dazu
Tabelle 20.1, „Verwendete Prioritäten beim APT-Pinning“
). Daher wird
das Paket installiert, es sei denn, es gibt bereits eine Version, die
zur festgelegten Zielveröffentlichung gehört oder die bereits vorhandene
Version des Pakets ist neuer als das benannte Paket.
20.3. Von APT zu APT-Pinning
Bisher wurden im Buch alle Pakete gleichwertig behandelt. Zusätzlich
bekommen die Pakete nun unterschiedliche Prioritäten. Die
Paketverwaltung mit APT überprüft verschiedene „Schlüsselstellen“ und
klärt, was für das jeweilige Paket eingestellt ist. Daraus ermittelt APT
für jedes Paket dessen Priorität und wählt für die Installation die
Version mit der höchsten „Vorrangstufe“ aus. Liegt keine explizite
Angabe vor, kommen die Standardeinstellungen zum Tragen (siehe auch
Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“
).
Die Steuerung der Vorrangstufe erfolgt über einzelne Zahlenwerte, genannt
Pins
. Anhand dieser wird ausgewählt, aus welchen Paketquellen die
Pakete bezogen werden. Das ganze kann beliebig verkompliziert werden, da
APT über den Zahlenwert entscheidet, was es installiert, nicht
installiert oder aktualisiert (siehe dazu
Tabelle 20.1, „Verwendete Prioritäten beim APT-Pinning“
).
Tabelle 20.1. Verwendete Prioritäten beim APT-Pinning
Priorität
Bedeutung
unter 0
Das Paket wird niemals installiert.
zwischen 0 und 100
Das Paket wird nur dann installiert, wenn noch
keine Version davon auf dem System installiert ist.
zwischen 100 und 500
Das Paket wird installiert, es sei denn, es gibt eine
Version, die zu einer anderen Veröffentlichung gehört, oder die
bereits vorhandene Version ist neuer.
zwischen 500 und 990
Das Paket wird installiert, es sei denn, es gibt eine
Version, die zur festgelegten Zielveröffentlichung gehört, oder die
bereits vorhandene Version ist neuer.
zwischen 991 und 1000
Das Paket wird immer installiert, es sei denn,
die bereits vorhandene Version ist neuer.
Wert größer als 1000
Das Paket wird immer installiert, auch wenn das
ein Downgrade auf eine ältere Version bedeutet.
20.4. Paketweise festlegen
Für diesen Fall besteht eine Liste mit Einträgen für einzelne Pakete
und ganze Paketgruppen. Bis Debian 6
Squeeze
war die Datei
/etc/apt/preferences
die einzige Stelle, an der Prioritäten für
Paketnamen, Veröffentlichungen, Hersteller oder Versionen eingetragen
werden konnten.
Ab Debian 7
Wheezy
wurde Unterstützung für ein Verzeichnis
/etc/apt/preferences.d/
eingeführt. Jede Datei in diesem
Verzeichnis darf beliebig viele Festlegungen beinhalten, wobei der
Dateiname jeweils frei wählbar ist. Die Abarbeitung der einzelnen
Einträge erfolgt von oben nach unten, wobei nachfolgende, mehrfache
Einträge ignoriert werden. Jeder Eintrag, d.h. jede Festlegung, besteht
aus den folgenden drei Zeilen:
Eintrag für ein Paket.
Package: *
Pin: release a=stable
Pin-Priority: 50
Obiger Eintrag besagt, dass APT nur Pakete aus dem Bereich Debian
stable
und nicht aus Debian
testing
oder
unstable
installiert.
Dabei stehen die einzelnen Schlüsselworte jeweils für:
Package
Paketname, für welches die Zuordnung gilt. Ein
bezeichnet alle
Pakete.
Pin
Nach dem Schlüsselwort
release
spezifizieren Sie die Veröffentlichung
(siehe
Abschnitt 2.10, „Veröffentlichungen“
). Dabei ist hier die Angabe eines
Aliasnamens wie
Bookworm
oder
Sid
nicht erlaubt. Zulässig sind aber
bspw. die Versionsnummer, der Distributionsbereich und die Herkunft.
Eine genaue Auflistung enthält
Tabelle 20.2, „Zulässige Parameter beim APT-Pinning“
Pin-Priority
Das bezeichnet den Zahlenwert für die Pin. Welche Werte zulässig sind,
entnehmen Sie bitte
Tabelle 20.1, „Verwendete Prioritäten beim APT-Pinning“
in
Abschnitt 20.3, „Von APT zu APT-Pinning“
Tabelle 20.2. Zulässige Parameter beim APT-Pinning
Parameter und Schlüsselwort
Bedeutung
Beispiel
archive
Veröffentlichung (siehe
Abschnitt 2.10, „Veröffentlichungen“
unstable
component
Distributionsbereich (siehe
Abschnitt 2.9, „Distributionsbereiche“
main
label
Bezeichner
Debian
name
Aliasnamen der Veröffentlichung (siehe
Abschnitt 2.10.2, „Alias-Namen“
Stretch
origin
Herkunft
Debian
version
explizite Versionsnummer (siehe
Abschnitt 2.11, „Benennung einer Paketdatei“
6.0.3
20.5. Praktische Beispiele
Anhand von drei typischen Einträgen verdeutlichen wir Ihnen nachfolgend,
wie die Einträge für ein erfolgreiches APT-Pinning aussehen müssen.
In
Beispiel 1
legen Sie eine bestimmte Veröffentlichung fest. Alle
Pakete kommen aus Debian 7.5
Wheezy
und werden durch die Pin mit dem
Wert 1000 gegen eine unbeabsichtigte, automatische Entfernung geschützt.
Beispiel 1: Veröffentlichung festlegen.
Package: *
Pin: release v=7.5, l=Debian
Pin-Priority: 1000
In
Beispiel 2
legen Sie fest, dass ein Paket in einer bestimmten
Version gehalten wird. Die Angabe
samba*
bezieht sich hier auf alle
Debianpakete, die
samba
im Paketnamen tragen. Die Angabe
v=3.5.6*
bewirkt, dass diese Pakete in der Version 3.5.6 erhalten bleiben, d.h.
nicht aktualisiert werden. Durch die Pin mit dem Wert 1000 werden die
Pakete zudem gegen eine unbeabsichtigte, automatische Entfernung
geschützt.
Beispiel 2: Paket in ausgesuchter Version halten.
Package: samba*
Pin: v=3.5.6*
Pin-Priority: 1000
In
Beispiel 3
legen Sie die Paketherkunft genauer fest. Das gilt nur
für die Pakete aus der Gruppe
gnome
, die zudem von der URL
ftp.informatik.tu-berlin.de stammen. Durch die Pin mit dem Wert 600 gilt
das nur, sofern diese Pakete aktueller als die bisherigen Pakete sind.
Beispiel 3: Paketherkunft bestimmten.
Package: *gnome
Pin: origin ftp.informatik.tu-berlin.de
Pin-Priority: 600
Kapitel 21. Pakete bauen mit
checkinstall
21.1. Pakete aus zusätzlichen Quellen ergänzen
Das Debian-Paketarchiv ist bereits sehr umfangreich und umfaßt eine
Vielzahl von vorab geprüften Paketen mit ausgewählter, stabiler
Software. Benötigen Sie hingegen Softwarekomponenten, welche nicht darin
enthalten ist — aus welchem Grund auch immer --, können Sie
beispielsweise auf zusätzliche Quellen für Fremdpakete zurückgreifen und
die entsprechenden Pakete daraus einbinden (siehe dazu „Paketquellen“
in
Abschnitt 3.1, „Paketquellen“
).
21.2. Software selbst übersetzen und einspielen
Als Alternative zu obigem Weg stehen Ihnen stets die entsprechenden
Sourcepakete oder der Quelltext als
tar.gz
-Archiv von der Projektseite
zur Verfügung. In beiden Fällen übersetzen Sie den Programmcode selbst
und installieren danach die dabei erzeugten Binärdateien auf ihrem
System. Üblicherweise umfaßt das den Dreierschritt aus den Aufrufen
./configure
make
und
make install
Das geht jedoch an der Paketverwaltung vorbei — diese bemerkt nicht,
daß Sie ihrem System zusätzliche Software hinzugefügt haben. Dieser
Schritt birgt die Risiken, daß a) nicht alle Abhängigkeiten der Software
erfüllt werden, b) Konflikte mit einer gleichzeitig installierten,
anderen Version des Programms entstehen und Sie c) die Software nur sehr
mühselig wieder von ihrem System entfernen können. Nicht wenige
Entwickler „vergessen“ in ihren Makefiles das Ziel
uninstall
(siehe
[Drilling-Checkinstall-LinuxUser]
).
Gleiches Ungemach droht Ihnen, wenn Sie zu einem späteren Zeitpunkt die
eingespielte Software oder auch andere Pakete aktualisieren möchten.
Nicht selten treten dann erhebliche Abhängigkeitsprobleme zu anderen
Paketen auf. Komponenten, die Sie an der Paketverwaltung vorbei
installiert haben, sind zwar vorhanden, werden aber von dieser als
fehlende Abhängigkeit eingestuft.
21.3. Software selbst übersetzen und als
deb
-Paket einspielen
An dieser Stelle kommt das Projekt
checkinstall
[checkinstall]
ins
Spiel. Es steht unter der GPLv2 und ist über das gleichnamige Paket aus
den Repositories bis Debian 9 Stretch verfügbar
[Debian-Paket-checkinstall]
. In Debian 10
Buster
ist es nicht
enthalten, da es zum Zeitpunkt des Einfrierens der Veröffentlichung
nicht die erwartete Paketqualität aufwies. Man kann es aber nach Aktivieren von
Backports für Debian 10
Buster
in einer Version nahezu identisch zu
der aus Debian 11
Bullseye
nachinstallieren.
Hinweis auf
dh-make-perl
Handelt es sich bei der einzuspielenden Software um Perl-Module, hilft
Ihnen auch das spezialisierte Paket
dh-make-perl
weiter
[Debian-Paket-dh-make-perl]
. Wie Sie das Werkzeug verwenden, erläutert
Steve Kemp in seinem lesenswerten Blogeintrag „Building Debian packages
of Perl modules“
[Kemp-dh-make-perl]
checkinstall
hat sich zum Ziel gesetzt, das Übersetzen von Paketen aus
dem Quellcode und das direkte Erstellen von Binärpaketen miteinander zu
kombinieren. Diese „frischen“ Binärpakete passen dann exklusiv zu
Ihrer bestehenden Installation. Es kann neben
deb
-Paketen auch
rpm
und
tgz
-Dateien für Slackware erstellen. Die einzelnen Schalter
entnehmen Sie bitte
Tabelle 21.1, „Schalter für die verschiedenen unterstützten Paketformate“
. Benennen Sie
keinen Schalter, erzeugt
checkinstall
automatisch ein
deb
-Paket.
Tabelle 21.1. Schalter für die verschiedenen unterstützten Paketformate
Paketformat
Schalter
Debian-Paket (
deb
-D
-t debian
--type=debian
RPM-Paket (
rpm
-R
-t rpm
--type=rpm
Slackware-Paket (
tgz
-S
-t slackware
--type=slackware
Vereinfacht gesagt, erstellt
checkinstall
ein Paket direkt aus dem
Quellcode und übergeht den Paketmanager dabei aber nicht. Es beobachtet
den Erstellprozess und bindet alle Dateien in das neue Paket ein, die
bei der Übersetzung entstehen und benötigt werden. Daher gibt es auch
dafür die schöne Umschreibung „Installations-Verfolger“.
Dazu bezieht
checkinstall
zunächst die benötigten Quellen zum Paket.
Als Quelle kommen alle Softwarearchive in Frage, so z.B. neben den
regulären Debian-Paketquellen auch von den Plattformen SourceForge
[SourceForge]
, Freecode (vormals Freshmeat)
[FreeCode]
und GitHub
[GitHub]
. Gleiches gilt für das direkte Auschecken aus dem
Versionskontrollsystem des Projektes.
Zum Aufruf genügt das nachfolgende Kommando im Verzeichnis mit dem
Quellcode. Es entspricht dem bereits oben genannten Aufruf von
./configure
make
und
make install
und ist gleichzeitig die
Kurzform für den Aufruf
checkinstall --install=yes
# checkinstall
Aus dem zunächst bezogenen
tar.gz
-Archiv baut
checkinstall
ein zu
ihrer Installation passendes
deb
-Paket und installiert dieses über die
Paketverwaltung. Dabei erhält das Paket die Markierung
hold
(siehe
dazu
Abschnitt 2.15, „Lokale Paketmarkierungen“
).
Möchten Sie ein bestimmtes Skript zur Installation ausführen, geben Sie
dieses beim Aufruf von
checkinstall
als zusätzlichen Parameter an.
Nachfolgend heißt das Skript schlicht
installationsskript.sh
, kann
aber von Ihnen beliebig benannt werden.
# checkinstall installationsskript.sh
Wünschen Sie hingegen keine automatische Installation, rufen Sie
checkinstall
mit dem Parameter
--install=no
auf. Das entspricht den
beiden Aufrufen
./configure
und
make
# checkinstall --install=no
Weitere Debian-spezifische Schalter entnehmen Sie bitte
Tabelle 21.2, „Spezifische Schalter für ein Debian-Binärpaket“
. Diese Schalter korrespondieren
direkt mit den dazugehörigen Feldern in einem Debian-Binärpaket (siehe
Abschnitt 4.1, „Konzepte und Ideen dahinter“
). Schalter zur Darstellung und Ausgabe
entnehmen Sie bitte der Manpage zum Programm oder über den Aufruf von:
checkinstall --help
Tabelle 21.2. Spezifische Schalter für ein Debian-Binärpaket
Schalter
Bedeutung
--pkgname=
name
Name des Pakets
--pkgversion=
version
Versionsnummer des Pakets
-A
Architektur
Architektur des Pakets
--arch
Architektur
Architektur des Pakets
--pkgarch=
Architektur
Architektur des Pakets
--pkgrelease=
Release
Angabe der Veröffentlichung
--pkglicense=
Lizenz
Angabe der Lizenz zum Paket
--pkggroup=
Gruppe
Benennung der Paketkategorie
--pkgsource=
Quelle
Angabe der Quelle zum Paket
--pkgaltsource=
Quelle
alternative Angabe der Quelle zum Paket
--pakdir=
Verzeichnis
Zielverzeichnis, in dem das Paket gespeichert wird
--maintainer=
Emailadresse
Emailadresse des Paketmaintainers
--provides=
Liste
Name der Pakete, die es bereitstellt
--requires=
Liste
Name der Pakete, die das Paket benötigt
--conflicts=
Liste
andere Pakete, mit denen das Paket in Konflikt steht
--replaces=
Liste
andere Pakete, die dieses Paket ersetzt
--dpkgflags=
Flags
Flags, die an
dpkg
zur Installation mitgegeben werden
--nodoc
keine Dokumentation in das Paket einfügen
21.4. Beispiel
ToDo
21.5. Vor- und Nachteile
Erwartungsgemäß wird die Verwendung von
checkinstall
im Alltag von
Entwicklern, Paketmaintainern und Benutzern gemischt bewertet.
Entwickler
und
Paketmaintainer
sehen das Werkzeug überwiegend
positiv — haben Sie darüber nämlich die Möglichkeit, auszutesten, ob
sich die von Ihnen verwendete Entwicklerversion nahtlos in das
bestehende Debian-Ökosystem einspielen läßt und mit den anderen Paketen
harmoniert. Die Paketverwaltung hat eine Information darüber, daß Sie
ein zusätzliches Paket als solches installiert haben. Sollte das Paket
unerwartete Querschläger produzieren, kratzen Sie es auch wieder ohne
viel Aufwand und vorallem restefrei vom System herunter. Das erlaubt
Ihnen automatisierte Integrationstests im Rahmen der Qualitätssicherung.
Verschwiegen werden sollen jedoch nicht die Nachteile. Ein mittels
checkinstall
generiertes und eingespieltes Paket unterläuft die
strenge Qualitätskontrolle von Debian. Die übliche Validierung durch
andere Tester und Benutzer sowie eine Erzeugung von Prüfsummen findet
ebenfalls nicht statt. Die Paketabhängigkeiten werden nur bedingt
validiert, d.h. nur auf dem System, auf dem das Paket erzeugt und
eingespielt wurde. Das Ergebnis — sprich das erzeugte
deb
-Paket — ist nicht unbedingt portabel und stets eins-zu-eins auf andere
Debian-Installationen übertragbar. Berichtet wird ebenfalls, daß
checkinstall
nicht bei Programmen funktioniert, die statisch gegen die
libc
linken, oder bei solchen, bei denen das SUID/GUID-Bit gesetzt ist
(siehe
[Drilling-Checkinstall-LinuxUser]
). Ebenso sind Probleme mit
den
preinstall
- und
postinstall
-Skripten bekannt (siehe
[Schnober-Checkinstall-LinuxUser]
).
Aus Sicht der
Benutzer
ist es sicherlich sehr erfreulich, wenn eine
Lücke in den benötigten Komponenten geschlossen wird. Was sie meist
weniger einschätzen können, ist die Stabilität der Lösung und der
Aufwand seitens der Entwickler und Paketmaintainer, um diese Lösung
dauerhaft zu betreuen und den Weiterentwicklungen anzupassen.
Aus den oben genannten Gründen empfehlen wir Ihnen, den Einsatz von
checkinstall
genau zu überdenken. Als nützlich und hilfreich schätzen
wir es insofern ein, daß Sie in einem Schritt überprüfen können, ob ein
Stapel Software „baut“, sich ein Paket daraus schneidern läßt und
dieses mit dem restlichen Debian-Ökosystem zusammenarbeitet. Das
erleichtert Ihnen die Integrationstests und sollte nachfolgend die Basis
dafür bilden, daraus ein richtiges Paket entsprechend den
Debian-Paket-Standards zu erstellen. Bis das soweit ist, steht einer
Benutzung auf lokalen Rechnern und Einzelsystemen — bspw. im Rahmen
einer „Testinstallation“ — nichts im Wege. Einem großflächigen
Alltagsbetrieb des erzeugten Pakets stehen wir skeptisch gegenüber.
21.5.1. Weitere noch unbearbeitete Notizen
Vorteile:
installiert automatisch die zusätzlichen, bisher noch nicht installierten Header-Files nach
stimmt das?
Kapitel 22. Metapakete bauen
Metapakete sind spezielle Binärpakete, die keine Daten, sondern lediglich
Abhängigkeiten auf andere Pakete beinhalten. Genauer erklären wir Ihnen diese
Paketvariante unter „Übergangspakete, Metapakete und Tasks“ in
Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“
Sehr nützlich sind Metapakete genau dann, wenn Sie immer wieder eine bestimmte
Kombination von Paketen benötigen, bspw. um eine Reihe gleichartiger Systeme zu
pflegen. Definieren Sie einen LAMP-Server bestehend aus Linux, dem Webserver
Apache, dem Datenbankmanagementsystem MariaDB und der Programmiersprache PHP
über das Metapaket namens
meta-lamp
, enthält dieses bspw. die Abhängigkeiten
zu den vier Paketen
apache2
mariadb-server
mariadb-client
und
php
Installieren Sie später das Metapaket
meta-lamp
, werden diese Abhängigkeiten
von der Paketverwaltung aufgelöst und die genannten Pakete samt deren
Abhängigkeiten installiert.
Für die Benennung von eigenen Metapaketen gibt es keine Festlegung — Namenskonflikte mit Paketen aus eigenen Repositories sind daher nie
vollständig auszuschliessen. Im offiziellen Bestand finden sich Pakete, die
den Namen der Einrichtung tragen, an denen das Paket entstanden ist. Dazu
gehören bspw.
dphys-config
[Debian-Paket-dphys-config]
und
dphys-swapfile
[Debian-Paket-dphys-swapfile]
, die beide das Departement für Physik der ETH
Zürich beigesteuert hat. Vielleicht ist dieses Namensschema auch für Sie
nützlich.
In diesem Kapitel lernen Sie, wie Sie ein Metapaket für den Midnight Commander
erstellen
[mc]
. Hier heißt dieses schlicht und einfach
meta-mc
mc
setzt
sich aus zwei Paketen zusammen —
mc
[Debian-Paket-mc]
für die Binärdateien
und
mc-data
[Debian-Paket-mc-data]
für die architekturunabhängigen
Datendateien.
22.1. Vorbereitungen
Zur Erstellung des Metapakets
meta-mc
greifen wir auf das Debianpaket
equivs
[Debian-Paket-equivs]
zurück, was diesen Vorgang für alle Seiten
sehr stark vereinfacht. Das Paket
equivs
bringt die beiden Werkzeuge
equivs-control
und
equivs-build
mit.
Ausgangspunkt ist das Erzeugen einer Beschreibung des zu erstellenden
Metapakets. Dazu benutzen Sie
equivs-control
. Dieses erwartet einen
Dateinamen, in der die Beschreibung landet — nachfolgend genannt
ns-control
Beschreibungsdatei für das Metapaket erzeugen.
$ equivs-control ns-control
Die mittels
equivs-control
erzeugte Beschreibung ist nur eine Vorlage, die
Sie nun noch entsprechend ändern, damit es auch auf das Metapakets
meta-mc
passt. Das betrifft insbesondere die Felder
Section
(Paketkategorie),
Priority
(Priorität des Pakets),
Package
(Paketname des Metapakets),
Maintainer
(Name des Paketbetreuers),
Depends
(Paket hängt ab von) und
Description
(Paketbeschreibung). Passende Felder kommentieren Sie aus und
hinterlegen den gewünschten Wert. In unserem Fall sieht das wie folgt aus:
Angepasste Beschreibungsdatei
ns-control
für das Metapaket
meta-mc
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source:
Section: misc
Priority: optional
# Homepage:
Standards-Version: 3.9.2

Package: meta-mc
# Version:
Maintainer: Frank Hofmann
# Pre-Depends:
Depends: mc, mc-data
# Recommends:
# Suggests:
# Provides:
# Replaces:
# Architecture: all
# Multi-Arch:
# Copyright:
# Changelog:
# Readme:
# Extra-Files:
# Files:
#
Description: Installs the Midnight Commander
Installs the Midnight Commander
Anmerkung
Beachten Sie bitte die Leerzeile am Ende der Beschreibungsdatei
ns-control
Ohne diese kann das Paket später nicht sauber gebaut werden.
22.2. Das Paket bauen
Nun kommt Schritt 2 — das Bauen des
deb
-Pakets auf der Basis der zuvor
erstellten Beschreibungsdatei. Das gelingt Ihnen mit Hilfe des Werkzeugs
equivs-build
. Es erwartet zwei Parameter —
-f
(Langform
--full
) und
den Namen der Beschreibungsdatei. Der verwendete Schalter
-f
sorgt dafür,
dass der Bauprozeß vollständig durchlaufen wird. Das Paket wird gebaut und
auch signiert, sofern ein entsprechender GnuPG-Schlüssel hinterlegt ist.
Bauen des Metapakets auf der Basis der Beschreibungsdatei.
$ equivs-build --full ns-control
dpkg-buildpackage: Information: Quellpaket meta-mc
dpkg-buildpackage: Information: Quellversion 1.0
dpkg-buildpackage: Information: Quelldistribution unstable
dpkg-buildpackage: Information: Quelle geändert durch Frank Hofmann
dpkg-buildpackage: Information: Host-Architektur amd64
dpkg-source --before-build equivs.x2AVPx
fakeroot debian/rules clean
dh_testdir
dh_clean
dh_clean: Compatibility levels before 9 are deprecated (level 7 in use)
dpkg-source -b equivs.x2AVPx
dpkg-source: Information: Quellformat »1.0« wird verwendet
dpkg-source: Warnung: Quellverzeichnis »equivs.x2AVPx« lautet nicht - »meta-mc-1.0«
dpkg-source: Information: meta-mc wird in meta-mc_1.0.tar.gz gebaut
dpkg-source: Information: meta-mc wird in meta-mc_1.0.dsc gebaut
debian/rules build
make: Für das Ziel „build“ ist nichts zu tun.
fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_prep
dh_testdir
dh_testroot
dh_install
dh_install: Compatibility levels before 9 are deprecated (level 7 in use)
dh_installdocs
dh_installdocs: Compatibility levels before 9 are deprecated (level 7 in use)
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_installdeb: Compatibility levels before 9 are deprecated (level 7 in use)
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: Paket »meta-mc« wird in »../meta-mc_1.0_all.deb« gebaut.
dpkg-genbuildinfo
dpkg-genchanges >../meta-mc_1.0_amd64.changes
...
Das Ergebnis umfaßt eine Reihe von Dateien und sieht dann wie folgt aus:
Ergebnis nach dem Bauen des Pakets.
$ ls meta-mc*
meta-mc_1.0_all.deb meta-mc_1.0_amd64.changes meta-mc_1.0.tar.gz
meta-mc_1.0_amd64.buildinfo meta-mc_1.0.dsc
meta-mc_1.0_all.deb
das erzeugte Metapaket
meta-mc_1.0_amd64.buildinfo
Dateien und Softwarepakete, die zum Zeitpunkt
der Erstellung des Pakets installiert sind
$ cat meta-mc_1.0_amd64.buildinfo
Format: 1.0
Source: meta-mc
Binary: meta-mc
Architecture: all source
Version: 1.0
Checksums-Md5:
0e03c6890fc8a72762cf994a0cdcafb7 487 meta-mc_1.0.dsc
5050e909c14b6ccf703cf00ebf831594 2050 meta-mc_1.0_all.deb
Checksums-Sha1:
91ab2cf66937c606ff3abb8853f1555b78521a7d 487 meta-mc_1.0.dsc
c5640969e2e515a0fca2f49fc5835846a1d9a8fa 2050 meta-mc_1.0_all.deb
Checksums-Sha256:
ced0cf69f3eeeef5b4370b0c5654f0db3c5eb77809fc8057b79f91bd154d3c83 487 meta-mc_1.0.dsc
c2ca1265083bf413856c29afdfd00e47b8850fa28a89c85510867b6a65644538 2050 meta-mc_1.0_all.deb
Build-Origin: Debian
Build-Architecture: amd64
Build-Date: Wed, 13 Nov 2019 14:55:05 +0100
Installed-Build-Depends:
autoconf (= 2.69-10),
automake (= 1:1.15-6),
autopoint (= 0.19.8.1-2+deb9u1),
...
meta-mc_1.0_amd64.changes
die Änderungshistorie zum erzeugten Paket. Diese
Datei wird benötigt, um das erzeugte Paket später auf einem Paketmirror
hochzuladen.
$ cat meta-mc_1.0_amd64.changes
Format: 1.8
Date: Wed, 13 Nov 2019 14:55:04 +0100
Source: meta-mc
Binary: meta-mc
Architecture: source all
Version: 1.0
Distribution: unstable
Urgency: low
Maintainer: Frank Hofmann
Changed-By: Frank Hofmann
Description:
meta-mc - Installs the Midnight Commander
Changes:
meta-mc (1.0) unstable; urgency=low
* First version
Checksums-Sha1:
91ab2cf66937c606ff3abb8853f1555b78521a7d 487 meta-mc_1.0.dsc
68ae676fb11fcca32674557510327830499e17a2 1826 meta-mc_1.0.tar.gz
c5640969e2e515a0fca2f49fc5835846a1d9a8fa 2050 meta-mc_1.0_all.deb
42ece0cc919f8be786615c6fd5e0c992946455ca 5230 meta-mc_1.0_amd64.buildinfo
Checksums-Sha256:
ced0cf69f3eeeef5b4370b0c5654f0db3c5eb77809fc8057b79f91bd154d3c83 487 meta-mc_1.0.dsc
27e3c42c64e1243371ff68bf62f255e863e54c8f5922326b5ddc494d8c3cb6cd 1826 meta-mc_1.0.tar.gz
c2ca1265083bf413856c29afdfd00e47b8850fa28a89c85510867b6a65644538 2050 meta-mc_1.0_all.deb
f94aec05b0f2aea1f83e95debe3f842cf0a317f18cc8ff2a737025b33ad4e672 5230 meta-mc_1.0_amd64.buildinfo
Files:
0e03c6890fc8a72762cf994a0cdcafb7 487 misc optional meta-mc_1.0.dsc
396fa6392e9518bb302d88c4c038e095 1826 misc optional meta-mc_1.0.tar.gz
5050e909c14b6ccf703cf00ebf831594 2050 misc optional meta-mc_1.0_all.deb
261b4cb586d5d8d11a22badf6fb3c914 5230 misc optional meta-mc_1.0_amd64.buildinfo
meta-mc_1.0.dsc
die Paketbeschreibung für die Paketverwaltung (Quellcode)
$ cat meta-mc_1.0.dsc
Format: 1.0
Source: meta-mc
Binary: meta-mc
Architecture: all
Version: 1.0
Maintainer: Frank Hofmann
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 7)
Package-List:
meta-mc deb misc optional arch=all
Checksums-Sha1:
68ae676fb11fcca32674557510327830499e17a2 1826 meta-mc_1.0.tar.gz
Checksums-Sha256:
27e3c42c64e1243371ff68bf62f255e863e54c8f5922326b5ddc494d8c3cb6cd 1826 meta-mc_1.0.tar.gz
Files:
396fa6392e9518bb302d88c4c038e095 1826 meta-mc_1.0.tar.gz
meta-mc_1.0.tar.gz
das Quellpaket zum erzeugten Metapaket
Jetzt wurde das Paket erfolgreich gebaut — Gratulation!
22.3. Die Komponenten des Pakets kryptographisch signieren
Das zuvor gebaute Paket können Sie uneingeschränkt benutzen (und auch direkt
bei
Abschnitt 22.5, „Das neue Paket benutzen“
weiterlesen). In den nun folgenden
Abschnitten gehen wir noch einen Schritt weiter in Richtung Sicherheit und
versehen sowohl die einzelnen Komponenten des Pakets als auch das gesamte
Paket selbst mit einer kryptographischen Signatur. Das garantiert jedem Nutzer
die Echtheit des Pakets — sprich: der Inhalt und das Paket selbst stammt aus
einer verlässlichen Quelle.
Zunächst signieren Sie den Quellcode und die Änderungen (
.changes
-Datei) mit
ihrem GnuPG-Schlüssel. In Anwendung kommen dafür die beiden Werkzeuge
debsign
aus dem Paket
devscripts
[Debian-Paket-devscripts]
und
gpg
aus dem Paket
[Debian-Paket-gpg]
Signieren des Quellpakets.
$ debsign -k D431AC07 meta-mc_1.0.dsc
signfile dsc meta-mc_1.0.dsc D431AC07

Successfully signed dsc file
debsign
freut sich über den Schalter
-k
, den Wert ihres GnuPG-Schlüssels
und den Namen der zu signierenden Datei. Ist es im obigen Aufruf das Quellpaket,
geben Sie im unteren Aufruf die
.changes
-Datei an.
Signieren der Änderungen.
$ debsign -k D431AC07 meta-mc_1.0_amd64.changes
The .dsc file is already signed.
Would you like to use the current signature? [Yn]Y
Leaving current signature unchanged.
fixup_buildinfo meta-mc_1.0.dsc meta-mc_1.0_amd64.buildinfo
signfile buildinfo meta-mc_1.0_amd64.buildinfo D431AC07

fixup_changes dsc meta-mc_1.0.dsc meta-mc_1.0_amd64.changes
fixup_changes buildinfo meta-mc_1.0_amd64.buildinfo meta-mc_1.0_amd64.changes
signfile changes meta-mc_1.0_amd64.changes D431AC07

Successfully signed buildinfo, changes files
Zur Sicherheit prüfen Sie die Signatur mit Hilfe von
gpg
nach. In Anwendung
ist der Schalter
--verify
gefolgt von der signierten Datei. Nachfolgende
Ausgabe zeigt, dass die Signatur korrekt ist, aber nicht garantiert werden kann,
dass der verwendete kryptographische Schlüssel authentisch ist. Einen Schlüssel
mit einem fremden Namen erzeugen kann ja jeder.
Prüfen der Signatur des Quellpakets.
$ gpg --verify meta-mc_1.0.dsc
gpg: Signatur vom Do 14 Nov 2019 15:12:00 CET
gpg: mittels RSA-Schlüssel 35F8DF9C884E36AB974460AFCFA72978D431AC07
gpg: Korrekte Signatur von "Frank Hofmann (Hofmann EDV) " [unbekannt]
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck = 35F8 DF9C 884E 36AB 9744 60AF CFA7 2978 D431 AC07
22.4. Das Debianpaket kryptographisch signieren
Für diesen abschließenden Schritt stehen zwei verschiedene Werkzeuge bereit —
dpkg-sig
(Debianpaket
dpkg-sig
[Debian-Paket-dpkg-sig]
) und
debsigs
(Debianpaket
debsigs
[Debian-Paket-debsigs]
). Leider sind deren Ergebnisse
nicht zueinander kompatibel.
22.4.1.
dpkg-sig
verwenden
Rufen Sie
dpkg-sig
auf, erzeugt es eine Debian-
control
-Datei mit einer
Reihe nützlicher Einträge:
der Version von
dpkg-sig
, die die Signatur erzeugt hat
die GnuPG-Information über denjenigen, in dessen Namen die Signierung
vorgenommen wurde
dessen Rolle
einen Abschnitt mit Checksummen, Dateigrößen und Dateinamen der Binär-,
Kontroll- und Datendateien im Debianpaket.
Der Name der erzeugten Datei hängt von der ausgewählten Rolle ab. Falls nicht
weiter spezifiziert, ist das derjenige, der das Paket gebaut hat. Dann heißt
die neue Datei
_gpgbuilder
. Die Datei wir dem Debianpaket hinzugefügt, das
Paket wird mit GnuPG signiert und die Signatur als Klartext ergänzt.
Das Debianpaket signieren.
$ dpkg-sig -k D431AC07 --sign builder meta-mc_1.0_all.deb
Processing meta-mc_1.0_all.deb...
gpg: "D431AC07" wird als voreingestellter geheimer Signaturschlüssel benutzt
Signed deb meta-mc_1.0_all.deb
Somit können Sie jetzt über mehrere Ebenen hinweg die Echtheit der Daten prüfen — entweder mittels
gpg --verify
, oder mittels
dpkg-sig --verify
Prüfen der Signatur mittels
gpg
$ gpg --verify meta-mc_1.0_all.deb
gpg: Signatur vom Fr 15 Nov 2019 14:10:36 CET
gpg: mittels RSA-Schlüssel 35F8DF9C884E36AB974460AFCFA72978D431AC07
gpg: Korrekte Signatur von "Frank Hofmann (Hofmann EDV) " [unbekannt]
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck = 35F8 DF9C 884E 36AB 9744 60AF CFA7 2978 D431 AC07
Prüfen der Signatur mittels
dpkg-sig
$ dpkg-sig --verify meta-mc_1.0_all.deb
Processing meta-mc_1.0_all.deb...
GOODSIG _gpgbuilder 35F8DF9C884E36AB974460AFCFA72978D431AC07 1573823436
22.4.2.
debsigs
benutzen
Die Alternative zu
dpkg-sig
ist
debsigs
. Nachfolgender Aufruf signiert das
Paket
meta-mc
über den Schalter
-k
(Langform
--default-key
) mit dem
Schlüssel
D431AC07
. Die Angabe von
--sign
ist die kryptographische Signatur
der Organisation, die das Paket bereitstellt. Erlaubte Werte sind
origin
für den Originalautor,
maint
für den Paketmaintainer und
archive
für den
Namen des Archivs, welches das Paket bereitstellt.
Das Debianpaket signieren.
$ debsigs --sign=origin -k D431AC07 meta-mc_1.0_all.deb
gpg: "D431AC07" wird als voreingestellter geheimer Signaturschlüssel benutzt
Nun ist auch der Sicherheitscheck über die Bühne und das Paket kann zum Einsatz
kommen. Auf gehts!
22.5. Das neue Paket benutzen
Das fertige Paket steht nun zum Einsatz bereit. Entweder laden Sie dieses
auf einen Paketmirror hoch (siehe
Kapitel 30,
Eigenes APT-Repository anlegen
) oder
Sie installieren das Paket gleich direkt auf ihrem System. Für letzteres haben
Sie mehrere Möglichkeiten.
22.5.1. Mittels
dpkg
und APT
Zuerst rufen Sie
dpkg -i paket.deb
auf, danach
apt-get install -f
. Ersteres
veranlasst
dpkg
, ihr Paket zu installieren.
Installieren des Metapakets
meta-mc
mittels
dpkg
# dpkg -i meta-mc_1.0_all.deb
Vormals nicht ausgewähltes Paket meta-mc wird gewählt.
(Lese Datenbank ... 239663 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von meta-mc_1.0_all.deb ...
Entpacken von meta-mc (1.0) ...
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von meta-mc:
meta-mc hängt ab von mc; aber:
Paket mc ist nicht installiert.
meta-mc hängt ab von mc-data; aber:
Paket mc-data ist nicht installiert.

dpkg: Fehler beim Bearbeiten des Paketes meta-mc (--install):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
Fehler traten auf beim Bearbeiten von:
meta-mc
dpkg
lässt das Paket unkonfiguriert, da es die im Paket benannten
Paketabhängigkeiten nicht selbst auflösen kann. Sie erkennen den Status an der
Buchstabenkombination
iU
für
Paket installiert
und
nicht konfiguriert
Installationsstatus von
meta-mc
# dpkg -l | grep meta-mc
iU meta-mc 1.0 all Installs the Midnight Commander
Nun rufen Sie
apt-get install -f
auf. APT behebt nun die fehlenden
Abhängigkeiten und konfiguriert das Paket
meta-mc
wie folgt:
Auflösen der Paketabhängigkeiten mit
apt-get
# apt-get install -f
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Abhängigkeiten werden korrigiert ... Fertig
The following additional packages will be installed:
mc mc-data
Vorgeschlagene Pakete:
arj dbview djvulibre-bin gv libaspell-dev odt2txt python-boto python-tz
Die folgenden NEUEN Pakete werden installiert:
mc mc-data
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 2 nicht aktualisiert.
1 nicht vollständig installiert oder entfernt.
Es müssen noch 0 B von 1.780 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 7.175 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
Vormals nicht ausgewähltes Paket mc-data wird gewählt.
(Lese Datenbank ... 239667 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../mc-data_3%3a4.8.18-1_all.deb ...
Entpacken von mc-data (3:4.8.18-1) ...
Vormals nicht ausgewähltes Paket mc wird gewählt.
Vorbereitung zum Entpacken von .../mc_3%3a4.8.18-1_amd64.deb ...
Entpacken von mc (3:4.8.18-1) ...
Trigger für mime-support (3.60) werden verarbeitet ...
Trigger für desktop-file-utils (0.23-1) werden verarbeitet ...
mc-data (3:4.8.18-1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
Trigger für hicolor-icon-theme (0.15-1) werden verarbeitet ...
mc (3:4.8.18-1) wird eingerichtet ...
meta-mc (1.0) wird eingerichtet ...
22.5.2. Mittels
gdebi
Dem Werkzeug
gdebi
[Debian-Paket-gdebi]
ist in
Abschnitt 6.4.5, „GDebi“
ein eigener
Bereich gewidmet. Es untersucht das zuvor erzeugte Metapaket vor dessen
Installation und löst die Paketabhängigkeiten sauber auf.
Installation des Metapakets mittels
gdebi
# gdebi meta-mc_1.0_all.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading state information... Done
Erfordert die Installation folgender Pakete: mc mc-data

Installs the Midnight Commander
Installs the Midnight Commander
Wollen Sie das Software-Paket installieren? [j/N]:j
Fetched 0 B in 0s (0 B/s)
Vormals nicht ausgewähltes Paket mc-data wird gewählt.
(Lese Datenbank ... 240891 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../mc-data_3%3a4.8.18-1_all.deb ...
Entpacken von mc-data (3:4.8.18-1) ...
Vormals nicht ausgewähltes Paket mc wird gewählt.
Vorbereitung zum Entpacken von .../mc_3%3a4.8.18-1_amd64.deb ...
Entpacken von mc (3:4.8.18-1) ...
Trigger für mime-support (3.60) werden verarbeitet ...
Trigger für desktop-file-utils (0.23-1) werden verarbeitet ...
mc-data (3:4.8.18-1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
Trigger für hicolor-icon-theme (0.15-1) werden verarbeitet ...
mc (3:4.8.18-1) wird eingerichtet ...
Vormals nicht ausgewähltes Paket meta-mc wird gewählt.
(Lese Datenbank ... 241248 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von meta-mc_1.0_all.deb ...
Entpacken von meta-mc (1.0) ...
meta-mc (1.0) wird eingerichtet ...
22.5.3. Mittels
apt
Das Werkzeug
apt
steht
gdebi
in nichts nach — es löst ebenfalls die
Paketabhängigkeiten sauber auf.
apt
kann ebenfalls mit lokalen Paketen
umgehen, sofern im Pfadnamen zum Paket ein Verzeichnistrenner enthalten
ist. Liegt das Paket im lokalen Verzeichnis, fügen Sie vor dem Namen der
Paketdatei die Zeichen
./
hinzu. Der Aufruf sieht dann wie nachfolgend
gezeigt aus.
Abbildung 22.1.
apt
bei der Installation des Metapakets
meta-mc
Kapitel 23. Paketformate mischen
23.1. Einführung
Debian GNU/Linux und seine Derivate setzen auf das
deb
-Format auf.
Eine Vielzahl Pakete stehen in diesem Format bereit und erlauben die
Zusammenstellung und den Betrieb stabiler Systeme. Mitunter treten
Situationen auf, die die Einbindung weiterer Software erfordern, die in
einem anderen Paketformat vorliegt, bspw.
tar.gz
oder
rpm
. Die
Gründe dafür sind vielfältig:
Die Software wurde nur zusammengestellt und liegt bislang nur als
tar.gz
-Archiv vor.
Die Software ist bislang nicht anders paketiert, weil sich bspw. der
Entwickler nur mit genau diesem Paketformat und dem Mechanismus zur
Paketierung auskennt.
Das bestehende
deb
-Paket liegt zu weit zurück („ist zu alt“) und
neuere Features werden benötigt. Eine neuere Variante ist jedoch in
einem anderen Paketformat erhältlich.
Das gewünschte Paket oder die benötigte Version wurde noch nicht in
die stabile Veröffentlichung aufgenommen. Das Paket ist noch zu neu und
liegt daher „in Quarantäne“.
Die Software bzw. das Debianpaket wurde noch nicht für ihre gewünschte
Plattform portiert.
Helfen Ihnen an dieser Stelle
Debian Backports
(siehe
Kapitel 19,
Backports
) oder das Mischen von Veröffentlichungen (siehe
Kapitel 20,
Veröffentlichungen mischen
) nicht weiter, stellt die Verwendung
eines Pakets im Fremdformat eine Variante zur Lösung dar. Nachfolgend
gehen wir darauf ein, wie Ihnen dabei das Programm
alien
helfen kann
(siehe
Abschnitt 23.2, „Fremdformate mit
alien
hinzufügen“
).
23.2. Fremdformate mit
alien
hinzufügen
23.2.1. Einführung
Den Begriff
alien
übersetzen Sie am ehesten mit
fremd
Fremdling
oder
Ausländer
alien
heißt jedoch auch das gleichnamige Debianpaket
[Debian-Paket-alien]
. Es hilft Ihnen, eine Software, welche nicht als
deb
-Paket vorliegt, entsprechend umzuwandeln und für Ihre
Debian-Installation vorzubereiten.
Wie bereits in „Gestaltwandler. Programmpakete richtig konvertieren“
[Hofmann-Osterried-Alien-LinuxUser]
beschrieben, sollten bei der
Umwandlung des Pakets nach Möglichkeit die folgenden Bestandteile
erhalten bleiben:
die Paketbeschreibungen
damit erkennen Sie später über die
Paketverwaltung, um was für eine Software es sich handelt, wer der Autor
ist oder wo sich die dazugehörige Homepage des Projekts befindet.
die Informationsdateien
diese beschreiben, wie Sie das Paket wieder
entfernen oder aktualisieren. Häufig befinden sich auch Hinweise dabei,
die benennen, was dabei gegebenenfalls zu beachten ist.
Paketabhängigkeiten
die Informationen über Abhängigkeiten zu anderer
Software.
Architektur oder Plattform
die Angabe der Prozessorarchitektur im
Dateinamen, wie etwa
amd64
bei
deb
-Paketen und
x86_64
bei
rpm
-Archiven.
Diese Bestandteile benötigt die Paketverwaltung von Debian GNU/Linux, um
die umgewandelten Softwarepakete korrekt in den Paketbestand einordnen
zu können. Ohne die Informationen besteht bspw. keine Möglichkeit, die
Abhängigkeiten zu anderen Softwarepaketen zu prüfen und sicherzustellen,
dass alle benötigten Komponenten verfügbar sind und ggf. installiert
werden können.
23.2.2. Pakete umwandeln
Voraussetzungen
Damit Ihnen das Umwandeln von bestehenden Paketen in das
deb
-Format
gelingt, müssen ein paar Voraussetzungen erfüllt sein. Für
alien
benötigen Sie:
Perl
[Debian-Paket-perl]
— weil
alien
ein Perl-Skript ist
die Werkzeuge
rpm
bzw.
yum
aus den gleichnamigen Debianpaketen für
die Konvertierung von
rpm
-Paketen nach
deb
[Debian-Paket-rpm]
und
[Debian-Paket-yum]
die Werkzeuge
dpkg
dpkg-dev
und
debhelper
aus den Paketen
[Debian-Paket-dpkg]
[Debian-Paket-dpkg-dev]
und
[Debian-Paket-debhelper]
zur Erzeugung von Debianpaketen
den GNU-C-Compiler
gcc
und
make
[Debian-Paket-gcc]
und
[Debian-Paket-make]
), sofern Software im Quellcode vorliegt und aus
diesem zu übersetzen ist
Die beiden Pakete
perl
und
dpkg
gehören zu den essentiellen Paketen und
sind somit stets bereits auf ihrer Debian-Installation vorhanden. Die anderen
genannten Pakete gehören nicht dazu und könnten somit noch fehlen. Falls
letzteres zutrifft, installieren Sie diese über die Paketverwaltung nach
(siehe „Pakete installieren“ in
Abschnitt 8.38, „Pakete installieren“
).
Durchführung
Die Umwandlung eines
rpm
-Pakets in ein
deb
-Paket erfolgt mit Hilfe
des Werkzeugs
alien
, der Angabe des gewünschten Paketformats sowie
über die originale Paketdatei. Das Paketformat geben Sie über den
Schalter
-d
(Langform
--to-deb
) an. Nachfolgend demonstrieren wir
Ihnen das anhand des Pakets
mc
für den Midnight Commander
[mc]
Umwandlung eines
rpm
-Pakets in ein
deb
-Paket.
# alien -d mc-4.8.22-1.mga7.x86_64.rpm
mc_4.8.22-2_amd64.deb generated
Der Schalter
-d
ist der von
alien
angenommene Standardfall und
diesen können Sie somit im Aufruf weglassen. Darüberhinaus unterstützt
alien
noch die folgenden, weiteren Schalter zur Umwandlung zwischen
anderen Formaten:
-r
(Langform
--to-rpm
Umwandlung in ein
rpm
-Paket
-t
(Langform
--to-tgz
Umwandlung in ein mit
gzip
komprimiertes
tar
-Archiv (Erweiterung
.tar.gz
), bspw. von der Linux-Distribution
Slackware genutzt
--to-slp
Umwandlung nach Paketen für Stampede Linux
[stampedeLinux]
(Erweiterung
.slp
). Zu diesem Schalter besteht keine Kurzform.
-p
(Langform
--to-pkg
Umwandlung zu (Open)Solaris-Paketen
mit der Erweiterung
.pkg
(siehe
[Solaris]
und
[OpenSolaris]
).
Am Ende überprüfen Sie das Paket, um sicherzugehen, dass es auch
tatsächlich zu ihrer bestehenden Installation passt. Dabei hilft Ihnen
der Schalter
-c
(Langform
--contents
) von
dpkg
, um zu erkennen, an
welche Stellen in ihrer Installation die einzelnen Komponenten des neuen
Pakets installiert werden.
Wohin wird der Paketinhalt installiert.
# dpkg --contents mc_4.8.22-2_amd64.deb
drwxr-xr-x root/root 0 2019-11-16 12:11 ./
drwxr-xr-x root/root 0 2019-11-16 12:11 ./etc/
drwxr-xr-x root/root 0 2019-11-16 12:11 ./etc/profile.d/
-rw-r--r-- root/root 153 2019-01-01 18:36 ./etc/profile.d/20mc.sh
-rw-r--r-- root/root 49 2019-01-01 18:36 ./etc/profile.d/20mc.csh
drwxr-xr-x root/root 0 2019-11-16 12:11 ./etc/mc/
-rw-r--r-- root/root 21874 2019-01-01 18:35 ./etc/mc/mc.ext
-rwxr-xr-x root/root 791 2018-12-28 20:35 ./etc/mc/edit.indent.rc
...
Mit einer Kombination aus den beiden Kommandos
dpkg --info
Paketname
und
grep Depends
sehen Sie, welche Paketabhängigkeiten für das
umgewandelte Paket bestehen und erfüllt sein müssen, damit dieses
korrekt in ihr System eingespielt werden kann.
Abhängigkeiten von einem umgewandelten Paket.
# dpkg --info mc_4.8.22-2_amd64.deb | grep Depends
Depends: libc6 (>= 2.15), libglib2.0-0 (>= 2.35.9), libgpm2 (>= 1.20.4), libslang2 (>= 2.2.4), libssh2-1 (>= 1.2.8)
Aus der obigen Ausgabe ersehen Sie, dass das Paket
mc
von den fünf
Bibliotheken
Libc
Glib2
Gpm2
Slang2
und
Ssh2
abhängt.
Fallstricke und Besonderheiten bei der Umwandlung
Bei der Umwandlung des Paketformats bestehen mehrere Fallstricke. Diese
führen regelmäßig dazu, dass die umgewandelte Software nicht wie erhofft
funktioniert:
die referenzierten Bibliotheken passen entweder gar nicht, nicht mehr
(sind bspw. veraltet) oder sind nicht auffindbar. Bei letzterem sind
diese bspw. nicht installiert oder haben schlicht und einfach einen
anderen Paketnamen.
die angegebenen Pfade im Originalpaket stimmen nicht mit Ihrer lokalen
Verzeichnisstruktur oder der von Debian GNU/Linux genutzten Struktur
überein. Hier helfen ggf. symbolische Links weiter, die dann auf das
richtige Ziel verweisen.
der Binärcode passt nicht zu Ihrer genutzten Plattform und
Architektur. Prüfen Sie, ob es das Softwarepaket auch für ihre Plattform
bzw. Architektur gibt.
das Format der Konfiguration sorgt für Ärger, bspw. die verfügbaren
Optionen und Schalter
es bestehen Konflikte mit anderer, bereits installierter Software
Desweiteren haben
deb
-basierte Systeme zudem ihre Eigenheiten. Die
folgenden Schalter von
alien
helfen Ihnen dabei, auch mit weiteren
Sonderfällen bei der Umwandlung von Paketen klarzukommen:
--bump=
Wert
ähnlich zu
--version
. Erhöhe die Versionsnummer
des neuen Softwarepakets nicht um 1, sondern um den von ihnen im Aufruf
angegebenen Wert.
--description=
Beschreibung
Füge dem neuen Paket die genannte
Beschreibung hinzu. Das ist insbesondere bei
tar.gz
-Dateien sinnvoll,
da diese normalerweise noch keine Paketbeschreibung beinhalten.
--fixperms
bringe alle Angaben zu den Berechtigungen und den
Eigentümern in Ordnung
--patch=
Dateiname
--anypatch
und
--nopatch
automatisches
Anpassen von Startup-Skripten und Pfaden gemäß dem File Hierarchy
Standard (FHS)
--target=
Architektur
setze die Plattform für das Paket auf den
angegebenen Wert. Siehe
Abschnitt 1.2, „Debian-Architekturen“
zu weiteren Angaben zur
Plattform bzw. Architektur eines Paketes
--version=
Versionsnummer
Füge dem neuen Paket die angegebene
Versionsnummer hinzu. Das ist insbesondere bei
tar.gz
-Dateien
sinnvoll, da diese normalerweise noch keine Versionsnummer beinhalten.
--veryverbose
noch ausführlicher als
-v
bzw.
--verbose
-c
(Langform
--scripts
erhalte die bestehenden Pre- und
Post-Install- sowie Remove-Skripte eines Paketes
-g
(Langform
--generate
) und
--veryverbose
erweitern der Fehlersuche
-g
(Langform
--generate
das Paket vor der Umwandlung noch
bearbeiten. Der Schalter erzeugt ein Verzeichnis mit dem Paketinhalt und
ermöglicht Ihnen damit die Ergänzung und Korrektur des Paketinhalts,
bevor daraus ein neues Paket gebaut wird.
-k
(Langform
--keep-version
die Versionsnummer des Paketes
beibehalten. Normalerweise zählt
alien
diese bei der Umwandlung um
eins hoch
-s
(Langform
--single
wie
-g
, aber ohne das Verzeichnis
packagename.orig
zu erstellen. Der Schalter ist nützlich, wenn Sie ein
Debianpaket erstellen möchten und zu wenig Speicherplatz zur Verfügung
haben.
-T
(Langform
--test
teste das erzeugte Debianpaket mit
lintian
[Debian-Paket-lintian]
(siehe „Qualitätskontrolle“ in
Kapitel 37,
Qualitätskontrolle
).
-v
(Langform
--verbose
aktiviere die ausführliche Ausgabe.
alien
gibt damit Informationen zu jedem einzelnen Schritt bei der
Umwandlung eines Paketes an
-V
(Langform
--version
Ausgabe der Version von
alien
23.2.3. Umgewandelte Pakete einspielen
Haben Sie das Paket erfolgreich in das
deb
-Format umgewandelt, spielen
Sie dieses mittels
dpkg -i
paketname.deb
ein. APT und
aptitude
bekommen von der Aktion erstmal nichts mit, stören sich aber nicht
daran, dass das Paket eingespielt ist. Bei
aptitude
finden Sie das
Paket später in der Kategorie "Veraltete und selbst erstellte Pakete".
Bei diesem Schritt können mehrere Ergebnisse eintreten — alles geht glatt
und die eingespielte Software funktioniert, alles geht glatt und Software
funktioniert nicht, oder das Einspielen geht komplett schief. Da bleibt nur
manuelle Nacharbeitung. Ursache dafür sind in der Regel Abhängigkeitsprobleme
zu anderen Paketen. Diese Probleme beheben Sie mit dem Aufruf von
apt-get install -f
(oder
--fix-broken
als Langform). Mit dem Schritt löst
APT alle bestehenden Abhängigkeiten auf und installiert dabei fehlende Pakete
nach.
23.2.4. Pakete umwandeln und einspielen
In den obigen Schritten in
„Durchführung“
und
Abschnitt 23.2.3, „Umgewandelte Pakete einspielen“
haben Sie zuerst ein
Paket umgewandelt und danach installiert.
alien
kann jedoch auch beide
Schritte in einem Rutsch durchführen — ein Paket von
rpm
nach
deb
umwandeln und danach gleich auf ihrem System einspielen. Dazu benutzen
Sie den Schalter
-i
(Langform
--install
).
Das Paket
paket.rpm
mit
alien
umwandeln und einspielen.
# alien -i paket.rpm
...
Anmerkung
Nach der Installation des Paketes löscht
alien
die lokal vorliegende
Paketdatei.
23.2.5. Fazit
Das Werkzeug
alien
hilft ihnen dabei, Software verfügbar zu machen,
die es nicht für
deb
-basierte Systeme gibt. Wir raten ihnen dazu,
dafür die Version der Software zu benutzen, die auch zu Ihrer
Distribution und Architektur passt. Diese lässt sich i.d.R. am
einfachsten in Ihren Softwarebestand integrieren. Weitere Informationen
dazu finden auf der Projektwebseite von
alien
[alien]
23.3.
deb
-Pakete in
rpm
-Strukturen
Auch für Linux-Distributionen, die auf dem
rpm
-Paketformat aufsetzen,
können Sie
deb
-Pakete einspielen und benutzen. Es gelten dabei die
gleichen Hinweise wie bereits unter "Fremdformate mit
alien
hinzufügen"
Abschnitt 23.2, „Fremdformate mit
alien
hinzufügen“
genannt — es ist
nicht garantiert, dass das Paket in ihr System passt und erwartungsgemäß
funktioniert.
Diese Möglichkeiten zur Umwandlung und Integration von
deb
-Paketen
sind uns bekannt:
alien
mit dem Schalter
-r
(Langform
--to-rpm
Umwandlung eines
deb
-Paketes in ein
rpm
-Paket. Haben Sie das Paket erfolgreich
umgewandelt, installieren Sie es bspw. wie folgt mittels
yum
und
dessen Schalter
localinstall
auf ihrem System:
Installation des umgewandelten Pakets mittels
yum
# yum localinstall paket.rpm
...
Das Unterkommando
localinstall
veranlasst
yum
, nicht in den
hinterlegten Paketquellen zu suchen, sondern das Paket aus dem lokalen
Verzeichnis zu verwenden. Die Vorgehensweise ist vergleichbar mit dem
Aufruf von
dpkg -i
Projekt
apt4rpm
[apt4rpm]
stammt im Original von Conectiva Linux
[Conectiva]
. Es erstellt aus einem APT-Repository ein lokales RPM-Repository,
so dass die Pakete für
yum
verfügbar werden. Leider wird das Projekt seit
2012 nicht mehr weiterentwickelt.
Projekt
apt-rpm
[apt-rpm]
war offizieller Bestandteil RedHat und später
Conectiva
[Conectiva]
. Das Projekt und dessen Weiterentwicklung wurde leider
bereits 2008 eingestellt. Verwendet wird es jedoch bis heute als Werkzeug bei den
beiden Linux-Distributionen ALT Linux
[altLinux]
und PCLinuxOS
[PCLinuxOS]
Projekt
pacapt
[Arch-Linux-pacapt]
Werkzeug unter Arch Linux. Es
spricht die unterschiedlichen Paketmanager auf den einzelnen Plattformen
an. Derzeit verarbeitet es neben
dpkg
und
apt-get
auch
pacman
(Arch Linux, ArchBang),
homebrew
(Mac OS X),
yum
rpm
(RedHat,
CentOS, Fedora) und
portage
(Gentoo). Es steht ebenfalls als Paket für
Ubuntu bereit
[Ubuntu-Paket-pacapt]
und wird aktiv gepflegt.
Kapitel 24. Umgang mit LTS
Wie wir bereits in „Bedeutung der verschiedenen Entwicklungsstände“
(siehe
Abschnitt 2.10.1, „Bedeutung der verschiedenen Entwicklungsstände“
) beleuchtet
haben, ist LTS eine Abkürzung und steht für
long-term support
— auf
Langzeitunterstützung
. Damit pflegt das Debianprojekt ältere
Veröffentlichungen über bis zu fünf Jahre nach dem Ende des
Releasezyklus
[Plura-lts]
. Zur Kennzeichnung einer Veröffentlichung in
diesem Entwicklungsstand benutzt Debian den Bezeichner
oldoldstable
Betreiben Sie eine solche, ältere Debianinstallation, erreichen Sie
irgendwann einen Punkt, an dem keine weiteren Aktualisierungen der
verwendeten Softwarepakete mehr möglich sind. Versuchen Sie diesen
Schritt trotzdem, meldet sich der Paketmirror mit dem Fehler „Release
file expired“ bei Ihnen zurück. Zu diesem Zeitpunkt ist die LTS-Version
„abgelaufen“, d.h. die weitere Pflege der Versionen aus dieser
Veröffentlichung durch die Paketmaintainer ist eingestellt.
Können Sie die bislang verwendete Veröffentlichung nicht wechseln,
stellt sich die Frage, ob — und wenn ja wie — Sie die bestehende
Installation trotzdem noch weiter betreiben können. Variante 1 ist die
Abschaltung der Gültigkeitsüberprüfung des Release Files. APT liefert
dazu den Schalter
Acquire::Check-Valid-Until
, mit dem Sie die
Überprüfung auf das Ende der Langzeitunterstützung überspringen und bei
Bedarf auch vollständig abschalten können (siehe
Abschnitt 24.1, „Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files“
und
Abschnitt 24.2, „Dauerhaftes Abschalten der Gültigkeitsüberprüfung des Release Files“
). Variante 2 ist die
Zuhilfenahme eines spezialisierten Dienstleisters, der sich um die
Betreuung überfälliger LTS-Installationen im Rahmen des Projekts
Extended LTS
kümmert (siehe
Abschnitt 24.3, „Dienstleister zur Pflege veralteter LTS-Installationen“
).
24.1. Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Um die Überprüfung auf Gültigkeit des Release File einmalig zu
ignorieren, rufen Sie
apt-get
mit dem Schalter
-o
Acquire::Check-Valid-Until=false
auf. In Folge aktualisiert
apt-get
ihre Paketdatenbank anstandslos.
Deaktivieren der Gültigkeitsüberprüfung des Release Files beim Aufruf von
apt-get
# apt-get -o Acquire::Check-Valid-Until=false update
Da Aptitude und
apt
den Schalter ebenfalls verstehen, können Sie den
Aufruf somit auch mit diesen beiden Werkzeugen durchführen.
24.2. Dauerhaftes Abschalten der Gültigkeitsüberprüfung des Release Files
Brauchen Sie das Abschalten häufiger — bspw. bis zum geplanten,
tatsächlichen Versionswechsel — legen Sie am besten eine Datei im
Verzeichnis
/etc/apt/apt.conf.d/
mit dem entsprechenden Schalter an.
Mit dem nachfolgenden Aufruf erzeugen Sie eine Datei
/etc/apt/apt.conf.d/10no-check-valid-until
und setzen den Schalter
dauerhaft
[Stackexchange-LTS]
Dauerhaftes Deaktivieren der Gültigkeitsüberprüfung des Release Files.
# echo "Acquire::Check-Valid-Until=False;" > /etc/apt/apt.conf.d/10no-check-valid-until
24.3. Dienstleister zur Pflege veralteter LTS-Installationen
Nicht jede bestehende LTS-Installation kann ein Upgrade bekommen,
beständige Pflege ist trotzdem notwendig. Debian bietet mit dem Zweig
Extended LTS (ELTS)
[Debian-ELTS]
eine Laufzeitpflege für 10 Jahre an.
Ein Dienstleister, der Sie unterstützt, ist Freexian
[Freexian]
. Er
bietet länger gepflegte, ältere Pakete über den Zweig Freexian ELTS
[Freexian-ELTS]
an.
Kapitel 25. Webbasierte Installation von Paketen mit
apturl
In diesem Abschnitt beleuchten wir die Installation von
deb
-Paketen
über das
apturl
-Protokoll (Langfassung: APT Protocol). Dahinter
verbirgt sich eine Erweiterung für die Webbrowser Firefox/Iceweasel,
Chromium, Konqueror, Opera und Epiphany (ab Gnome 3.6 umbenannt in Web).
Voraussetzung dafür ist das Paket
apturl
[Ubuntu-apturl]
von
Michael Vogt
[Vogt-apturl]
Das Paket ist bislang nicht in Debian enthalten, aber für Ubuntu als PPA
verfügbar. Voraussetzung dafür ist mindestens Ubuntu 7
Feisty Fawn
(veröffentlicht im Frühjahr 2007), in den neueren Veröffentlichungen
gehört es bisher zur Basisinstallation.
25.1. Sinn und Zweck
Die Idee hinter
apturl
ist die Installation von Paketen aus den
eingetragenen Repositories (bzw. Channels bei Ubuntu) über die
Adresszeile Ihres Webbrowsers. Für Installationen auf Servern und
Desktops ist das nicht unbedingt der geeignete Weg, jedoch Tablet
Computer, die Sie im wesentlichen via Webbrowser benutzen. Mitunter ist
das die einzige Möglichkeit, auf dem Gerät eine Softwareerweiterung oder
-aktualisierung vorzunehmen.
Um das Paket ‚cowsay‘ zu installieren, übertragen Sie diese Angabe in
die Adresszeile des Webbrowsers und surfen die darüber genannte URL an:
apt://cowsay
apturl
akzeptiert die Angabe mehrerer Pakete auf einmal. Die
einzelnen Paketnamen trennen Sie jeweils durch Komma voneinander.
Leerzeichen sind dabei in der Paketliste nicht zulässig. Für die beiden
Pakete
cowsay
und
xmms
sieht das wie folgt aus:
apt://cowsay,xmms
Außer den bereits o.g. Tablet Computern sehen wir noch weitere
Einsatzbereiche:
Sie benötigen ein bestimmtes Paket, aber die lokale
Netzwerk-Infrastruktur, in der Sie sich befinden, gestattet nur den
Zugriff über Port 80 (
http
) und 443 (
https
). Dieser Zustand trifft
insbesondere auf freie WLANs bzw. WLANs in Hotels, öffentlichen
Einrichtungen und Schulungsräumen zu, bei denen die Portfreigaben im
Netzwerk recht restriktiv ausgelegt sind.
Die Installation über die „üblichen Wege“ geht nicht, aber
http
ist nutzbar.
Ihr regulärer Paketmirror ist nicht erreichbar und Sie spielen das
Paket aus einer lokalen Quelle als reguläre Datei ein.
Sie nutzen einen lokalen, eigenen Paketmirror (siehe Paketverwaltung
beschleunigen in
Kapitel 26,
Paketverwaltung beschleunigen
).
25.2. Risiken und Bedenken
Obwohl die Bereitstellung des Dienstes die Installation von Paketen über
den Webbrowser sehr leicht macht, haben wir Bedenken im Umgang damit.
Die nachfolgend genannten Punkte sind kaum durchführbar und bergen daher
Risiken für die Integrität Ihres Systems:
Überprüfung der Paketabhängigkeiten
Überprüfung auf Vertrauenswürdigkeit der Paketquelle (siehe
Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“
Überprüfung auf Echtheit und Fehlerfreiheit des Pakets (siehe
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
Bitte beachten Sie, dass alle Benutzer und jedes Programm oben genannte
URL ansurfen und darüber eine Installation auslösen kann. Administrative
Rechte sind zur Paketverwaltung in diesem Fall nicht mehr erforderlich
und legen den Grundstein dafür, dass Aktivitäten außerhalb Ihres
Sichtfeldes und ohne Ihr Wissen als Systemverantwortlicher passieren
können.
25.3. apturl in der Praxis
Todo:
Einsatzszenario
Empfehlungen zur Nutzung
Kapitel 26. Paketverwaltung beschleunigen
26.1. Hintergrund
warum will man das:
Zeitersparnis
Menge der belegten Ressourcen möglichst verringern
Rechner wieder für die Aufgabe bereit haben, für die er gedacht ist
viele regelmäßige Updates ermöglichen
viele Rechner auf dem gleichen Stand halten und dabei den Aufwand möglichst minimieren
bisher üblich:
jeder Rechner bezieht seine Pakete direkt vom Paketmirror und cacht
diese selbst (lokal im Paketcache)
bei jedem Aufruf erfolgt eine separate Kommunikation mit dem
Paketmirror
verfügbare Bandbreite der Internetanbindung/Leitung wird ausgelastet
Bezug der Pakete dauert länger
andere Transaktionen dauert auch länger (werden ausgebremst, sofern
diese nicht mit höherer Priorität versehen sind)
Infrastruktur (Hardware) speichert Daten- und Netzwerkpakete zwischen
viele Rechner hinter einem einzelnen Netzwerkzugang
werden alle aktualisiert, werden jedes Mal die gleichen Pakete erneut
vom Paketmirror bezogen
bspw. automatisierte Aktualisierung (siehe
Kapitel 36,
Automatisierte Aktualisierung
26.2. Möglichkeiten zur Beschleunigung
Internetzugang durch dickere Leitung ersetzen
Hardware (Router) durch leistungsstärkere Hardware ersetzen
Aktualisierung zu den Zeiten vornehmen, wo es die wenigsten (realen)
Benutzer stört oder beeinträchtigt
eatmydata für (virtuelle) Wegwerfmaschinen
/var/cache/apt/
als tmpfs mounten, siehe
Kapitel 29,
Cache-Verzeichnis auf separater Partition
debdelta, siehe
Kapitel 42,
Systeme mit schlechter Internet-Anbindung warten
PDiffs (gibt’s nur bei Testing, Experimental und Sid), siehe auch
Kapitel 42,
Systeme mit schlechter Internet-Anbindung warten
lokalen Zwischenspeicher für Pakete einrichten:
Proxy, der bereits herunterladene Pakete puffert (siehe
Kapitel 28,
Einen APT-Paket-Cache einrichten
eigener Mirror (siehe
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
weitere Softwarepakete zur Beschleunigung
apt-fast
[apt-fast]
(bisher existiert kein offizielles Debian-Paket, siehe auch
[Debian-WNPP-RFP-apt-fast]
Shell-Wrapper um APT und
aptitude
Download der Pakete über mehrere, parallele Verbindungen
benötigt den Downloadhelfer
aria2
[Debian-Paket-aria2]
oder
axel
weder in Debian noch in Ubuntu offiziell drin, nur per Launchpad-PPA
apt-fast
akzeptiert alle Aufrufparameter von APT und
aptitude
und reicht diese einfach durch
Aufruf ändert sich in:
Aufruf der Paketinstallation mittels
apt-fast
# apt-fast install cssed
...
26.3. Empfehlungen zum Umgang im Alltag
Die enorme Vielfalt des Debian-Paketbestands macht neugierig und
ermutigt sicher nicht nur uns als Autoren, Software mit interessant
klingenden Namen und Möglichkeiten auszuprobieren und damit zu
experimentieren. Wir empfehlen Ihnen, trotz allem Enthusiasmus dabei die
nachfolgenden Aspekte nicht zu vergessen:
Mit der Zeit wächst die Menge installierter Softwarepakete, was a)
zu einem gut gefüllten Speichermedium, b) zu potentiell mehr unbenutzt
laufenden Programmen und c) zu einem Dateisystem führt, welches Stück
für Stück an seine Leistungsgrenzen bzgl. der Einträge (Inodes)
gelangt. Je stärker das Speichermedium gefüllt ist, umso größer wird
die Zugriffszeit auf die Daten. Die Erfahrungswerte schwanken zwar,
aber ein Füllstand von über 80% bedarf zumindest zunehmend stärkerer
Beobachtung. Behalten Sie daher neben den Verzeichnissen für Binär- und
Konfigurationsdateien auch den Paketcache im Auge (siehe dazu
Kapitel 7,
Paketcache
).
Halten Sie den Paketbestand auf Ihren Systemen möglichst klein und
überschaubar. Damit verringert sich der Umfang der Pakete und Daten, die
von Ihnen zu aktualisieren sind.
Misten Sie den Softwarebestand regelmäßig aus. Lassen Sie daher nur
die Softwarepakete installiert, die Sie auch tatsächlich benötigen. Dies
setzt allerdings voraus, dass Sie wissen, was Sie oder die von Ihnen
betreuten Benutzer tatsächlich verwenden. Als Admin sollten Sie das aber
wissen bzw. können das sicher herausfinden. Vergessen Sie beim Aufräumen
nicht die Konfigurationsdateien der Pakete (siehe
Abschnitt 8.43, „Pakete deinstallieren“
). Achten Sie dabei insbesondere auf Pakete,
die automatisiert Daemons starten. Dies erhöht die benötigte
Rechenleistung und im Endeffekt auch die Stromrechnung.
Setzen Sie die von Ihnen betreuten Systeme möglichst identisch auf.
Das betrifft insbesondere die von Ihnen ausgewählte Veröffentlichung,
den Paketbestand und die verwendeten Versionen. Es verringert damit die
Vielfalt und Probleme, die überhaupt auftreten können (siehe dazu auch
Kapitel 35,
Automatisierte Installation
).
Aktualisieren Sie Ihre Software regelmäßig. Neben der
sicherheitsrelevanten Aktualität des fehlerbereinigten Softwarebestands
sorgt es für einen weiteren Zeitvorteil: viele kleine Änderungen sind
meist einfacher durchzuführen als eine große mit vielen Korrekturen.
Räumen Sie auch den Paketcache auf. Das kann sowohl automatisiert, als
auch manuell geschehen (siehe dazu
Abschnitt 7.5, „Paketcache aufräumen“
).
Kapitel 27. Paketverwaltung hinter einem http-Proxy
Oftmals wird in größeren Netzen der Zugang zum Internet über einen Proxy
Server — häufig nur mit
Proxy
abgekürzt — geregelt. Ein solcher
Proxy Server ist vergleichbar mit einem Pförtner, der den Datenfluss
zwischen zwei Netzsegmenten steuert und somit entscheidet, welche
Netzwerkpakete zwischen den beiden Netzsegmenten ausgetauscht werden
können.
27.1. Hintergrund
Es gibt unterschiedliche Gründe, warum Proxy Server überhaupt betrieben
werden:
Sie möchten Traffic oder Übertragungszeit sparen. Dabei werden Dateien
nach der ersten Anfrage zwischengespeichert (
gecached
oder
gepuffert
und somit nicht erneut langwierig oder kostenverursachend aus dem externen
Netzsegment geladen, bspw. dem Internet. Werden diese Daten von einem
Rechner im internen Netzsegment erneut angefordert, geht es aus dem
Cache des Proxy Servers deutlich schneller.
Sie möchten sicherstellen, dass nur bestimmte Internetseiten besucht
werden können oder gar nur von berechtigen Nutzern abgerufen werden
dürfen. Benötigt werden hier dann in der Regel auch zusätzliche
Authentifizierungsdaten, um über den Proxy Server darauf zuzugreifen.
Konkrete Anwendungsfälle im Alltag sind bspw. Schulungsräume, Test- und
Labornetze sowie Bibliotheken und Internetcafès, die für eine bestimmte
Benutzergruppe oder Anwendungsfälle gedacht und somit auch passend
konfiguriert sind. Schulungsräume, Test- und Labornetze schotten Sie
netztechnisch ab, um Software auszuprobieren, ohne dabei das restliche
Netzwerk in Mitleidenschaft zu ziehen. In Internetcafès für Jugendliche
werden häufig bestimmte Internetinhalte oder auch komplette
Netzwerkprotokolle und -dienste über die Kombination mit einem
entsprechend eingerichteten Jugendschutzfilter reglementiert, bspw. mit
Hilfe von IPCop
[ipcop]
, IPFire
[ipfire]
oder pfSense
[pfsense]
27.2. Varianten
Proxy Server existieren in verschiedenen Lebensformen. Neben
transparenten Proxy Servern
, von denen Sie als Benutzer in der Regel
nichts mitbekommen sollten, gibt es
protokollunabhängige
und
protokollabhängige Proxy Server
. Ersteres sind bspw. SOCKS4- und
SOCKS5-Proxies
[SOCKS]
gemäß RFC 1928
[RFC1928]
, das zweite hingegen
HTTP-Proxies oder FTP-Proxies. Diese werden dann nur für das jeweilige
Transportprotokoll eingesetzt.
Weiterhin gibt es noch sogenannte
unsichtbare Proxy Server
— ein
anonymer Proxy Server, der vor Ihnen verheimlicht, überhaupt ein Proxy
Server zu sein. Er ist von außen unsichtbar und reicht alle internen
Anfragen von Clients nach draußen weiter
[Ubuntu-Wiki-Proxy]
Bezogen auf die Paketverwaltung ist der Spezialfall „Caching Proxy
ausschließlich für Debianpakete“ interessant. Dieser behält die bereits
angefragten Debianpakete in seinem Cache, um sie später schneller an
weitere Clients im Netzwerk weitergeben zu können, sobald sie diese im
Rahmen einer Softwareaktualisierung oder -installation anfragen. Damit
beschleunigen Sie die Aktualisierung des Paketbestands ganzer Netze, die
ähnlich aufgesetzt sind, bspw. in einem Schulungsraum. Passender Kandidat
dafür ist
apt-cacher-ng
(siehe
Abschnitt 28.5, „apt-cacher-ng“
). Ausführlicher gehen
wir auf die unterschiedlichen Entwicklungen unter „Einen APT-Cache
einrichten“ in
Kapitel 28,
Einen APT-Paket-Cache einrichten
ein.
27.3. Einen Proxy konfigurieren
Üblicherweise kommt eine frische Debian-Installation ohne einen
konfigurierten Proxy Server daher. Ihr System kommuniziert direkt mit
den Diensten in der Netzwerkumgebung. Einen Proxy Server ergänzen Sie
nachträglich selbst.
Im Debian-Ökosystem gibt es unterschiedliche Stellen, an denen Sie die
Benutzung eines Proxy Servers hinterlegen. Dazu zählen zunächst die
allgemeinen Umgebungsvariablen (siehe „Einen Proxy mittels
Umgebungsvariablen konfigurieren“ in
Abschnitt 27.4, „Einen Proxy mittels Umgebungsvariablen konfigurieren“
), danach folgen die Einstellungen des
Desktop-Environments und der Anwendungen, wie bspw. im Webbrowser
Firefox (siehe „Einen Proxy in Anwendungen konfigurieren“ in
Abschnitt 27.5, „Einen Proxy in Anwendungen konfigurieren“
). Für die Paketverwaltung kommen die Einträge
in der Datei
/etc/apt/apt.conf
bzw. der modularisierten Variante unter
/etc/apt/apt.conf.d/70debconf
ins Visier (siehe dazu „APT über
HTTP-Proxy“ in
Abschnitt 27.6, „APT über HTTP-Proxy“
).
27.4. Einen Proxy mittels Umgebungsvariablen konfigurieren
Viele Programme orientieren sich am Systemzustand und greifen dazu auf
Umgebungsvariablen und lokale Konfigurationsdateien zurück. Zur
Verwendung eines Proxy Servers sind diese Variablen üblich:
http_proxy
HTTP Proxy Server
https_proxy
HTTPS Proxy Server
ftp_proxy
FTP Proxy Server
rsync_proxy
Proxy Server für
rsync
[Debian-Paket-rsync]
no_proxy
keinen Proxy Server verwenden
Nachfolgend sehen Sie beispielhaft, wie Sie auf der Kommandozeile
eine solche Umgebungsvariable setzen und gleich systemweit zugänglich
machen. Benutzt wird hier als Proxy Server die IP-Adresse 1.2.3.4 und
als Port 8080.
Setzen einer Umgebungsvariable in der Shell.
$ export http_proxy="http://1.2.3.4:8080/"
Ausführlichere Informationen zum Umgang mit Umgebungsvariablen finden
Sie im Wiki von Arch Linux
[proxyArch]
27.5. Einen Proxy in Anwendungen konfigurieren
Sie werden sich sicher fragen, was dieser Aspekt hier im Buch zu
suchen hat. Wichtig wird das genau dann, wenn Sie hinter einem Proxy
Server sitzen und dieser ihnen den direkten Weg zum Paketmirror oder
auch zu dringend benötigten Informationsseiten versperrt. Dann wird die
Recherche und auch der nachfolgende Bezug passender
deb
-Pakete nämlich
etwas hakelig. Mehrfach waren wir in dieser Lage, was uns erstmal etwas
ausgebremst hat. Wir fügen die Informationen dazu hier ein, damit Sie es
leichter haben, aus einer solchen Situation herauszukommen, falls Sie
unverhofft darin landen.
27.5.1. Mittels
wget
Das Werkzeug
wget
aus dem gleichnamigen Debianpaket
[Debian-Paket-wget]
agiert wie ein fensterloser Webbrowser und bezieht
die Daten von der im Aufruf angegebenen URL.
wget
respektiert bereits
konfigurierte Proxy Server und wertet dazu die vier Umgebungsvariablen
http_proxy
https_proxy
ftp_proxy
und
no_proxy
aus, falls diese
auf ihrem Linux-System vorhanden sind.
Der nachfolgende Aufruf demonstriert, wie Sie das Paket
mc
[Debian-Paket-mc]
via
wget
vom Paketmirror
ftp.de.debian.org
beziehen. Das heruntergeladene Paket finden Sie dann als Datei
mc_4.8.26-1.1_amd64.deb
in ihrem aktuellen Verzeichnis.
Bezug des Paketes
mc
vom Paketmirror
ftp.de.debian.org
via
wget
$ wget http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb
--2023-06-12 22:07:02-- http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb
Auflösen des Hostnamen »ftp.de.debian.org (ftp.de.debian.org)«... 141.76.2.4
Verbindungsaufbau zu ftp.de.debian.org (ftp.de.debian.org)|141.76.2.4|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 534020 (522K) [application/vnd.debian.binary-package]
In »»mc_4.8.26-1.1_amd64.deb«« speichern.

mc_4.8.26-1.1_amd64.deb 100%[==========================================>] 521,50K 488KB/s in 1,1s

2023-06-12 22:07:04 (488 KB/s) - »»mc_4.8.26-1.1_amd64.deb«« gespeichert [534020/534020]
In Bezug auf Proxy Server verfügt
wget
über weitere Schalter für die
Kommandozeile, die sich im Alltag als recht nützlich erweisen:
--no-proxy-server
keinen Proxy Server verwenden, auch wenn dieser
systemweit konfiguriert ist. Ignoriert die Umgebungsvariablen
http_proxy
https_proxy
ftp_proxy
und
no_proxy
--proxy_user
Authentifizierung beim Proxy Server mit dem
angegebenen Benutzername.
--proxy_password
Authentifizierung beim Proxy Server mit dem
angegebenen Passwort.
Bitte beachten Sie bei der Verwendung der beiden Schalter
--proxy_user
und
--proxy_password
im direkten Aufruf über die Kommandozeile, dass
die darüber angegebenen Authentifizierungsdaten in der Historie ihres
Kommandointerpreters landen. Abhilfe schaffen Sie, indem Sie die
Authentifizierungsdaten entweder in der lokalen Datei
~/.wgetrc
oder
systemweit in der Datei
/etc/wgetrc
hinterlegen.
27.5.2. Mittels
curl
Was mit
wget
gelingt, geht auch mit
curl
(Debianpaket
curl
[Debian-Paket-curl]
) —
curl
kann nur deutlich mehr. Nützlich ist
hier zunächst der Schalter
-x
(Langversion:
--proxy
), mit dem Sie
zunächst den Proxy Server benennen. Der darauffolgende Wert repräsentiert
das Login
benutzer
mit dem Passwort
passwort
und dem Proxy Server mit
der IP-Adresse 127.0.0.1 und dem Port 1234.
Bezug der Datei über einen Proxy mittels
curl
curl --proxy "http://benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei"
curl --proxy "benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei"
Bitte beachten Sie beim direkten Aufruf über die Kommandozeile, dass die
darüber angegebenen Authentifizierungsdaten in der Historie ihres
Kommandointerpreters landen. Abhilfe schaffen Sie auf drei möglichen
Wegen. In
Variante 1
speichern Sie die benötigten
Authentifizierungsdaten in den Umgebungsvariablen.
curl
wertet dazu
http_proxy
und
https_proxy
aus. Dann vereinfacht sich obiger Aufruf
zu:
Bezug der Datei über einen Proxy mittels
curl
(vereinfachter Aufruf).
curl "http://webseite.org/datei"
In
Variante 2
speichern Sie die benötigten Authentifizierungsdaten
in einer lokalen Datei und geben diese
curl
beim Aufruf als
zusätzlichen Parameter mit. Das gelingt über den Schalter
-K
(Langform:
--config
), gefolgt vom Namen der Konfigurationsdatei. Der
nachfolgende Aufruf benutzt die Datei
proxy-config
mit diesem Inhalt:
Konfigurationsdatei für
curl
zur Verwendung eines Proxy Servers.
--proxy "http://benutzer:passwort@127.0.0.1:1234"
Der Aufruf von
curl
vereinfacht sich dann wie folgt:
Bezug der Datei über einen Proxy Server mittels Konfigurationsdatei für
curl
$ curl -K proxy-config "http://webseite.org/datei"
Auch
Variante 3
möchten wir Ihnen nicht vorenthalten. Dieser Weg führt
über die lokale Konfigurationsdatei
~/.curlrc
. Dort hinterlegen Sie
die Defaultparameter für
curl
analog zu Variante 2. Rufen Sie nun
curl
auf, prüft es, ob diese Konfigurationsdatei vorhanden ist und
liest die voreingestellten Authentifizierungsdaten von dort. Der Aufruf
von
curl
ist identisch zu Variante 1.
Weitere Schalter zum Thema Proxy Server entnehmen Sie bitte der
umfangreichen Manpage zu
curl
oder dem Curl Developer Guide
[curl-developer]
27.5.3. Webbrowser Firefox
Firefox kann ebenfalls mit Proxy Servern umgehen. Eine Konfiguration dazu
erlaubt Firefox jedoch nicht über Kommandozeilenschalter, sondern
ausschließlich über den Menüpunkt Einstellungen → Allgemein → Netzwerkeinstellungen
(siehe
Abbildung 27.1, „Proxy-Einstellungen bei Firefox“
für das entsprechende Dialogfenster).
Abbildung 27.1. Proxy-Einstellungen bei Firefox
Während frühe Versionen von Firefox Umgebungsvariablen mitunter noch
ignorierten, haben Sie mittlerweile die freie Auswahl zwischen den
Varianten „keinen Proxy Server verwenden“, „automatische Erkennung“,
„Verwendung der Umgebungsvariablen“ , „manueller Konfiguration“ und
``Verwendung einer automatischen URL zur Konfiguration``. Sobald Sie die
passenden Eintragungen im Dialogfenster durchgeführt haben, werden diese
aktiv und Firefox kommuniziert mit dem von Ihnen angegebenen Proxy Server.
27.5.4. Webbrowser Chromium
Chromium verhält sich in Bezug auf die Konfiguration für Proxy Server
entgegengesetzt zu Firefox. In den Systemeinstellungen finden Sie keinen
Eintrag, dafür geschieht alles über passende Schalter auf der
Kommandozeile. Zudem respektiert Chromium die lokalen Einstellungen, wie
es Ihnen freudig mitteilt, sobald Sie die lokale URL
chrome://linux-proxy-config/
ansurfen (siehe
Abbildung 27.2, „Mitteilung von Chromium zu den Einstellungen für Proxy Server“
).
Abbildung 27.2. Mitteilung von Chromium zu den Einstellungen für Proxy Server
Als Kommandozeilenparameter stehen Ihnen zur Verfügung:
--proxy-server
den angegebenen Proxy Server benutzen. Für einen
SOCKS Proxy v4 sieht der Aufruf wie folgt aus:
$ chromium --proxy-server="socks4://webserver:1234"
--no-proxy-server
keinen Proxy Server verwenden, auch wenn
dieser systemweit konfiguriert ist
--proxy-auto-detect
automatische Erkennung des Proxy Servers
--proxy-pac-url
legt die URL der automatischen Konfiguration
zur Erkennung des Proxy Servers fest
27.6. APT über HTTP-Proxy
27.6.1. Konfigurationsdateien und Einstellungen
Für
apt
tragen Sie den Proxy in der Datei
/etc/apt/apt.conf.d/70debconf
ein. Bei älteren
Debian-Veröffentlichungen ist es die Datei
/etc/apt/apt.conf
Nachfolgend sehen Sie den Eintrag für einen HTTP-Proxy namens
proxyserver
, der auf dem Port 8080 lauscht.
Beispiel für einen Rechner
proxyserver
auf Port 8080.
Acquire::http::Proxy "http://proxyserver:8080";
Obiges Beispiel beinhaltet lediglich die beiden essentiellen
Bestandteile zur Kommunikation — den Namen des Proxy Servers
proxyserver
) und dem Port (8080), auf dem der Dienst lauscht. Für
eine Authentifizierung sind zusätzlich ein Nutzername samt Passwort
notwendig. Bitte beachten Sie, dass dabei die Zugangsdaten im Klartext
in der Konfigurationsdatei hinterlegt sind. Nachfolgend sehen Sie das
für den Nutzer
pakete
mit dem Passwort
geheim
Beispiel mit Zugangsdaten für Nutzer
pakete
Acquire::http::Proxy "http://pakete:geheim@proxyserver:8080";
Nutzen Sie statt APT hingegen Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
), geben
Sie den HTTP-Proxy in einem separaten Konfigurationsdialog an. Diesen
finden Sie unter dem Menüpunkt Einstellungen → Netzwerk → Proxy-Server.
Wählen Sie dazu zuerst den Punkt „Manuelle Proxy-Konfiguration“ aus
und tragen danach den Servernamen ohne Protokoll im oberen Eingabefeld
ein. Neben dem Eingabefeld befinden sich das Auswahlfeld für den Port
sowie der Knopf „Legitimierung“. Mit einem Mausklick auf diesen Knopf
erhalten Sie ein weiteres Dialogfenster, in dem Sie ihre Zugangsdaten
für den Proxy Server hinterlegen.
Abbildung 27.3. Proxy-Einstellungen bei Synaptic
27.6.2. Schalter zur Steuerung des Cache-Verhaltens
Wie APT mit den zwischengespeicherten Daten umgeht, legen Sie über
mehrere Schalter fest.
Cache-Start
verfügbar ab Version 0.7.26. Legt die initiale Größe
des Caches fest, die APT beim Start benutzt.
Cache-Grow
verfügbar ab Version 0.7.26. Legt die Schrittweite in
Bytes fest, mit der der Cache vergrößert wird, sollte er nicht mehr
ausreichen. Der Defaultwert ist 1048576 (ca. 1 MB). Die maximale Größe
ist der Wert, der mittels
Cache-Limit
festgelegt ist. Falls als Wert 0
hinterlegt ist, ist die automatische Anpassung deaktiviert.
Cache-Limit
verfügbar ab Version 0.7.26. Legt die maximale Größe des
Caches fest. Der Defaultwert ist 0 für keine Größenbeschränkung.
Max-Age
Alter der Indexdatei in Sekunden
No-Cache
unter keinen Umständen die zwischengespeicherten Inhalte
verwenden
No-Store
angefragte Daten nicht im Cache zwischenspeichern
27.6.3. Umgebungsvariablen
APT greift auf Umgebungsvariablen zurück, sofern Sie diese auf ihrem
System definiert haben. Es benutzt
ftp_proxy
http_proxy
und
https_proxy
. Wie Sie diese festlegen, lesen Sie in
Abschnitt 27.4, „Einen Proxy mittels Umgebungsvariablen konfigurieren“
nach.
27.6.4. Schalter für apt-get
APT ist so flexibel, dass Sie ihm auch beim direkten Aufruf noch
Schalter mitgeben können. Hierbei kommt der Schalter
-o
zum Einsatz,
über den Sie mit der Angabe
http::Proxy
den Namen des Proxy Servers
samt Port spezifizieren. Das nachfolgende Beispiel installiert das Paket
mc
[Debian-Paket-mc]
für den
Midnight Commander
mittels
apt-get
unter Berücksichtigung des Proxy Servers namens
proxyserver
, der auf
Port 8080 ihre Anfragen entgegennimmt.
Beispielaufruf zur Installation von
mc
via Proxy.
# apt-get -o http::Proxy="http://proxyserver:8080" install mc
Die vollständige Angabe für Proxy Server folgt dieser Form:
Bitte beachten Sie, dass bei obigem Aufruf die verwendeten Zugangsdaten
aus Benutzername und Passwort im Klartext in der Historie ihres
Kommandozeileninterpreters abgelegt werden.
27.7. Aptitude über HTTP-Proxy
Für Aptitude gilt das Gleiche wie bei APT. Hintergrund ist, dass sowohl
APT, als auch Aptitude die gleiche Bibliothek namens
libapt
benutzen.
Somit sind das Featureset und die Konfiguration beider Werkzeuge
an dieser Stelle identisch (siehe
Abschnitt 27.6, „APT über HTTP-Proxy“
).
Kapitel 28. Einen APT-Paket-Cache einrichten
28.1. Begriff
Im Allgemeinen bezeichnet ein
Cache
einen Datenpuffer oder
Zwischenspeicher, der Daten weiter vorhält und auf den im Bedarfsfall
zurückgegriffen wird, wenn die gleichen Daten erneut angefordert oder
ausgetauscht werden. In unserem speziellen Fall beinhaltet der Cache
keine beliebigen Daten, sondern Softwarepakete. Diese werden darin von
der Paketverwaltung gespeichert, sobald sie das erste Mal vom
Paketmirror bezogen wurden. Das passiert beispielsweise bei der
Installation oder Aktualisierung eines Softwarepakets.
Der Cache macht sich insbesondere dann deutlich bemerkbar, wenn mehrere
Rechner — bspw. aus dem gleichen Netzwerk oder Rechnerverbund — die
gleichen Softwarepakete beziehen und dazu diesen Cache verwenden.
Anwendungsfälle aus der Praxis sind Schulungsräume und Cluster, die aus
identischen Knoten bestehen. Bei Anfragen nach den Softwarepaketen durch
die Paketverwaltung verringert sich ab der zweiten Anfrage die Bezugszeit
der Pakete zum jeweiligen Rechner und somit auch der gesamte Vorgang der
Pflege des Softwarebestands im Netzwerk oder Rechnerverbund.
Nachfolgend bezeichnen wir diesen Cache schlicht als
APT-Cache
, da wir
ihn in Zusammenhang mit APT als Bestandteil der Debian-Paketverwaltung
benutzen. Sofern wir nicht explizit darauf hinweisen, kommt der
APT-Cache auch zum Einsatz, wenn Sie andere Werkzeuge zur
Paketverwaltung einsetzen, bspw. Aptitude oder Synaptic. Hintergrund ist,
dass alle Werkzeuge auf die gleichen Konfigurationsdateien zur
Paketverwaltung zurückgreifen.
28.2. Besonderheiten des APT-Cache
28.2.1. Funktionsweise
Ein APT-Cache funktioniert ähnlich wie der lokale Paketcache, den wir
bereits in
Kapitel 7,
Paketcache
beschrieben haben. Im jetzt betrachteten Fall
ist dieser separat angelegt und dient als Ergänzung für ein ganzes
Netzwerk mit mehreren, möglichst identischen Knoten. Daher liegt er
einmalig vor, bspw. auf einer eigenen Hardware, als Virtuelle Maschine
oder auch in einer Docker-Instanz.
Abbildung 28.1, „Schematische Darstellung mit APT-Cache in der Netzwerkinfrastruktur“
stellt die
Integration des APT-Cache in der Netzwerkinfrastruktur schematisch dar.
Abbildung 28.1. Schematische Darstellung mit APT-Cache in der Netzwerkinfrastruktur
28.2.2. Vor- und Nachteile
Als vorteilhaft sehen wir zunächst den geringeren Bedarf an
Speicherplatz an — die Softwarepakete werden nur ein einziges Mal im
gesamten Rechnerverbund vorgehalten und nicht mehr auf jedem einzelnen
Knoten im Netzwerk. In Folge verringert sich die Anzahl der lokalen
Lese- und Schreibzugriffe auf den Speichermedien der einzelnen Knoten
und trägt somit dazu bei, deren Lebensdauer zu verlängern.
Weiteres Potential zur Einsparung ergibt sich bzgl. des Datenvolumens
des Netzwerks: die Netzwerklast
nach außen
verringert sich. Erfolgt
die Abrechnung ihrer Internetanbindung entsprechend des transportierten
Datenvolumens — sogenannte
trafficbasierte Abrechnung
— wird das
Datenvolumen geringer und spart Ihnen auf Dauer somit bares Geld. Die
konkrete Ersparnis hängt von der Größe des Netzwerks und der Art und
Intensität der Nutzung ab und wird sich erst über eine längere Zeit
mit genauen Zahlen belegen lassen.
Nicht zu verschweigen ist der Fakt, dass sich die Netzwerklast
nach
innen
erhöhen wird. Alle Knoten des Rechnerverbunds greifen jetzt
auf eine zentrale, lokale Quelle zu. Stellen Sie daher sicher, dass
dieser Knoten mit dem APT-Cache möglichst performant angebunden ist
und auch mit der zusätzlichen Menge der Anfragen umgehen kann. Das
stellt sicher, dass sich die Anfragezeit nach Softwarepaketen
längerfristig deutlich verringert.
Der APT-Cache läßt sich auch als Element zur Erhöhung der
Ausfallsicherheit des Netzwerks ansehen: fällt der externe Paketmirror
oder gar der Internetzugang aus, stehen ihnen immer noch die bislang
bezogenen Softwarepakete zur Verfügung, die sich bereits im APT-Cache
befinden. Bereits begonnene Aktualisierungen des Paketbestands auf
anderen Knoten im Netzwerk lassen sich fortsetzen und auch vollenden,
sofern sich alle dazu benötigten Pakete bereits im APT-Cache befinden.
Nachteilig am APT-Cache ist, dass die Softwarepakete darin nicht von
jeder Softwarelösung für den Paketcache automatisch aufgeräumt werden,
wenn diese veralten oder auf keinem Knoten im Netzwerk mehr benötigt
werden. Dieser Schritt fällt dann in ihren Aufgabenbereich als Verwalter
des APT-Caches und läßt sich bspw. mit Hilfe eines Cronjobs
automatisieren. Sowohl Approx (siehe
Abschnitt 28.3, „Approx“
) als auch apt-cacher
(siehe
Abschnitt 28.4, „apt-cacher“
) und apt-cacher-ng (siehe
Abschnitt 28.5, „apt-cacher-ng“
) kommen
Ihnen hier entgegen und bringen Mechanismen mit, mit denen Sie die
Vorhaltezeit eines bezogenen Softwarepakets im APT-Cache regeln.
28.2.3. Abgrenzung zum Betreiben eines eigenen Paketmirrors
Vor der Einrichtung wägen Sie bitte zwischen einem APT-Cache und einem
eigenen Paketmirror ab (siehe
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
). Während
letzterer stets alle Softwarepakete der Veröffentlichung vorhält — also
auch die, die Sie nicht benötigen — landen im APT-Cache hingegen nur
die Pakete, die bisher tatsächlich von mindestens einem der Knoten im
Netzwerk angefragt wurden. Ein APT-Cache ist daher auch schlanker als
ein eigener Paketmirror.
Zusätzliche Zeit ist hingegen einmalig einzuplanen, wenn Softwarepakete
von einem externen Paketmirror bezogen werden, weil diese sich dann ja
noch nicht im APT-Cache befinden. Das trifft insbesondere dann zu, wenn
neue Paketversionen auf dem Paketmirror bereitstehen und ein Knoten im
Netzwerk diese neue Version anfordert.
Vom Betreiben eines eigenen Paketmirrors mit vorgeschaltetem APT-Cache
im gleichen Netzwerk
raten wir Ihnen ab. Wir sehen in dieser
Kombination von Diensten keinen wesentlichen Leistungsgewinn.
28.2.4. Softwareauswahl für einen APT-Cache
Nachfolgend stellen wir Ihnen unterschiedliche Lösungen vor, mit denen
Sie einen APT-Cache einrichten und betreiben können. Welche Lösung für
Sie am besten passt, hängt von ihrer konkreten Situation ab.
28.3. Approx
28.3.1. Überblick
Approx
[Debian-Paket-approx]
ist ein Proxyserver für Debianpakete und
dient als Paketcache zwischen einem Paketmirror und Debian-basierten
Clients. Mit Approx halten Sie Debianpakete vor, die von den Clients zur
lokalen Installation oder Aktualisierung angefragt werden und liefern
diese aus dem Paketcache an die Clients aus.
Gemäß der Selbstbeschreibung von Approx sind lediglich die Repositorys
in den Konfigurationsdateien von Approx anzupassen, jedoch nicht die
Konfigurationsdateien jedes Clients selbst (bspw.
/etc/apt/sources.list
). In der Realität sieht es jedoch etwas anders
aus und es sind ebenfalls Änderungen in den Clients notwendig, damit
diese mit dem Paketproxy kommunizieren (siehe
„Client“
).
Approx präsentiert sich als Alternative zu APT Cacher (siehe
Abschnitt 28.4, „apt-cacher“
) und APT Cacher-NG (siehe
Abschnitt 28.5, „apt-cacher-ng“
), dem
Nachfolger von APT Cacher.
28.3.2. Setup und Installation
Als
ersten Schritt
laden Sie das Paket
approx
[Debian-Paket-approx]
herunter und installieren es, bspw. mittels
apt-get
wie folgt:
Installation von Approx mit
apt-get
apt-get install approx
Das Paket
approx
ist rund 1.5 MB groß und belegt nach dem Entpacken
des Softwarearchivs etwa 6.6 MB Platz in ihrem System. Weitere Pakete
sind zur Installation nicht erforderlich. Die
Schritte 2 und 3
beinhalten nun die Konfiguration des Approx-Serverdienstes (siehe
„Server“
und der Clients (siehe
„Client“
).
28.3.3. Konfiguration
Server
Hierzu passen Sie zunächst die Datei
/etc/approx/approx.conf
auf ihre
eigenen Bedürfnisse an. Approx versteht dazu eine Reihe von Variablen in
Form von Name-Wert-Paaren, wobei Name und Wert mit mindestens einem
Leerzeichen voneinander zu trennen sind. Darüber steuern Sie die
Funktionalität des Service. Nachfolgend listen wir diese Variablen samt
deren Bedeutung in alphabetischer Reihenfolge auf.
$cache
legt den Pfad fest, den Approx für seinen eigenen Paketcache
verwendet. Der
Defaultwert
ist
/var/cache/approx
$curl_path
legt den Pfad zum Programm
curl
fest. Der
Defaultwert
ist
/usr/bin/curl
$debug
legt fest, ob Logeinträge zur erweiterten Fehlersuche
erstellt werden sollen. Der
Defaultwert
ist
false
und somit
ausgeschaltet.
$group
legt den Namen der Gruppe fest, dem die Dateien im
Cacheverzeichnis von Approx gehören. Der
Defaultwert
ist
approx
$interval
gibt die Zeitdauer in Minuten an, nach der eine Datei im
Cache als zu alt angesehen wird, um noch sofort von Approx ausgeliefert
zu werden. Ist das Intervall überschritten, schaut Approx zuerst auf dem
Paketmirror nach, ob es zwischenzeitlich eine neuere Version gibt. Der
Defaultwert
ist 60 für 60 Minuten.
$max_rate
legt die Obergrenze für die Breite des Datenstroms in
Bytes pro Sekunde fest, mit der Daten vom Paketmirror bezogen werden.
Der
Defaultwert
ist
unlimited
für unbegrenzte Bandbreite. Geben Sie
stattdessen einen Zahlenwert an und ergänzen ihn mit
oder
begrenzen Sie die Bandbreite auf den entsprechenden Wert in Kilobyte,
Megabyte oder Gigabyte pro Sekunde.
$max_redirects
legt die maximale Anzahl von HTTP-Weiterleitungen
HTTP redirects
) fest, denen gefolgt wird, wenn ein Paket
heruntergeladen wird. Der
Defaultwert
ist 5.
$max_wait
gibt an, wieviele Sekunden der Prozess von Approx im
Falle eines konkurrierenden Downloads wartet, bevor es die Datei selbst
bezieht. Der
Defaultwert
ist 10 für 10 Sekunden.
$offline
gibt an, ob Approx auch möglicherweise veraltete Dateien
ausliefern soll, wenn keine Verbindung zum Paketmirror zustandekommt.
Der
Defaultwert
ist
false
und diese Funktionalität ist somit
ausgeschaltet.
$pdiffs
legt fest, ob IndexFile Diffs genutzt werden sollen. Der
Defaultwert
steht auf
true
für
eingeschaltet
$syslog
legt das Verhalten von
syslog
fest, wenn mit Logdateien
umgegangen wird. Der
Defaultwert
ist
daemon
$user
legt den Namen des Benutzers fest, dem die Dateien im
Cacheverzeichnis von Approx gehören. Der
Defaultwert
ist
approx
$verbose
legt fest, ob ausführlichere Logeinträge erstellt werden
sollen. Der
Defaultwert
ist
false
und somit ausgeschaltet.
Alle weiteren Einträge bezeichnen den Namen und die URL eines
Paketmirrors, von denen Approx im Falle einer Anfrage passende
Softwarepakete suchen und beziehen soll. Bitte beachten Sie, dass
hierbei keine Veröffentlichung oder ein Distributionsname angegeben
wird. Diese Angabe verbleibt in der Konfiguration des Clients.
Nachfolgend sehen Sie in beispielhaft die Einstellungen für einen
Paketmirror, welcher die Softwarepakete unter
/var/cache/paketcache
zwischenpuffert.
Beispielkonfiguration für Approx.
debian http://deb/debian.org/debian
security http://security.debian.org/debian-security

$interval 60
$max_wait 10
$cache /var/cache/paketcache
Ohne weitere Änderungen lauscht Approx auf dem
Port
9999 für Anfragen
von Clients. Um das zu ändern und Approx bspw. auf Port 8000 lauschen zu
lassen, passen Sie die Servicebeschreibung von Approx an. Verwenden Sie
Systemd
als Prozessmanager, hilft ihnen dabei das Kommando
systemctl
weiter.
Anpassen der Servicebeschreibung von Approx bei Systemd.
systemctl edit approx.socket
Die Servicebeschreibung beinhaltet die drei Abschnitte
Unit
Socket
und
Install
. Ändern Sie im Abschnitt
Socket
die Einstellung
ListenStream=9999
auf
ListenStream=8000
Veränderte Servicebeschreibung von Approx bei Systemd.
[Unit]
Description=caching proxy server for Debian archive files
Documentation=man:approx(8)

[Socket]
ListenStream=8000
Accept=yes

[Install]
WantedBy=sockets.target
Starten Sie anschließend Approx mittels
systemctl restart
approx.socket
neu, um die Änderungen auch wirksam werden zu lassen.
Verwenden Sie hingegen
Init.d
als Prozessmanager, ändern Sie zunächst
in der Konfigurationsdatei
/etc/inetd.conf
diese Zeile von
9999 stream tcp nowait approx /usr/sbin/approx /usr/sbin/approx
in
8000 stream tcp nowait approx /usr/sbin/approx /usr/sbin/approx
und speichern die Konfigurationsdatei. Danach starten Sie Approx wie
folgt neu:
/etc/init.d/approx restart
Danach passen Sie die Konfiguration des Clients an — dieser soll ja
jetzt auch mit dem APT-Cache kommunizieren und nur darüber seine
Softwarepakete beziehen.
Client
Die Konfiguration des Clients passen Sie in drei Schritten an.
Schritt
ist die Ergänzung der Datei
/etc/hosts
um den APT-Cache mit der
entsprechenden IP-Adresse und dem Hostname. Heißt ihr APT-Cache
skye
und hat die IP-Adresse 192.168.10.250, fügen Sie diesen Eintrag zur
Datei hinzu:
192.168.10.250 skye
In
Schritt 2
ergänzen Sie in der Datei
/etc/apt/sources.list
die
Einträge der Paketmirror um den Verweis auf den zuvor angelegten
APT-Cache.
deb http://skye:8000/debian stable main contrib non-free
deb-src http://skye:8000/debian stable main contrib non-free
deb http://skye:8000/security stable/updates main contrib non-free
Schritt 3
ist das abschließende Aktualisieren der lokalen Paketliste
mittels
apt-get update
. Jetzt kennt ihr Client den APT-Cache und
bezieht alle Softwarepakete über ihn.
28.3.4. Beobachtungen aus dem Alltag
Verzögerungen einplanen, bis Pakete im Approx-Cache gelandet sind
28.4. apt-cacher
28.4.1. Werkzeugbeschreibung
Das Werkzeug
apt-cacher
steht über das gleichnamige Paket
apt-cacher
[Debian-Paket-apt-cacher]
bereit. Es ist fester
Bestandteil der Debian-Paketliste.
Netztechnisch klemmt sich die Software zwischen dem (öffentlichen)
Paketmirror und den anfragenden Clients. Es ist interessant für kleine
und auch größere Netzwerke, die einen weitestgehend identischen
Softwarebestand besitzen.
apt-cacher
ermöglicht einen Paketcache, d.h.
es merkt sich, welche Pakete bereits angefragt wurden und liefert diese
an den Anfragenden aus dem Paketcache, sofern sich das Paket bereits
darin befindet, ansonsten holt es das Paket zuvor vom Paketmirror.
28.4.2. Einrichtung und Benutzung
Die Einrichtung unterteilt sich in zwei Schritte — die Konfiguration
des Servers und der Clients. Der Server ist hierbei der Rechner, der
den Paketcache später bereitstellt.
Serverkonfiguration
Zunächst installieren Sie das Paket
apt-cacher
auf dem Server,
idealerweise in Kombination mit einem APT-Proxy wie
apt-proxy
[apt-proxy]
oder
approx
(siehe
Abschnitt 28.3, „Approx“
). Danach aktivieren Sie
den Dienst zum automatischen Start von
apt-cacher
, indem Sie noch
eine kleine Änderung in der Konfigurationssatei
/etc/default/apt-cacher
vornehmen. Ändern Sie darin diese Zeile wie
folgt von
`AUTOSTART`: `AUTOSTART=0`
in
`AUTOSTART`: `AUTOSTART=1`
Nachdem Sie die Konfigurationsdatei gespeichert haben, starten Sie
apt-cacher
neu, bspw. mittels
/etc/init.d/apt-cacher restart
Client anpassen
Auf einem Clients ändern Sie nun die Bezugsadresse für Softwarepakete.
Dazu legen Sie einen neuen Service an — die Datei namens
/etc/apt/apt.conf.d/90-apt-proxy.conf
. Diese Datei ergänzen Sie um den
folgenden Eintrag, indem Sie damit auf ihren APT-Cache verweisen:
Acquire::http::Proxy "http://repository-cache:3142";
Hier bezeichnet
repository-cache
den von uns beispielhaft
ausgewählten Rechnernamen, der den Paketcache bereitstellt. Die Angabe
3142
bezeichnet den Port, auf dem der Paketcache auf die Anfragen
des Clients lauscht.
28.5. apt-cacher-ng
28.5.1. Werkzeugbeschreibung
Das Werkzeug
apt-cacher-ng
steht über das gleichnamige Paket
apt-cacher-ng
[Debian-Paket-apt-cacher-ng]
bereit. Es ist fester
Bestandteil der Debian-Paketliste. Ausführliche Informationen zum
Projekt finden Sie auf der Projektwebseite
[apt-cacher-ng-Projektseite]
apt-cacher-ng
sieht sich selbst als Proxyserver zum Zwischenspeichern
von Softwaredepots und lädt Pakete von Softwaredepots im Debian-Stil
(oder möglicherweise von anderen Typen) herunter. Es wurde von Grund auf
neu als Ersatz für
apt-cacher
entwickelt (siehe
Abschnitt 28.4, „apt-cacher“
) und
soll gleichzeitig
apt-proxy
[apt-proxy]
und
approx
(siehe
Abschnitt 28.3, „Approx“
) ersetzen, ohne die Datei
/etc/apt/sources.list
der Clients
ändern zu müssen.
Im laufenden Betrieb speichert
apt-cacher-ng
eine Kopie aller Nutzdaten,
die über ihn laufen.
28.5.2. Einrichtung und Betrieb
ToDo
Kapitel 29. Cache-Verzeichnis auf separater Partition
Es gibt die unterschiedlichsten Gründe, entweder das gesamte Verzeichnis
/var
oder nur den Paketcache unter
/var/cache/apt/archives/
von den restlichen Partitionen in
Ihrem Linuxsystem zu trennen. Die darin abgespeicherten variablen Daten
sind in Bezug auf deren Größe und Menge (d.h. die Anzahl der Inodes für
die Dateien) nicht vorhersehbar und schwanken. Aktualisieren Sie Software
auf Ihrem Linuxsystem, möchten Sie verhindern, dass das Herunterladen der
neuen Pakete Ihren Rechner durch ein vollbelegtes Dateisystem in der
Benutzung ausbremst.
Auf Computern, bei denen das Betriebssystem entweder auf einer Solid
State Disk (SSD), einer CompactFlash- oder Secure Digital Memory Card
(kurz CF- bzw. SD-Karte) als einzigem Medium bereitsteht, möchten Sie
die Anzahl der Schreibzugriffe möglichst reduzieren. Je seltener diese
stattfinden, umso länger bleibt Ihnen der malträtierte Datenträger
erhalten. Entsprechend lohnt sich hier ein Auslagern in einen externen
Bereich. Das kann beispielsweise ein Share eines NFS-Servers sein, aber
auch eine nur im Arbeitsspeicher existierende
tmpfs
-Partition
[32]
. Während für erstgenanntes ein schnelles
lokales Netzwerk sowie die passende Infrastruktur Voraussetzung ist,
zählt für die
tmpfs
-Partition im wesentlichen der verfügbare RAM.
Als erstes stellen wir Ihnen vor, wie Sie aus dem Verzeichnis
/var/cache/apt/archives/
eine RAM-basierte
tmpfs
-Partition
erstellen. Danach besprechen wir, wie Sie einen Paketcache als separate
Partition oder lediglich als Unterverzeichnis auf einer anderen
Partition einrichten.
29.1. Paketarchiv als
tmpfs
-Partition
In
Schritt eins
überdenken Sie dazu die Größe der Partition. Wägen Sie
dabei zwischen dem potentiellem und dem maximal zu erwartendem
RAM-Verbrauch ab. Dabei helfen Ihnen diese Fragen:
Wieviel RAM hat mein Rechner?
Wieviel RAM kann ich im Zweifelsfall entbehren?
Welche Größe haben die Pakete, die ich herunterladen will?
Beispiel:
Bei einigen installierten Spielen, dem Officeprogramm LibreOffice, dem
Webbrowser Chromium, dem Netzwerkanalysetool Wireshark und dem
Texteditor GNU Emacs kann ein Satz Paketaktualisierungen schnell mal ein
knappes Gigabyte ausmachen. Axel hat sich daher bei seinem
Laptop mit 8 GB RAM für maximal 2 GB Platz für heruntergeladene Pakete
entschieden.
Schritt zwei
betrifft die Integration in die Verzeichnishierarchie.
Tragen Sie dazu den neuen Einhängepunkt (engl.
mount point
) am Ende
der Datei
/etc/fstab
ein. Bei Axels Laptop sieht dies
wie folgt aus:
/etc/fstab
-Eintrag für
/var/cache/apt/archives/
# Gerät Einhängepunkt Dateisystemtyp Optionen fsck
none /var/cache/apt/archives tmpfs size=2147483648 0 0
Alternativ können Sie anstatt einer festen Größe in Bytes (mit
size=
) auch einen prozentualen Wert angeben
size=%
). Bei 8 MB RAM ist eine feste
Größe von 2 MB mit der Angabe
size=25%
identisch.
Nur mit dem Eintrag selbst ist das Dateisystem aber noch nicht
eingehängt. Um eventuell bereits heruntergeladene Pakete nicht zu
verwerfen, verschieben Sie in
Schritt drei
als Benutzer
root
den
aktuellen Inhalt des Verzeichnisses
/var/cache/apt/archives/
temporär woanders hin, hängen das
tmpfs
-Dateisystem aus dem RAM ein
(es wird dabei automatisch erzeugt) und verschieben die vorher
gesicherten Dateien an die alte Position im Dateibaum zurück.
Einhängen von
/var/cache/apt/archives/
als
tmpfs
-Dateisystem.
# mkdir /var/cache/apt/archives.temp
# mv /var/cache/apt/archives/* /var/cache/apt/archives.temp/
# mount /var/cache/apt/archives
# mv /var/cache/apt/archives.temp/* /var/cache/apt/archives/
Zum Testen rufen Sie am besten einmal das Kommando
apt-get update
auf.
Wenn sich das Kommando nicht mit Fehlermeldungen gegen die aktuellen
Einstellungen wehrt, haben Sie sehr wahrscheinlich alles richtig gemacht
und die Einrichtung ist erfolgreich abgeschlossen.
Die Einrichtung als
tmpfs
-Dateisystem im RAM macht sich auch nach
einem Neustart Ihres Linuxsystems bemerkbar. In diesem Fall verschwinden
sämtliche heruntergeladenen Paketdateien wieder aus dem Cache. Ein
Neustart hat somit den gleichen Effekt wie der Aufruf
apt-get clean
auf der Kommandozeile — nur: sie müssen seltener von Hand aufräumen.
29.2. Paketcache als separate Partition einrichten
Möchten Sie
/var/cache/apt/archives/
statt im RAM auf einer
echten Partition oder einem NFS-Server haben, so ist der Ablauf zu
obigem Beispiel nahezu identisch. Stattdessen ist zunächst noch die
Partition und das Dateisystem anzulegen, welches als Paketcache dienen
soll. Danach tragen Sie in der Datei
/etc/fstab
anstatt
none
den Gerätenamen oder NFS-Server plus Exportnamen. Anstatt von
tmpfs
setzen Sie den gewählten Dateisystemtyp (oder
nfs
) sowie die passenden
Optionen (oder
default
). Da es an dieser Stelle viel zu viel Varianten
gibt, um ein allgemeingültiges Beispiel zu geben, sei dies dem Leser als
Übung überlassen.
29.3. Cache-Verzeichnis als Unterverzeichnis auf anderer Partition
Möchten Sie den Paketcache weder ins RAM verlagern noch dafür eine
eigene Partition anlegen, sondern stattdessen einfach nur ein
Unterverzeichnis auf einer anderen Partition benutzen, so bietet Ihnen
APT diese Möglichkeit auch an. Dazu teilen Sie das APT mit und tragen
Ihren Wunschpfad in der Konfigurationsdatei
/etc/apt/apt.conf
über die Option
Dir::Cache::archives
mit. Für den neuen Pfad
/scratch/paketcache/
zum Paketcache sieht der Eintrag
beispielsweise wie folgt aus:
Beispiel für einen umgebogenen Paketcache in der Datei
/etc/apt/apt.conf
Dir::Cache::archives "/scratch/paketcache/";
APT kann dieses Verzeichnis nicht selbst anlegen. Es verläßt sich daher
darauf, dass dieses von Ihnen benannte Verzeichnis bereits existiert und
nur Schreibrechte für den Benutzer
root
besitzt. Sollte das
Verzeichnis noch nicht bestehen, legen Sie dieses wie folgt an:
Anlegen eines alternativen Verzeichnisses für den Paketcache.
# mkdir /scratch/paketcache/
# chown root:root /scratch/paketcache/
# chmod 755 /scratch/paketcache/
Abschließend überprüfen Sie, ob Ihre Eintragung wie erhofft
funktioniert. Dabei hilft Ihnen der kombinierte Aufruf von
apt-config
und
fgrep
apt-config
mit der Option
dump
liefert Ihnen die
aktuelle Konfiguration von APT, aus der Sie mittels
fgrep
nach dem
Eintrag
Dir::Cache
suchen.
Überprüfen der geänderten
Dir::Cache
-Einstellung für APT.
$ apt-config dump | fgrep Dir::Cache
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "/scratch/paketcache/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Es ist nicht auszuschließen, dass das eine oder andere Programm den
üblichen Pfad
/var/cache/apt/archives/
hart verdrahtet hat und
gar nicht in der APT-Konfiguration nach einem geänderten Pfad schaut
(was ein Bug wäre). Daher ist es empfehlenswert, zusätzlich einen
entsprechenden Hinweis zu hinterlegen. Am einfachsten ist ein
symbolischer Verweis (engl. kurz:
Symlink
) vom üblichen Pfad
/var/cache/apt/archives/
zum neuen Ort
[33]
Auch hier gilt wieder: Am besten gleich nach dem Einrichten mit dem
Kommando
apt-get update
testen und ggf. korrigieren.
Symlink zum neuen Paketcache anlegen.
# ln -s /scratch/paketcache/ /var/cache/apt/archives/
Konfiguration von APT und
apt-config
Wie Sie APT auf Ihre spezifischen Bedürfnisse anpassen, lesen Sie in
Kapitel 10,
APT und
aptitude
auf die eigenen Bedürfnisse anpassen
Detaillierter gehen wir auf das oben genutzte Kommando
apt-config
unter Konfiguration von APT anzeigen in
Abschnitt 10.2, „Konfiguration von APT anzeigen“
ein.
[32]
tmpfs
(englisch für
temporary
file system
) ist ein
Dateisystem, das in vielen unix-artigen Betriebssystemen als
verbesserter Ersatz für eine RAM-Disk eingesetzt wird. Im Gegensatz zur
RAM-Disk, bei der realer Arbeitsspeicher verwendet wird, wird bei
tmpfs
virtueller Arbeitsspeicher statt der Festplatte als Speicher
benutzt. (Quelle: Wikipedia)
[33]
Im Normalfall
sollte sogar der Symlink alleine auch ausreichen, damit APT einen
alternativen Cache findet. APT folgt dann einfach auch dem Symlink.
Kapitel 30. Eigenes APT-Repository anlegen
Wie Sie in den vorhergehenden Abschnitten gesehen haben, hängt es von
verschiedenen Faktoren ab, ob ein Paket Bestandteil der offiziellen
Veröffentlichung von Debian wird. Benötigen Sie eine bestimmte Software
häufiger, die noch nicht oder auch nicht mehr in einem offiziellen Repository
enthalten ist, ist das Anlegen eines eigenen APT-Repositorys durchaus
sinnvoll. Damit verringern Sie die Anzahl der Arbeitsschritte zur Pflege
ihres Softwarebestands erheblich. Als Motivation für eigene APT-Repositorys
sehen wir:
das Bereitstellen einer lokalen Paketauswahl, sprich: einfach nur Pakete mit
einem bestimmten Zweck oder Funktionsbereich vorhalten, bspw. für eine eigene
Distribution (quasi ein unvollständiger Paketmirror)
das Erstellen eigener, bislang nicht paketierter Software
das Neubauen bestehender Software als Paket und dessen lokale Bereitstellung,
bspw. mit Optimierung für die tatsächlich genutzte Hardware bzw. Architektur
Die nachfolgend vorgestellten Lösungsvarianten sind recht unterschiedlich und
reichen von einem schlichten Verzeichnis bishin zu einem eigenen Paketmirror,
den Sie auch später offiziell referenzieren können.
30.1. Verzeichnis mit Paketen
Diese Variante ist aus technischer Sicht sehr simpel. Im
1. Schritt
legen
Sie ein Verzeichnis fest, welches Sie als Ablage für die
.deb
-Pakete benutzen
möchten. Sofern noch nicht vorhanden, legen Sie dieses an, bspw. wie folgt:
Schritt 1: Verzeichnis für das Paketarchiv anlegen.
# mkdir -p /opt/paketarchiv
Der Schalter
-p
sorgt dafür, dass der vollständige Pfad
/opt/paketarchiv
angelegt wird. Damit umgehen Sie die Situation, dass
mkdir
seine Ausführung
abbricht, falls eine von Ihnen im Pfad angegebene Verzeichnisebene noch nicht
existiert.
Im
2. Schritt
kopieren Sie alle gewünschten
.deb
-Pakete in dieses
Verzeichnis, bspw. mit Hilfe von diesem Kommando:
Schritt 2: Daten hineinkopieren.
# cp -v *.deb /opt/paketarchiv/.
Die Angabe des Schalters
-v
sorgt dafür, dass alle Kopieraktionen sichtbar
werden, sprich: sie sehen in der Ausgabe im Terminal, welche Dateien in ihr
Paketarchiv kopiert werden. Danach können Sie ihr Paketarchiv bereits benutzen.
Benötigen Sie nun bspw. das Paket
software-0.2.3
aus ihrem Archiv,
installieren Sie dieses nun mit Hilfe von
dpkg
und mit dem Verweis auf ihr
Paketarchiv wie folgt:
Paket mittels
dpkg
aus dem Paketarchiv installieren.
# dpkg -i /opt/paketarchiv/software-0.2.3.deb
Um dieses Paketarchiv zu pflegen, genügt es vollkommen, nicht mehr benötigte
Pakete aus dem Verzeichnis zu löschen und neue oder aktualisierte Pakete in
dieses Verzeichnis zu kopieren. Mehr ist dafür nicht zu tun.
Anmerkung
Bitte beachten Sie, dass es bei dieser Lösung keine Authentifizierung und
Integritätsprüfung der Pakete im Archiv gibt. Zudem werden entstehende
Abhängigkeiten zu anderen Paketen nicht automatisch aufgelöst. Die
Verantwortung über die bereitgestellten Softwarepakete liegt vollständig bei
Ihnen.
30.2. dpkg-scanpackages
Die nachfolgend vorgestellte Lösung ist ähnlich zu der in
Abschnitt 30.1, „Verzeichnis mit Paketen“
. Es ergänzt diese jedoch
noch um passende Metadaten (auch
Packages index files
genannt). Die
Basis bildet hier ebenfalls ein Verzeichnis, welches Sie als Ablage für
ihre Softwarepakete benutzen möchten. Hier heißt dieses Verzeichnis
beispielhaft
/opt/paketarchiv/local
. Sofern es noch nicht vorhanden
ist, legen Sie dieses im
1. Schritt
noch wie folgt an:
Schritt 1: Verzeichnis für das Paketarchiv anlegen.
# mkdir -p /opt/paketarchiv/local
Im
2. Schritt
kopieren Sie alle gewünschten
.deb
-Pakete in dieses
Verzeichnis:
Schritt 2: Daten hineinkopieren.
# cp -v *.deb /opt/paketarchiv/local
Im
3. Schritt
erzeugen Sie noch zusätzliche Metadaten für ihr
Paketarchiv. Dabei kommt das Werkzeug
dpkg-scanpackages
aus dem Paket
dpkg-dev
[Debian-Paket-dpkg-dev]
zum Einsatz. Sofern Sie bisher noch
keine Debian-Pakete selbst gebaut haben, dürfte dieses Paket noch nicht
auf ihrem System vorhanden sein und Sie müssen es daher vor der
Benutzung nachinstallieren.
Nun erstellen Sie die benötigten Metadaten mittels
dpkg-scanpackages
Als minimale Angabe erwartet
dpkg-scanpackages
den Pfad zum
Paketarchiv und schreibt dann seine Ausgabe auf
stdout
. Besser ist es,
die Ausgabe mittels Umleitungsoperator
gleich in eine passende Datei
namens
Packages
umzulenken (Schreibweise des Dateinamens mit großem
). Der nachfolgende Aufruf geht noch einen Schritt weiter und
komprimiert die Ausgabe zusätzlich mittels
gzip
, so dass als Ergebnis
die Datei
Packages.gz
entsteht:
Schritt 3: Metadaten zum Paketarchiv erzeugen (
Packages.gz
).
# cd /opt/paketarchiv
# dpkg-scanpackages local/ | gzip -c > local/Packages.gz
dpkg-scanpackages: Information: 6 Einträge wurden in Ausgabe-Paketdatei geschrieben.
Liegen bspw. 6 Debian-Pakete in Form von
.deb
-Dateien im Paketarchiv,
liest
dpkg-scanpackages
deren Metadaten, gibt eine Meldung wie oben
aus und leitet die Informationen an
gzip
weiter.
gzip
komprimiert
die empfangenen Daten zunächst und speichert diese dann als Datei
Packages.gz
im Verzeichnis des Paketarchivs. Die erzeugte Datei
Packages.gz
beinhaltet Informationen pro Paket in der folgenden Form:
Paketinformationen zum beispielhaft verwendeten Paket
meta-mc
# cat local/Packages
Package: meta-mc
Version: 1.0
Architecture: all
Maintainer: Frank Hofmann
Installed-Size: 9
Depends: mc, mc-data
Filename: local/meta-mc_1.0_all.deb
Size: 3392
MD5sum: e8889ea18c25b40ba4cac00b7faf1518
SHA1: 58e5f6b03643d6da7fa471f63f387335a2df5e55
SHA256: fb6ee7948c5a5b243b6940b172af96fa72123d9c031caca62541d8c4f14aa7de
Section: misc
Priority: optional
Multi-Arch: foreign
Description: Installs the Midnight Commander
Installs the Midnight Commander

...
Die Pfadangabe, die Sie
dpkg-scanpackages
geben, ist jedoch tückisch.
Laut Manpage und den von uns online gefundenen Beispielen kann jeder
Pfad verwendet werden, in unseren Tests können wir das jedoch nicht
bestätigen. Die von uns oben genutzte Form funktioniert auch später mit
APT und
aptitude
zur Installation von Paketen.
Anmerkung
Bitte beachten Sie, dass Sie diesen Schritt mittels
dpkg-scanpackages
jedes Mal wiederholen müssen, wenn Sie Pakete im Paketarchiv hinzufügen
oder Pakete daraus entfernen. Mit dem folgenden Shellskript lässt sich
der Schritt automatisieren:
Automatisierung mit Hilfe eines Shellskriptes.
#! /bin/bash
dpkg-scanpackages /opt/paketarchiv/local | gzip -c > /opt/paketarchiv/local/Packages.gz
Idealerweise legen Sie das Skript unter einen passenden Pfad wie bspw.
/usr/bin
ab. Damit vereinfacht sich ihr Aufruf.
Nun folgt der
4. Schritt
— das Hinzufügen ihres soeben erzeugten,
lokalen Paketarchivs zur Liste der von Ihnen genutzten Repositorys
(siehe
Abschnitt 3.4, „Die Datei
/etc/apt/sources.list
verstehen“
). Entweder ergänzen Sie die
Datei
/etc/apt/sources.list
um eine Zeile mit ihrem Paketarchiv oder
Sie erstellen eine separate Datei im Verzeichnis
/etc/apt/sources.list.d
. Für obiges Beispiel sieht die Zeile wie folgt
aus, um ihr Paketarchiv zunächst lokal einzubinden:
Schritt 4: Zusätzlicher Eintrag in der Datei
/etc/apt/sources.list
deb [trusted=yes] file:///opt/paketarchiv local/
Die Angabe
[trusted=yes]
teilt APT mit, dass die Pakete aus der
angegebenen, lokalen Paketquelle vertrauenswürdig sind. Damit sparen Sie
sich (zunächst) den kryptographischen Überbau und können ihr Archiv
sofort verwenden.
Um das Paketarchiv nun auch für andere Benutzer via HTTP oder HTTPS
zugänglich zu machen, stellen Sie das Verzeichnis bspw. mit Hilfe eines
lokalen Webservers bereit. Ein gültiger Eintrag wäre bspw. der folgende:
Zusätzlicher Eintrag in der Datei
/etc/apt/sources.list
(Webserver).
deb [trusted=yes] https://www.webserver.com/paketarchiv local/
Anmerkung
Ab APT in der Version 1.5 (verfügbar ab Debian 10
Buster
) unterstützt
es HTTPS von sich aus. Nutzen Sie (noch) eine frühere Veröffentlichung
und möchten ihr Paketarchiv ebenfalls via HTTPS anzubieten, greifen Sie
zusätzlich auf das Paket
apt-transport-https
[Debian-Paket-apt-transport-https]
zurück. Mehr Informationen dazu
finden Sie unter
[LambAptHTTPS]
Mit obigem Eintrag vertraut APT nun allen Paketen aus ihrem Paketarchiv.
Aktualisieren Sie nun Ihre Liste der verfügbaren Pakete — bspw. mit
apt-get update
— „lernt“ APT ihr Paketarchiv und kann
Softwarepakete daraus in ihr System einbinden.
Anmerkung
Bitte beachten Sie, dass es bei dieser Lösung keine Authentifizierung und
Integritätsprüfung der Pakete im Archiv gibt. Die Verantwortung über die
bereitgestellten Softwarepakete liegt vollständig bei Ihnen.
30.3. reprepro
reprepro
[Debian-Paket-reprepro]
ist ein Programm, das
APT-Repositories aus unterschiedlichen Quellen bauen kann, u.a. als
Mirror oder aus lokalen Binär- oder Quellpaketen.
TODO:
Querverweise zum Aufsetzen eines eigenen Mirrors
Die unterschiedlichen Unterkommandos.
Wie werden verschiedene Distributions-Releases verwaltet
Handhabung von reinen Quell- oder Binär-Paketen als auch
.changes
-Dateien.
gpg-Schlüssel zum Signieren der bereitgestellten Pakete
30.4. mini-dinstall
Das Projekt
mini-dinstall
verfolgt den gleichen Zweck wie
minidak
: eine
kleinere Version von
dak
und zielt auf das Betreiben eigener APT-Repositories
ab. Daher ist es mit weniger Automatismen und Komfort als die größeren
Varianten ausgelegt. Es steht als gleichnamiges Debianpaket für die aktuelle,
stabile Veröffentlichung von Debian bereit
[Debian-Paket-mini-dinstall]
Hinzukommen entweder das Paket
dput
[Debian-Paket-dput]
oder dessen
Neufassung
dput-ng
[Debian-Paket-dput-ng]
. Beide Werkzeuge dienen dazu,
Softwarepakete auf Übereinstimmung mit den Debian-Richtlinien zu prüfen und
diese dann in das bereits von ihnen vorbereitete APT-Repository hochzuladen.
Bislang ist die Dokumentation zu
mini-dinstall
recht überschaubar. Eine
Übersicht zur Benutzung anhand von Beispielen sowie den einzelnen Einträgen in
der Konfigurationsdatei findet sich in der beigefügten Dokumentation zum Paket
mini-dinstall
sowie in der Manpage des Programms. Für die nachfolgende
Beschreibung hat auch das intensive Lesen und Vergleichen verschiedener
Blogbeiträge sehr viel geholfen.
30.4.1. Voraussetzungen
Die grundlegende Voraussetzung ist ein Verzeichnis für das APT-Repository — sprich: wo möchten Sie ihre Pakete ablegen.
mini-dinstall
ist da recht
flexibel und folgt ihren Angaben. Soll das APT-Repository lediglich lokal
bereitstehen, genügt ein Pfad wie bspw.
/opt/paketarchiv
vollkommen. Soll
das APT-Repository hingegen auch von anderen Rechnern aus via HTTP oder HTTPS
erreichbar sein, benötigen Sie neben einem Webserver wie Apache oder Nginx auch
einen Pfad unterhalb des Wurzelverzeichnisses des Webservers, bspw.
/var/www/debian
. Genau diesen Fall zeigen wir hier.
30.4.2. Einrichtung
Verzeichnisstruktur des APT-Repositorys
Als erstes stellen Sie sicher, dass das Verzeichnis des APT-Repositorys
vorhanden ist und legen es an, falls es noch nicht existiert:
Verzeichnis für das APT-Repository anlegen.
# mkdir -vp /var/www/debian
mkdir: Verzeichnis '/var/www/debian' angelegt
Danach legen Sie ein Unterverzeichnis an, indem die neuen, von Ihnen später
hochgeladenen Pakete zunächst landen. In unserem Fall heißt dieses lediglich
neuepakete
Verzeichnis für neue Pakete anlegen.
# mkdir -vp /var/www/debian/neuepakete
mkdir: Verzeichnis '/var/www/debian/neuepakete' angelegt
Konfiguration für
mini-dinstall
Als nächstes legen Sie eine Konfigurationsdatei für
mini-dinstall
an. Der
übliche Name dafür ist
.mini-dinstall.conf
in dem Home-Verzeichnis des
Benutzers, der die Pakete später in das APT-Repository hochlädt. Eine einfache
Konfigurationsdatei
.mini-dinstall.conf
sieht wie folgt aus:
Basiseinstellungen zu
.mini-dinstall.conf
[DEFAULT]
archivedir = /var/www/debian
archive_style = flat
architectures = all, amd64
mail_on_success = false
Damit liegt das APT-Repository unter
/var/www/debian
mit einer flachen
Struktur (alle Binärpakete landen im gleichen Unterverzeichnis) und
Unterverzeichnisse werden nur für die beiden Architekturen
amd64
und
all
angelegt. Es erfolgt keine Benachrichtigung bei einem erfolgreichen Upload.
Die Einstellungen gelten für alle Archive (Abschnitt
[DEFAULT]
), spezifische
Einstellungen pro Veröffentlichungsstatus bestehen nicht.
Mit obigen Angaben ist ihr APT-Repository bereits benutzbar. APT und
aptitude
erwarten jedoch noch zusätzliche Informationen, um die Pakete in ihrem eigenen
Repository auch als vertrauenswürdig anzuerkennen.
Schritt 1
ist eine
Release
-Datei. Dafür ergänzen Sie die folgende Zeile am Ende der obigen Datei
.mini-dinstall.conf
Ergänzungen zu
.mini-dinstall.conf
generate_release = 1
Laden Sie später ein Paket hoch oder rufen Sie
mini-dinstall
direkt auf,
erzeugt es eine solche
Release
-Datei mit den Hashwerten der Pakete in ihrem
Repository. Diese hat dann bspw. den folgenden Inhalt:
Inhalt der
Release
-Datei.
# cat /var/www/debian/unstable/Release
Origin: root
Label: root
Suite: unstable
Codename: unstable
Date: Wed, 13 Nov 2019 17:02:23 UTC
Architectures: all amd64
MD5Sum:
d41d8cd98f00b204e9800998ecf8427e 0 Packages
f88f7e4006faa70eb958d8db16b863c3 33 Packages.gz
4059d198768f9f8dc9372dc1c54bc3c3 14 Packages.bz2
d41d8cd98f00b204e9800998ecf8427e 0 Sources
e86c520b4bec9c320a71529fdf92275f 32 Sources.gz
4059d198768f9f8dc9372dc1c54bc3c3 14 Sources.bz2
SHA1:
da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Packages
91199c61d2cf161208659f6218378c86498df72e 33 Packages.gz
64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 Packages.bz2
da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Sources
17beadd3c12ddc3e8079627fc4a7f31f203c5705 32 Sources.gz
64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 Sources.bz2
SHA256:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Packages
adffd98c43936b6d4263f0ae73f49ca71b98675143f3bd76d62182dafd7f25dc 33 Packages.gz
d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 Packages.bz2
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Sources
2340b8ea571b7f6c0ed490857b3828d19334bf03693cb846114f82770b9facaf 32 Sources.gz
d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 Sources.bz2
Anmerkung
Eine Übersicht zu den einzelnen Schaltern von
mini-dinstall
und den
zulässigen Einträgen in der Konfigurationsdatei finden Sie unter
Abschnitt 30.4.4, „Schalter und Konfiguration“
Konfiguration für
dput
Nun folgt
dput
oder
dput-ng
. Die beiden Werkzeuge sind nicht unbedingt
erforderlich. Beide vereinfachen Ihnen nur das Hochladen von Paketen. Ohne
dput
müssen Sie das manuell machen.
Ein üblicher Name für die Konfigurationsdatei ist
.dput.cf
im
Home-Verzeichnis des Benutzers, der die Pakete später in das APT-Repository
hochlädt. Darin stellen sie
dput
passend zum weiter oben genannten
APT-Repository ein, bspw. wie folgt:
.dput.cf
-Beispiel:
[local]
fqdn = localhost
method = local
incoming = /var/www/debian/neuepakete
run_dinstall = 0
post_upload_command = mini-dinstall -b
Die Angabe
[local]
bezeichnet den Namen des Repositorys und alle danach
folgenden Angaben beziehen sich auf dieses Repository.
fqdn
kürzt den
Begriff
fully-qualified domain name
ab und bezeichnet die URL bzw. den
Rechnernamen, auf dem sich das APT-Repository befindet. Der Pfad bei
incoming
gibt das Unterverzeichnis an, indem neue Pakete landen. Die Angabe
run_dinstall = 0
legt fest, dass kein Aufruf von
dinstall -n
erfolgen soll,
sprich: kein Installationstest für das Paket. Die letzte Zeile
post_upload_command
) gibt das Kommando an, welches nach dem Hochladen
ausgeführt wird. Die Angabe von
mini-dinstall -b
versetzt
mini-dinstall
in den Batchbetrieb, d.h.
mini-dinstall
integriert neue Pakete in das
Paketarchiv, sobald diese im Unterverzeichnis für die hochgeladenen Pakete
gelandet sind.
Paket in das Repository hochladen
Jetzt laden Sie ihr Paket hoch. Das nachfolgende Beispiel nutzt das in
Kapitel 22,
Metapakete bauen
erzeugte Metapaket
meta-mc
Der Schalter
-u
im Aufruf kürzt
--unchecked
ab und überspringt den Test
der kryptographischen Signaturen zum Paket. Das ist zum Testen ganz praktisch.
Hochladen eines Paketes mit
dput
# dput -u local /home/frank/projekte/metapackage/meta-mc_1.0_amd64.changes
Uploading to local (via local to localhost):
Successfully uploaded packages.
Benutzen Sie kein
dput
oder
dput-ng
, laden Sie alle Dateien, die in der
.changes
-Datei zum Paket benannt sind, in das Unterverzeichnis, indem neue
Pakete landen (
dput
macht nichts anderes).
Einrichtung (was noch schön wäre)
gpg-Schlüssel zum Signieren der bereitgestellten Pakete
30.4.3. Laufender Betrieb
APT-Repository zu ihren Paketquellen hinzufügen
neuer Eintrag in der
/etc/apt/sources.list
# local repo
deb file:/var/www/debian/ unstable/
deb-src file:/var/www/debian/ unstable/
apt-get update
Ergänzungen
cron oder daemon
30.4.4. Schalter und Konfiguration
mini-dinstall
kommt mit einer ganzen Reihe von Schaltern daher. Auch die
Einträge für die Konfigurationsdatei sind etwas länger. Als
Schalter
unterstützt
mini-dinstall
die folgenden:
-b
(Langform
--batch
laufe im Stapelmodus (
batch mode
-c
(Langform
--config=file
benutze
file
als Konfigurationsdatei. Der
Standardwert ist
~/.mini-dinstall.conf
-d
(Langform
--debug
Gib zusätzliche Debuginformationen im Terminal
und dem Logfile aus
-k
(Langform
--kill
beende den laufenden Daemon sofort
-n
(Langform
--no-act
führe keine Änderungen aus. Der Schalter ist
nützlich in Kombination mit dem Schalter
-v
-q
(Langform
--quiet
zeige so wenig Informationen an, wie nur möglich
-r
(Langform
--run
teile dem aktuell laufenden Daemon mit, dass er die
Abarbeitungsschlange sofort bearbeiten soll
-v
(Langform
--verbose
zeige ausführliche Informationen an
--help
zeige eine kurze Liste der Schalter an
--no-db
schalte das Nachschauen in der Paketdatenbank ab.
apt-ftparchive
läuft ohne den Schalter
--db
--no-log
schreibe kein Logfile
--version
zeige die Version von
mini-dinstall
an
In der
Konfigurationsdatei
sind die folgenden Einträge zulässig:
archivedir
The root of the mini-dinstall archive. Must be set, either here or on the command line.
extra_keyrings
Additional GnuPG keyrings to use for signature verification.
incoming_permissions
The permissions for the incoming directory. mini-dinstall will attempt to set the directory’s permissions at startup. A value of zero (´

or ´
0000´
) will disable permission setting. Doing this, you MUST set permission for incoming by hand! Defaults to 0750.
keyrings
GnuPG keyrings to use for signature verification of changes files. Setting this parameter will modify the default list; it is generally better to modify
extra_keyrings
instead. Defaults to the keyrings from the debian-keyring package.
30.4.5. Lesematerial
Creating a Package Repository for APT (see
30.5. apt-ftparchive
Goals: Superset of
dpkg-scanpackages
and
dpkg-scansources
Pros:
Does not rely on any external programs aside from gzip.
Creates Release and Contents files without providing
*.changes
Cons:
Can be slow on large repositories, unless the input file (?FileList) is sorted first (the sort command works).
Package: apt
Distributions: oldstable, stable, testing, unstable, experimental
Dependencies: unstable/admin/apt-utils
Automatic repositories: No (Yes with dupload)
Incoming mechanism: No (Yes with custom move cron script with dupload)
Pools: Yes
GPG signing: No (Yes with dupload with script)
Inclusion of .deb without .changes: ??
Several versions of each package: ??
HOWTOs:
Debian Reference (lenny) — SecureAPT in combination with dupload (aimed at someone who has shell access to a web server) — https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_small_public_package_archive
apt-ftparchive generate Roberto Sanchez how-to — he now recommends to use reprepro
30.6. aptly
Goals: manage local repositories, snapshot them and publish
Pros:
supports multiple versions of package in one repo
has supported for mirroring in the same tool
Download & Documentation:
Distributions: stable, testing, unstable
Source: GitHub
Automatic repositories: Yes (?)
Incoming mechanism: Yes (inoticoming → aptly repo include)
Pools: Yes
GPG signing: Yes
Inclusion of .deb without .changes: Yes
Several versions of each package: Yes
HOWTOs:
aptly tutorials:
Example of setup with incoming:
30.7. debify
Goal: takes a directory full of Debian packages and creates a signed and properly-structured Debian repository (wrapper around aptly)
Download:
(docker container)
Source: GitHub
Kapitel 31. Einen eigenen APT-Mirror aufsetzen
Wie bereits in „Geeigneten Paketmirror auswählen“ (siehe
Abschnitt 3.5, „Geeigneten Paketmirror auswählen“
) deutlich wurde, stellen die
offiziellen Paketmirrors (auch „Spiegelserver“ genannt) stets aktuelle
Debian-Pakete für alle Benutzer und Interessierten zur Verfügung. Diese
Spiegelserver sind weltweit verteilt und werden weitestgehend individuell
betreut.
Entsprechen die bereits bestehenden und für Sie netztechnisch erreichbaren
Spiegelserver nicht ihren Anforderungen an die Bezugszeit der Pakete,
Aktualität der Software und Verfügbarkeit des Dienstes, kann das Aufsetzen
einer eigenen Instanz eine mögliche Lösung zur Verbesserung ihrer Situation
sein. Prinzipiell erreichen Sie damit das gleiche Ergebnis wie mit einem
Paketcache (siehe „Einen APT-Cache einrichten“ in
Kapitel 28,
Einen APT-Paket-Cache einrichten
), da darüber
ebenfalls Debian-Softwarepakete in einer Art lokalem Puffer bereitgestellt
werden.
Der Unterschied zwischen einem Paketcache und einem Paketmirror besteht darin,
dass bei ersterem nur die Pakete vorgehalten werden, die bisher nachgefragt
wurden, d.h. über die Paketverwaltung bezogen wurden. Im Gegensatz dazu stellt
ein Paketmirror die gesamte Distribution inkl. ausgewählter Veröffentlichungen
bereit. Er spiegelt den offiziellen, aktuellen Paketbestand und macht ihn somit
für die Benutzer, Dienste und Geräte in ihrem lokalen Netzwerk verfügbar. Damit
geht eine Entlastung der offiziellen Paketmirror und eine Verringerung des
Netzwerkverkehrs zu diesem einher — die verfügbare Bandbreite der
Außenanbindung kann anderweitig genutzt werden. An der Stelle ist jedoch dafür
zu sorgen, dass der lokale Spiegelserver auch stets aktuelle Pakete vorhält.
Das gelingt über eine Synchronisation mit einem anderen Paketmirror als
Referenz.
Das Debian-Projekt nutzt als Werkzeuge zur Erzeugung und Pflege eines
Spiegelservers
dak
und
minidak
dak
kürzt
Debian Archive Kit
ab
[DebianArchiveKit]
, ist die offizielle Lösung für die Spiegelserver auf der
Basis von Python und besitzt eine Anbindung an das DBMS PostgreSQL.
minidak
[minidak]
ist eine schlankere Reimplementierung von
dak
in Form von
Shellskripten ohne die Erfordernis einer Datenbank.
minidak
wird zum
Beispiel vom Debian-Ports-Projekt genutzt (siehe dazu
Abschnitt 1.2.1, „Debian-Ports-Projekt“
). Die offiziellen Empfehlungen für
private Spiegelserver, die nicht die gesamte Distribution oder nur eine
bestimmte Veröffentlichung bereitstellen, sind
reprepro
(siehe
Abschnitt 31.6, „reprepro“
) und
minid-install
(siehe
Abschnitt 30.4, „mini-dinstall“
).
Nachfolgend stellen wir Ihnen mehrere Varianten vor. Diese benutzen die Pakete
apt-mirror
(siehe
Abschnitt 31.1, „apt-mirror“
),
debmirror
(siehe
Abschnitt 31.2, „debmirror“
),
debpartial-mirror
(siehe
Abschnitt 31.3, „debpartial-mirror“
),
ubumirror
(siehe
Abschnitt 31.4, „ubumirror“
),
debarchiver
(siehe
Abschnitt 31.5, „debarchiver“
) und
reprepro
(siehe
Abschnitt 31.6, „reprepro“
).
Anmerkung
Möchten Sie nach der erfolgreichen Inbetriebnahme ihren eigenen Spiegelserver
auch öffentlich zugänglich machen, nutzen Sie dazu am besten das bereits dafür
vorbereitete Formular auf der Webseite des Debian-Projekts
[Debian-Spiegel-Informationen]
31.1. apt-mirror
Das Paket
apt-mirror
[Debian-Paket-apt-mirror]
beinhaltet die Software, mit
der Sie die gesamte Debian-Distribution oder eine beliebige Paketquelle auf der
Basis von APT lokal spiegeln können. Ubuntu hat dieses Paket in seinem
Distributionsbereich
universe
einsortiert, da es weniger von Endbenutzern
verwendet wird und in den administrativen Bereich fällt.
Projektseite
[apt-mirror-Projektseite]
Funktionsumfang (aus der Paketbeschreibung):
Es verwendet eine gleichartige Konfiguration wie die
/etc/apt/sources.list
von APT
Es stimmt vollständig mit dem Paket-Pool überein.
Es kann beim Herunterladen mit mehreren Threads arbeiten.
Es unterstützt mehrere Architekturen gleichzeitig.
Es kann nicht benötigte Dateien automatisch entfernen.
Es funktioniert auch mit überlasteten Internetverbindungen gut.
Es erstellt nie einen inkonsistenten Spiegel, sogar während des Spiegelns.
Es funktioniert auf allen POSIX-konformen Systemen mit
perl
und
wget
[Debian-Paket-wget]
Einrichtung anhand eines Beispiels für Ubuntu mit
apt-mirror
[apt-mirror-ubuntu2]
31.1.1. Wichtige Dateien aus dem Paket
/etc/apt/mirror.list
/etc/cron.d/apt-mirror
oder
crontab
apt-mirror
31.1.2. Ablauf
Paket
apt-mirror
beziehen und installieren
/etc/apt/mirror.list
anpassen
Beispielkonfiguration für
/etc/apt/mirror.list
set nthreads 5
set _tilde 0

deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware

# backports
deb http://ftp.de.debian.org/debian bookworm-backports main contrib non-free non-free-firmware

# cleaning section
clean http://ftp.de.debian.org/debian/
clean http://security.debian.org/
clean http://ftp.de.debian.org/debian
/etc/cron.d/apt-mirror
oder
crontab
anpassen
Eintrag für eine tägliche Aktualisierung des Paketmirrors.
@daily /usr/bin/apt-mirror
das Kommando
apt-mirror
ausführen
Pakete landen danach in
/var/spool/apt-mirror
Mirror via http verfügbar machen
Symlink zum Apache-Verzeichnis anlegen
# ln -s /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian/ /var/www/html/debian
/etc/apt/sources.list
der Clienten entsprechend anpassen :)
31.1.3. Beispiel/HowTo
nur
apt-mirror
[apt-mirror-ubuntu]
apt-mirror
und
apt-cacher
[apt-mirror-ubuntu2]
31.1.4. Hinweise
nur die Bereiche und Architekturen auswählen, die Sie tatsächlich
benötigen — alles andere braucht
sehr viel
Platz
Ubuntu: etwa 15G pro Architektur
initialer Bezug kann sehr lang dauern
bei einem Folgebezug werden nur die Änderungen übertragen — daher
geht das deutlich schneller
31.2. debmirror
Paket:
[Debian-Paket-debmirror]
Beschreibung von
debmirror
unter
keine Konfigurationsdatei
stattdessen: alles als Parameter für den Aufruf über die Kommandozeile
Parameter/Optionen (Auswahl):
-a
Architektur
-s
Section
-d
Distribution bzw. Veröffentlichung
-h
Host oder Server, von dem bezogen werden soll
--nosource
keine Source-Pakete
--progress
Verlauf anzeigen
-v
ausführliche Ausgabe (verbose)
--method
Methode, die zum Bezug verwendet werden soll
Beispielaufruf für
debmirror
in
/home/ftp/debian
# debmirror -a i386 -s main -s contrib -s non-free \
-h ftp.debian.org \
-d wheezy
/home/ftp/debian \
--nosource \
--progress
31.3. debpartial-mirror
Paket:
[Debian-Paket-debpartial-mirror]
geeignet zum Spiegeln eines partiellen Debian-Mirrors
wenn man nur einen Ausschnitt des Paketbestands benötigt
wenn nur begrenzt Platz vorhanden ist
aus der Paketbeschreibung:
„With it, you can mirror selected sections, priorities, packages,
virtual packages, or even files and directories matching regular
expressions. Packages may be drawn from any number of sources, with
dependencies for each source resolved from whichever other sources you
specify.“
31.4. ubumirror
Paket:
[Ubuntu-Paket-ubumirror]
31.5. debarchiver
Goals: Make a simpler version of dak.
Pros:
Easy to use incoming mechanism - even on remote systems - by using a cron-job
Packages can be moved into a distribution by
reading the Distribution value from .changes file or
directly putting the whole package into a distributions-incoming directory.
Standard repository (can be pinned)
Cons:
No Pool-architecture at the moment
Some useful checks are missing
Cleaning needs to be done manually
Package:
debarchiver
[Debian-Paket-debarchiver]
Distributions: oldstable, stable, testing, unstable
Dependencies: unstable/devel/debarchiver
adduser, apt-utils (recommended) | dpkg-dev, opalmod (Perl modules), gnupg (optional)
Automatic repositories: Yes
Incoming mechanism: Yes
Pools: No (but suggested somewhere at BTS).
GPG signing: Yes (with gnupg, post-Sarge feature).
Inclusion of .deb without .changes: ??
Several versions of each package: ??
31.6. reprepro
Paket
[Debian-Paket-reprepro]
Optionen und Filter, um ein Repo zu erzeugen
Kapitel 32. Plattenplatz sparen mit der Paketverwaltung
Hintergrund:
Software besteht aus vielen einzelnen Paketen
Speicherplatz reicht nicht immer aus, d.h. ist immer in irgendeiner
Form begrenzt
Filesystem hat Begrenzungen (Anzahl der Inodes)
Partition hat eine physische Grenze
je mehr Platz belegt ist, um so langsamer werden die Plattenzugriffe
Experimente hinterlassen ihre Spuren in Form von "Paketresten", die
übriggeblieben sind (aufräumen ist immer nützlich)
Lösungsmöglichkeiten
Hardlink über
/usr/share/doc/
laufen lassen
[Beckert-Blog-Hardlinking-Duplicate-Files]
dpkg --path-exclude=…
Paket
localepurge
, momentan noch unter
Kapitel 40,
Paketverwaltung mit eingeschränkten Ressourcen für Embedded und Mobile Devices
Ungenutzte Bibliotheken, denen aber das „Automatisch installiert“-Flag fehlt
[Beckert-Blog-Finding-Libraries]
den Paketcache aufräumen (siehe
Abschnitt 7.5, „Paketcache aufräumen“
Auch
/var/cache/apt
auf tmpfs gehört hier erwähnt, momentan unter
Kapitel 29,
Cache-Verzeichnis auf separater Partition
logrotate
(sollte eigentlich installiert sein, sorgt aber für nicht
permanent wachsende Logfiles. Seine Konfiguration sollte angepasst
werden, wenn man manuell weitere Logfiles in Anwendungen (VHosts im
Apache z.B.) konfiguriert.
Keinen Syslogd (Default-Paket ist
rsyslog
, dieses entfernen)
verwenden und das Syslog nur in einen Ringbuffer laufen lassen.
Hat man systemd, kann man mit
journalctl
das Log im Ringbuffer
anschauen.
Hat man sysvinit, so kann man das Paket
busybox-syslogd
installieren und mit
logread
den Inhalt des Ringbuffers
anschauen.
Gehört eigentlich nicht zur Paketverwaltung… Kann man
entsprechend zum Kürzen wieder rauskippen.
siehe ReduceDebian — Reducing the size of the Debian Installation
unter Footprint unter
nicht-kritische Pakete entfernen
apt umkonfigurieren, so dass es nicht automatisch zusätzliche Pakete installiert
Pakete durch kleinere Äquivalente ersetzen
unnötige Pakete entfernen
unnötige Locales entfernen, bspw. mittels localepurge
unnötige Kernelmodule entfernen
bleachbit benutzen (
Kapitel 33. Platte läuft voll
* ja, das gibt es heute immer noch
* auch, wenn Festplatten vergleichsweise riesig sind
* Hinweis: es gibt ältere Systeme, die klaglos ihren Dienst leisten
* also: genügend Anlässe, sich damit auseinanderzusetzen
33.1. Hintergrund
Pakete werden heruntergeladen, bspw. durch aptitude
Speicherplatz reicht nicht aus,
um alle herunterzuladenden Pakete zu speichern (cachen)
um alle benötigten Pakete zu installieren
wann passiert das
ist nicht ungewöhnlich, …
wenn System kleiner ausgelegt ist, als gedacht
wenn sich das Ziel/der Einsatzzweck der Maschine ändert
(Testsystem, Testsystem wird "plötzlich" doch Produktivsystem)
neue Paketabhängigkeiten hinzugekommen sind, bspw. für Features, die
man vorher nicht brauchte
bei der Aktualisierung des Systems (update, upgrade und dist-upgrade)
irgendwo müssen die Pakete ja erstmal hin — sprich: also landen die
im Paketcache
Reihenfolge des Downloads steht nicht wirklich fest
Auswahl der Installation …. zufällig?
Abbildung 33.1. Kein Platz mehr
Abbildung 33.2. Download-Fehler
33.2. wie löst man diesen Zustand (Empfehlung zum Vorgehen)
Ziele:
produktives, stabiles System
alle gewünschten Pakete werden heruntergeladen und installiert
33.3. Varianten
aptitude verlassen
mit df -h schauen, wieviel Platz noch verfügbar ist
mit aptitude clean den Paketcache aufräumen
mit aptitude autoremove Pakete entfernen, die nicht mehr benötigt
werden, aber noch installiert sind
Paketabhängigkeiten begutachten
schauen, ob wir Pakete einzeln (nacheinander) installieren können
nach jeder Installation wieder den Paketcache aufräumen
33.4. Fehler beheben
kurz:
geht
länger:
ist etwas unschön
ist Kombination aus Automatismen und Handarbeit
braucht etwas Zeit und Geduld
wie bekomme ich heraus, welche Pakete unvollständig installiert sind
gibt es eine Bearbeitungs-Queue?
wie kann ich mir die anzeigen lassen?
kann ich die beeinflussen (was wird zuerst daraus installiert?)
wie repariere ich die Stück für Stück
wie bringe ich dpkg bzw. apt dazu, die Installation zu wiederholen
reparieren dpkg/apt das irgendwie von alleine?
wie repariere ich Pakete selber, sprich: wie stoße ich eine erneute
Installation des Pakets an?
fehlende Abhängigkeiten selber nachziehen
Kapitel 34. Paketkonfiguration sichern
Betreuen Sie eine Reihe von Rechnern, die jeweils aktuell und zumindest
bezogen auf die Paketauswahl identisch bleiben müssen, ist das manuelle
Sichern, Pflegen und Einspielen einer Paketliste etwas mühselig. Der
händische Abgleich mit Hilfe von
dpkg
und
diff
braucht einfach zu lange,
ist zudem fehleranfällig und hält Sie von weitaus spannenderen Aufgaben auf
ihrem System ab.
Daher schauen wir uns in diesem Kapitel verschiedene Wege an, um diese Schritte
möglichst zu automatisieren. Unterteilt haben wir das in das Auslesen der
Paketkonfiguration und das Einspielen der zuvor gesicherten Paketkonfiguration.
Zum Einsatz kommen dabei die Werkzeuge
dpkg
(siehe
Abschnitt 34.1.1, „Mit
dpkg
),
apt
(siehe
Abschnitt 34.1.2, „Mit
apt
),
debconf-get-selections
(siehe
Abschnitt 34.1.3, „Mit
debconf-get-selections
),
debconf-set-selections
(siehe
Abschnitt 34.2.2, „Mit
debconf-set-selections
) und
apt-clone
(siehe
Abschnitt 34.1.4, „Mit
apt-clone
und
Abschnitt 34.2.3, „Mit
apt-clone
). Zum Schluß reißen wir
eine Auswahl graphischer Werkzeuge kurz an (siehe
Abschnitt 34.3, „Graphische Werkzeuge“
).
34.1. Die bestehende Paketkonfiguration auslesen
Zunächst betrachten wir, wie Sie die Liste der installierten Pakete auslesen
und sichern. Das ist Voraussetzung dafür, um später alle diese Pakete wieder
einspielen zu können — sei es auf dem gleichen System oder einem neuen
Rechner, welcher identisch zum erstgenannten werden muss. Alle benötigten
Informationen dazu stehen in der Debconf-Datenbank.
34.1.1. Mit
dpkg
Wie wir bereits in
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
erklärt haben, ist
dpkg
das zentrale Werkzeug, um die Paketdatenbank
auszulesen und Ihnen die derzeit installierten und vollständig konfigurierten
Pakete auf der Standardausgabe (
stdout
) aufzulisten. Über das nachfolgend
gezeigte Kommando erhalten Sie eine entsprechende Liste mit den Namen der
Pakete.
Liste der installierten Pakete namentlich sortiert in einer Datei ablegen (Version 1).
$ dpkg -l | egrep "^ii" | awk ' { print $2 } ' | sort > paketliste
Das Werkzeug
egrep
filtert zunächst nur die Zeilen aus der Ausgabe von
dpkg
heraus, die mit
ii
beginnen — sprich: die installierten und
vollständig konfigurierten Pakete. Die zusätzlichen informationen wie
Installationsstatus, Kurzbeschreibung und die Version des jeweiligen Pakets
werden dann mit Hilfe von
awk
aus jeder verbliebenen Zeile herausgefiltert.
Anschließend sortieren wir die Liste der Paketnamen mit Hilfe von
sort
noch
alphabetisch aufsteigend. Die Ausgabe des Kommandos landet in der Datei
paketliste
im aktuellen Verzeichnis:
Um den Aufwand etwas zu verringern, ist der Schalter
--get-selections
von
dpkg
nützlich. Dieser sorgt dafür, daß
dpkg
nur den Namen und den
Installationsstatus eines Pakets ausgibt. Kombiniert mit
grep
awk
und
einem abschließenden
sort
bauen Sie sich daraus eine sortierte Liste wie
folgt:
Liste der installierten Pakete namentlich sortiert in einer Datei ablegen (Version 2).
$ dpkg --get-selections | grep -v deinstall | awk ' { print $1 } ' | sort > paketliste
Bitte beachten Sie, daß
dpkg
lediglich die Namen der Pakete ermittelt. Sofern
der Aufruf auf einem Multiarch-System erfolgt, fügt
dpkg
in bestimmten Fällen
noch die Architektur hinzu, zu der das Paket gehört. Sämtliche Konfiguration
bleibt hingegen unbeachtet.
Mit
dpkg
ermittelte Liste der installierten Pakete (Ausschnitt).
$ cat paketliste
aapt
acl
acpi
adduser
adwaita-icon-theme
alsa-base
alsa-utils
binutils
binutils-common:amd64
...
Diese soeben erzeugten Liste nutzen Sie als Referenz, um nun andere Systeme
identisch aufzusetzen. Wie das geht, lesen Sie in
Abschnitt 34.2.1, „Mit
apt-get
nach.
34.1.2. Mit
apt
Die nachfolgende Kombination aus
apt
awk
sed
tail
und
sort
liefert
Ihnen ebenfalls eine Liste der installierten Pakete in alphabetisch aufsteigender
Sortierung ähnlich zur Liste aus
Abschnitt 34.1.1, „Mit
dpkg
. Jedoch
ist hier noch ein kleines Hindernisse zu umschiffen: das Ausgabeformat von
apt
ist anders — die Architektur eines Paketes wird stets in einer zusätzlichen
Spalte benannt. Daher werden zunächst die erste und vierte Spalte zusammengezogen
und danach die Angabe der Architektur
all
mittels
sed
entfernt. Der Aufruf
von
tail
gibt alle Zeilen ab der zweiten Zeile aus,
sort
sortiert abschließend.
apt
zur Erstellung der Paketliste benutzen.
$ apt list --installed | awk -F '[/ ]' '{ print $1":"$4 }' | sed -e 's/:all$//' | tail -n +2 | sort > paketliste
Mit
apt
ermittelte Liste der installierten Pakete (Ausschnitt).
$ cat paketliste
acl:amd64
adduser
adwaita-icon-theme
aglfn
alsa-oss:amd64
alsa-topology-conf
alsa-ucm-conf
alsa-utils:amd64
alsamixergui:amd64
alsaplayer-alsa:amd64
alsaplayer-common:amd64
binutils-common:amd64
binutils-x86-64-linux-gnu:amd64
binutils:amd64
...
Bitte beachten Sie, daß
apt
nur die Namen der Pakete ermittelt. Sämtliche
Konfiguration bleibt ebenfalls unbeachtet. Diese soeben erzeugten Liste nutzen
Sie als Referenz, um nun andere Systeme identisch aufzusetzen. Wie das geht,
lesen Sie in
Abschnitt 34.2.1, „Mit
apt-get
nach.
34.1.3. Mit
debconf-get-selections
Das Werkzeug
debconf-get-selections
aus dem Paket
debconf-utils
[Debian-Paket-debconf-utils]
erzeugt eine Liste der Pakete, die installiert
sind und für die eine weitere Konfiguration durch APT bei der Installation des
Paketes notwendig ist. Das Verfahren kommt im Rahmen des sogenannten
preseeding
zum Einsatz, auf Deutsch mit
Vorbelegen von Konfigurationswerten
übersetzbar.
Die Ausgabe von
debconf-get-selections
umfaßt den Paketnamen und dessen
Konfiguration, sprich: die Fragen plus die Antworten, aus denen Sie bei der
Installation des Paketes durch APT wählen können sowie ihre tatsächliche
Antwort. Der nachfolgende Ausschnitt zeigt das für das Paket
cups
Die Ausgabe von
debconf-get-selections
...
# Backends für die Kommunikation mit dem Drucker:
# Choices: lpd, Socket, USB, SNMP, dnssd
cups cupsys/backend multiselect lpd, socket, usb, snmp, dnssd
...
Abbildung 34.1, „Fragen zum Paket
cups
zeigt den dazugehörigen Konfigurationsdialog, den
Sie auch stets mit Hilfe von
dpkg-reconfigure cups
erreichen können.
Abbildung 34.1. Fragen zum Paket
cups
Die Ausgabe von
debconf-get-selections
erfolgt auf der Standardausgabe
stdout
). Eine Liste in einer Ausgabedatei namens
paketliste
mit den
Paketnamen in sortierter Reihenfolge erzeugen Sie mit Hilfe der
Kombination aus den fünf Werkzeugen
debconf-get-selection
grep
awk
sort
und
uniq
wie folgt:
Auslesen der bestehenden Paketkonfiguration aus der Debconf-Datenbank.
# debconf-get-selections | grep -v "^#" | awk ' { print $1 } ' | sort | uniq > paketliste
Die ermittelte Liste sieht dann wie folgt aus:
Mit
debconf-get-selections
ermittelte Liste der installierten Pakete (Ausschnitt).
# cat paketliste
apparmor
base-passwd
ca-certificates
console-setup
...
In
Abschnitt 34.2.2, „Mit
debconf-set-selections
lesen
Sie nach, wie Sie die erzeugte Liste benutzen, um die darin genannten Pakete
auf einem anderen System wieder einzuspielen.
34.1.4. Mit
apt-clone
Dieses Werkzeug steht über die gleichnamigen Pakete bis Debian 11
Bullseye
und Ubuntu bereit (siehe
[Debian-Paket-apt-clone]
und
[Ubuntu-Paket-apt-clone]
). Es sieht sich selbst als
helper script
, welches
das Klonen einer bestehenden Linuxinstallation vereinfacht.
Das Debian- bzw. Ubuntupaket beinhaltet das Python-Skript
apt-clone
sowie
eine passende, gleichnamige Python-Klasse für Python 3. Intern ruft es das
Werkzeug
dpkg-repack
[Debian-Paket-dpkg-repack]
auf, welches aus den
bereits installierten Dateien wieder Binärpakete erstellt, sofern das möglich
ist.
Es stellt beim Aufruf nach Möglichkeit auf dem Bestandssystem so viele
Informationen zur zu klonenden Installation zusammen, wie möglich sind. Das
umfasst:
die Paketquellen über die Datei
/etc/apt/sources.list
die Paketquellen über das komplette Verzeichnis
/etc/apt/sources.list.d
samt Inhalt
die hinterlegten Voreinstellungen über das Verzeichnis
/etc/apt/preferences.d/
den Debian-Schlüsselring mit den darin hinterlegten GPG-Schlüsseln für die
verwendeten Paketquellen unter
/etc/apt/trusted.gpg
und dem Verzeichnis
/etc/apt/trusted.gpg.d
den Paketstatus aus der Paketdatenbank
die zusätzlichen Pakete, d.h. Pakete, die nicht über die hinterlegten
Paketquellen installiert wurden. Dazu legt es im Archiv ein Verzeichnis
/var/lib/apt-clone/debs
an.
die Pakete, die nicht mehr von den Paketquellen heruntergeladen werden können.
Diese landen ebenfalls unter
/var/lib/apt-clone/debs
im Archiv. Dazu bedient
sich
apt-clone
des Werkzeugs
dpkg-repack
[Debian-Paket-dpkg-repack]
. Im
nachfolgenden Beispiel sehen Sie, dass das nicht immer sauber gelingt und auch
zu Paketen führen kann, die defekt sind (
broken
) — d.h. unvollständige
Abhängigkeiten besitzen — und nicht ohne weiteres wiedereinspielbar sind.
Bevor Sie
apt-clone clone
ausführen, legen Sie ein (lokales) Verzeichnis
fest, in dem das Archiv abgelegt werden soll. Im nachfolgenden Beispiel heißt
das lokale Verzeichnis schlicht und einfach
packagelist
. Ergebnis des
Aufrufs von
apt-clone
ist ein Archiv im Format
tar.gz
, welches Sie auf
dem Zielsystem wieder mit Hilfe von
apt-clone
einspielen (siehe
Abschnitt 34.2.3, „Mit
apt-clone
).
apt-clone
liest alle installierten Pakete auf dem Ursprungsrechner ein.
Möchten Sie ebenfalls alle zusätzlichen, manuell installierten Pakete mit
erfassen, geben Sie beim Aufruf den Schalter
--with-dpkg-repack
mit an.
apt-clone
sammelt Informationen.
# apt-clone clone --with-dpkg-repack packagelist/.
dpkg-deb: building package 'sge' in './sge_8.1.8_amd64.deb'.
dpkg-deb: building package 'libnccl2' in './libnccl2_2.3.5-2+cuda10.0_amd64.deb'.
dpkg-repack: warning: unknown information field 'Original-Maintainer' in input data in entry in dpkg's status file
dpkg-deb: building package 'lesstif2' in './lesstif2_0.95.2-1_amd64.deb'.
dpkg-repack: warning: unknown information field 'Original-Maintainer' in input data in entry in dpkg's status file
dpkg-deb: building package 'libcudnn7' in './libcudnn7_7.3.1.20-1+cuda10.0_amd64.deb'.
dpkg-deb: building package 'libcudnn7-dev' in './libcudnn7-dev_7.3.1.20-1+cuda10.0_amd64.deb'.
dpkg-deb: error: conffile '/opt/sge/util/install_modules/inst_template.conf' does not appear in package
dpkg-repack: Error running: dpkg-deb --build dpkg-repack.sge-common.3EAu1a .
dpkg-repack: Problems were encountered in processing.
dpkg-repack: The package may be broken.
not installable: sge, libnccl2, lesstif2, libdb5.1, libcudnn7, libcudnn7-dev, sge-common, cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48, libnccl-dev, libxp6, db5.1-util, libdb5.1++
version mismatch: libssl1.1, mdadm, python3-distutils, libitm1, libmagic-mgc, samba-libs, lxd-client, wget, postfix, cpp,
...
Das Archiv wird im vorgenannten Verzeichnis erzeugt. Der Name des Archivs
setzt sich aus
apt-clone-state-
und dem Hostnamen zusammen, also bspw.
apt-clone-state-kiste.tar.gz
für den Computer mit dem Hostnamen
kiste
Mit dem Schalter
info
analysieren Sie das soeben erzeugte Archiv.
Nachfolgendes Listing stammt von einem Archiv für ein Ubuntu 18
Bionic
welcher den Rechnernamen
kiste
trägt:
Informationen zum erzeugten
apt-clone
-Archiv anzeigen.
$ apt-clone info apt-clone-state-kiste.tar.gz
Hostname: kiste
Arch: amd64
Distro: bionic
Meta:
Installed: 1301 pkgs (751 automatic)
Date: Tue Oct 15 14:55:03 2019
Bitte beachten Sie bei der Verwendung von
apt-clone
noch die folgenden Punkte:
Das Zielsystem muss das gleiche Betriebssystem und die gleiche Veröffentlichung
wie das Originalsystem besitzen.
apt-clone
gleicht den Paketbestand des Originalsystems mit den Paketquellen
ab. Es merkt an, wenn installierte Pakete nicht mehr aktuell sind und im
Paketmirror bereits eine neuere Version vorliegt. Um das o.g. erzeugte Archiv
möglichst klein zu halten, aktualisieren Sie das Originalsystem vor dem Aufruf von
apt-clone
, sofern das möglich und auch praktikabel ist (siehe
Abschnitt 8.41, „Pakete aktualisieren“
) und dem Vorgehen nichts entgegenspricht.
Räumen Sie ihr Originalsystem vor dem Klonen auf. Entfernen Sie nicht mehr
benötigte Software und auch verwaiste Pakete, bspw. über das Kommando
apt-get autoremove
(siehe
Abschnitt 8.44, „Umgang mit Waisen“
).
apt-clone
benachrichtigt Sie, wenn Dateien vorliegen, die nicht im
Originalpaket enthalten sind, bspw. Konfigurationsdateien. Es ist so angelegt,
dass es bestehende, geänderte Dateien übernimmt und somit eine exakte Kopie des
Zustands des installierten Pakets erzeugt.
apt-clone
gibt am Ende eine Liste der Pakete aus, die es für nicht
installierbar hält.
Führen Sie
apt-clone
später auf dem Zielsystem aus, überschreibt es ihre
bereits bestehende Paketliste. Es löscht Pakete bzw. installiert fehlende nach
(siehe
Abschnitt 34.2.3, „Mit
apt-clone
).
34.2. Eine gesicherte Paketkonfiguration wieder einspielen
34.2.1. Mit
apt-get
Haben Sie eine Paketliste wie in
Abschnitt 34.1.1, „Mit
dpkg
erzeugt,
ist das Einspielen dieser Liste auf einem neuen System vergleichsweise einfach,
bspw. mit diesem Aufruf:
Einspielen der gespeicherten Paketliste mit Hilfe von
apt-get
# apt-get install < paketliste
...
Alternativ bietet sich eine Kombination aus
apt-get
und
xargs
beim
Wiedereinspielen der Pakete an:
Einspielen der gespeicherten Paketliste mit Hilfe von
xargs
und
apt-get
# xargs -a "paketliste" apt-get install -y
...
Bitte beachten Sie, dass in der Paketliste keine Konfigurationsdateien enthalten
sind. Beim Einspielen bzw. Installieren des jeweiligen Pakets werden die Dateien
daraus extrahiert oder neu erzeugt.
34.2.2. Mit
debconf-set-selections
Haben Sie zuvor eine Liste der Pakete samt deren Voreinstellung mit Hilfe des
Werkzeugs
debconf-get-selections
erstellt (siehe
Abschnitt 34.1.3, „Mit
debconf-get-selections
), ist
debconf-set-selections
das passende Gegenstück dazu. Sie finden es ebenfalls
im Paket
debconf-utils
[Debian-Paket-debconf-utils]
. Darüber spielen Sie
diese Liste auf dem Zielsystem wieder ein. Das Werkzeug bietet Ihnen diese
hilfreichen Schalter an:
-c
(Langform
--checkonly
Eingabedatei nur auf Fehler prüfen
-v
(Langform
--verbose
ausführliche Ausgabe beim Einspielen
Über den folgenden Aufruf spielen Sie die gespeicherte Konfiguration als
Benutzer mit administrativen Rechten wieder ein:
Einspielen der gespeicherten Konfiguration mit Hilfe von
debconf-set-selections
# debconf-set-selections paketliste
...
34.2.3. Mit
apt-clone
Haben Sie zuvor ein Archiv wie unter
Abschnitt 34.1.4, „Mit
apt-clone
beschrieben erstellt, lernen Sie nun, wie Sie das auf dem Zielsystem einspielen.
Als erstes übertragen Sie das Archiv auf ihr Zielsystem, bspw. per USB-Stick,
externe Festplatte oder mit Hilfe des Kommandos
scp
Ist das erfolgt, rufen Sie auf dem Zielsystem
apt-clone
als administrativer
Benutzer mit dem Schalter
restore
und dem Namen des zuvor erzeugten Archivs
auf. Daraufhin entpackt
apt-clone
das Archiv und spielt die darin enthaltenen
Pakete samt deren Konfiguration auf wieder dem Zielsystem ein.
Mit
apt-clone
erzeugte Paketkonfiguration wieder einspielen.
# apt-clone restore apt-clone-state-kiste.tar.gz
...
Bei der Ausführung greift
apt-clone
auf die Mechanismen der Paketverwaltung
zurück. Fehlende Pakete werden somit heruntergeladen und eingerichtet und die
Paketabhängigkeiten sauber aufgelöst. Das funktioniert reibungslos, wenn
Original- und Zielsystem die gleiche Version bzw. Veröffentlichung der
Distribution benutzen.
Das Werkzeug
apt-clone
bietet zwei Schalter an:
restore
packe das Archiv aus und spiele den Paketbestand auf dem
Zielsystem ein
restore-new-distro
packe das Archiv aus, spiele den Paketbestand
auf dem Zielsystem ein und aktualisiere diesen, sofern möglich
Letzteres kann genutzt werden, um das Einspielen und Aktualisieren eines
Systems in einem einzigen Aufruf durchzuführen.
34.3. Graphische Werkzeuge
34.3.1. Aptik
Seit einigen Jahren steht Aptik für Ubuntu über die Projektseite
[aptik]
bereit. Bislang ist es nur nur als PPA für Ubuntu verfügbar und enthält die
beiden Werkzeuge
aptik
und
aptik-gtk
. Letzteres ist ein graphisches
Werkzeug zum Backup und dem Wiedereinspielen von Paketlisten, dem Paketcache
und der installierten Software. Bislang kostenfrei, wurde inzwischen das
Vertriebsmodell geändert und die aktuelle Version ist kostenpflichtig.
34.3.2. Mintbackup
Für Linux Mint steht das Werkzeug
mintbackup
bereit
[mintbackup]
. Es ist
ein graphisches Werkzeug, welches Paketlisten sichern und wieder einspielen
kann.
Abbildung 34.2. Sicherungsdialog von Mintbackup
Kapitel 35. Automatisierte Installation
35.1. Einstieg
Ändert sich ihr Aufgabenbereich von der Betreuung von Einzelsystemen hin zu
ganzen Rechnerverbünden mit weitestgehend ähnlicher oder im Idealfall sogar
identischer Software, müssen Sie sich Gedanken darüber machen, wie Sie diese
Herde an Systemen in Schach halten — das heißt diese Softwarelandschaft auf
allen betreffenden Systemen installieren und pflegen (sofern es sich nicht
um Wegwerf-Systeme handelt). Beispielsweise zählen dazu Rechner für Klassen-
und Schulungsräume, Cloud-Infrastrukturen sowie Rechencluster. Behalten Sie
bei der Auswahl einer Lösung auch im Blick, dass es durchaus auch
verschiedene Rechnerklassen in ihrem Verbund geben kann. Beispiele dafür
sind Anwendungsserver (
application server
), Clients (
end user client
),
Mailserver und auch Fileserver (
storage system
).
Drei Begriffe, die häufig in diesem Zusammenhang genutzt werden, sind:
Hardware provisioning
und
OS provisioning
das vorherige Auswählen von
Softwarekomponenten für die im System verbaute Hardware und das darauf
genutzte Betriebssystem, bspw. der Linux-Kernel und das Paket für den
passenden Grafiktreiber samt Einstellungen.
Konfigurationsmanagement
das Verwalten und Pflegen der zuvor definierten
Rechnerklassen samt Liste der Softwarepakete und den Einstellungen zum
jeweiligen Paket.
Unabhängig davon, wieviele Einzelrechner oder Rechenknoten letztendlich im
Verbund zu berücksichtigen sind, gibt es für jede Rechnerklasse stets entweder
eine bestehende Referenzinstallation (genannt
Master
) oder zumindest eine
hinterlegte Konfiguration, auf deren Basis sich die weiteren Rechner identisch
zur Referenz aufsetzen lassen. Dieses Kapitel beleuchtet anhand verschiedener
Vorgehensweisen, wie Sie diesen Schritt in der Praxis umsetzen. Übliche
Varianten sind:
Klonen des Masters durch Erstellen einer Eins-zu-eins-Kopie (auch
Image
genannt) ausgewählter Inhalte und eine nachträgliche, mimimale Detailanpassung,
bspw. der Netzwerkkonfiguration. Aktualisierungen erfolgen durch Beziehen und
Überspielen des Images, wobei die Detailanpassung, zusätzliche Software und
auch persönliche Daten auf dem Zielsystem nicht in jedem Fall verändert werden.
Beispiele aus der Praxis sind Netzwerkrouter für WLAN/DSL sowie Smartphones
und Tablets.
Die Referenz bildet eine Paketliste samt Konfiguration der einzelnen Pakete.
Debian kennt das unter dem Begriff
Preseeding
und beschreibt das Beantworten
der Fragen des Debian Installers im Vorfeld. Paketliste und Konfiguration
liegen entweder a) in einer Datenbank oder b) werden direkt aus dem Master
vorher ausgelesen. In der Vergangenheit wurden dafür bereits verschiedene
Lösungen entworfen und genutzt. Zu den Vertretern für a) gehören bspw.
Jumpstart (Sun OS)
[jumpstart]
, Kickstart
[kickstart-webseite]
und Cobbler
[cobbler-webseite]
, FAI
[FAI-Projekt]
, Crowbar
[crowbar]
, Foreman
[foreman]
OpenQRM
[openqrm]
und Spacewalk
[spacewalk]
. Für b) stehen Ihnen die
Werkzeuge
dpkg
debconf-get-selections
debconf-set-selections
und
apt-clone
zur Verfügung. Darauf gehen wir unter
Mit Debian-Werkzeugen
in Abschnitt
Abschnitt 35.3, „Mit Debian-Werkzeugen“
ausführlich ein.
35.2. Kriterien für die Auswahl einer geeigneten Lösung
Folgende Punkte halten wir bei der Auswahl einer geeigneten Lösung für
hilfreich. Diese Punkte haben wir dem Debian-Wiki entnommen (siehe dazu
[Debian-Wiki-Automated-Installation]
):
unbeaufsichtigtes Ablaufen
Installationen sollten ohne oder mit möglichst
wenig menschlicher Interaktion ablaufen
parallele Installation
mehrere Systeme werden gleichzeitig installiert
Skalierbarkeit
neue Klienten und Veröffentlichungen von Betriebssystemn
können einfach integriert werden
Flexibilität
eine Konfiguration sollte möglich sein, die viele Eigenschaften
erlaubt
Anpassbarkeit
es sollte möglich sein, das System nach Bedarf an spezifische
Umgebungen und Gegebenheiten anzupassen
Bitte passen Sie diese Liste an ihre jeweiligen Gegebenheiten an.
35.3. Mit Debian-Werkzeugen
Rückgriff auf Beschreibung aus
Paketkonfiguration sichern
in
Kapitel 34,
Paketkonfiguration sichern
Preseeding, siehe
Werkzeuge
dpkg
debconf-get-selections
apt-clone
35.4. Komplette Lösungen
35.4.1. Ansible
Debian-Paket:
35.4.2. Autoinstall
35.4.3. Chef
35.4.4. Cloud-init
35.4.5. Cobbler
35.4.6. FAI
Fully-automatic installation (FAI)
[FAI-Projekt]
Eintrag im Debian Wiki
[Debian-Wiki-FAI]
Beitrag im Linux Magazin 01/09
[FAI-Bornemann-Karg]
FAI 5.2 bringt Cloud-Support
[FAI-Cloud-Support]
35.4.7. Kickstart
Textdatei, welche die Systemkonfiguration und das Setup beschreibt
Disklayout und Dateisysteme
Bootloader
Netzwerkkonfiguration
Benutzer und Zugänge
Softwareeinrichtung
nicht für Debian verfügbar
verfügbar für Ubuntu (siehe
graphisches Werkzeug im Paket
system-config-kickstart
[Ubuntu-Paket-system-config-kickstart]
35.5. Erfahrungen aus der Praxis
ToDo
Kapitel 36. Automatisierte Aktualisierung
36.1. Ziel
eine ganze Menge von identisch aufgesetzten Rechnern aktualisieren,
bspw. einen Schulungsraum oder Cluster
Basis: Rechner mit identischer Hardware
Unterschied zur Grundinstallation:
Grundinstallation ist bereits erfolgt
nur bestehende Software auf den aktuellen Stand bringen ("aktualisieren")
Durchführung:
Login auf allen Rechnern und Ausführung eines Kommandos gleichzeitig
Werkzeuge
apt-dater
multi-ssh (
Parallel-SSH (
36.2.
apt-dater
Werkzeug/Paket:
apt-dater
[Debian-Paket-apt-dater]
terminal-based remote package update manager
Projektseite
[apt-dater-Projektseite]
Kurzbeschreibung: "apt-dater provides an ncurses frontend for
managing package updates on a large number of remote hosts using SSH. It
supports Debian-based managed hosts as well as rug (e.g. openSUSE) and
yum (e.g. CentOS) based systems."
benötigt SSH und Screen
Kapitel 37. Qualitätskontrolle
Ihre Debian-Installation besteht aus recht vielen Paketen, an denen
etliche Entwickler beteiligt sind. Wie in
Abschnitt 2.14, „Verbreitungsgrad von Paketen“
schon deutlich wurde, kümmert sich das
Debian Quality Assurance Team
(kurz
QA Team
[DebianQA]
darum, dass
die Qualität der Debian-Pakete gewährleistet ist. Dazu gehört, dass auch
alle vorab festgelegten Regeln eingehalten werden. Um das automatisiert
zu prüfen, kommen dafür eine ganze Reihe von Programmen zum Einsatz.
Nachfolgend stellen wir Ihnen mehrere dieser Werkzeuge vor, mit denen
Sie eine solche Inspektion selbst vornehmen und nachvollziehen können.
Für noch nicht installierte, einzelne Pakete besprechen wir
lintian
bereits installierte Pakete verifizieren wir stattdessen mittels
adequate
. Für die Recherche in den Fehlerberichten (engl.
bug
reports
) zeigen wir Ihnen den Umgang mit
apt-listbugs
apt-listchanges
popbugs
rc-alert
und
how-can-i-help
. Im Rahmen
der Betreuung älterer Installationen ist das Programm
debian-security-support
von großem Nutzen.
Möchten Sie den gesamten Installationsvorgang eines Pakets testen,
steht Ihnen die
Package Installation, UPgrading And Removal Testing
Suite (Piuparts)
[Piuparts]
aus dem gleichnamigen Debianpaket
[Debian-Paket-piuparts]
zur Seite. Die drei Werkzeuge
piuparts
lintian
und
adequate
ergänzen einander und helfen Ihnen insbesondere
bei der aktiven Verifikation von Paketen aus dem eigenen Paketlabor,
bevor Sie diese in die freie Wildbahn entlassen.
37.1. Nicht installierte Pakete mit
lintian
prüfen
37.1.1.
lintian
verstehen
Das Werkzeug
lintian
[Lintian]
steht in dem gleichnamigen Paket
[Debian-Paket-lintian]
bereit. Der Name leitet sich von engl.
lint
für Fussel und dem
ian
aus
Debian
ab. Es analysiert die
verschiedenen Bestandteile eines einzelnen Debianpakets hinsichtlich
typischer Fehler und insbesondere auch bzgl. häufig vorkommender
Verstöße gegen die Debian-Richtlinien (
Debian Policy Violations
).
Die Idee hinter von
lintian
war auch Vorbild für
rpmlint
[Debian-Paket-rpmlint]
auch . Es leistet das gleiche für RPM-Pakete,
ist aber in Python anstatt Perl geschrieben. Es war auch eine Weile in
Debian nicht gepflegt und war deswegen weder Bestandteil von Debian 10
Buster
noch von Debian 11
Bullseye
. In Debian 12
Bookworm
ist es
wieder mit dabei.
Als Systemadministrator hilft Ihnen
lintian
primär dabei, sowohl
eigene als auch die Pakete von Drittparteien aus nicht-Debian-eigenen
Paketquellen auf grundlegende Probleme hin zu testen. Deswegen gehen wir
an dieser Stelle vor allem auf die Nutzung von
lintian
über die
Kommandozeile ein.
Bei Debian wird
lintian
primär an drei verschiedenen Stellen genutzt:
Testen frisch gebauter Pakete durch den Entwickler,
allgemeine Qualitätskontrolle des Paketbestandes (siehe
Abbildung 37.1, „Ausgabe der Paketvalidierung mittels
lintian
zum Paket
mp4h
) und
automatisierte Ablehnung von frisch hochgeladenen Paketen bei groben
Fehlern
[34]
Dazu führt
lintian
eine ganze Reihe vorbereiteter Tests mit dem Paket
durch. Das Ergebnis umfasst Fehlermeldungen mit unterschiedlichem
Schweregrad, deren Kategorien wir für Sie in
Tabelle 37.1, „Klassifikation der
lintian
-Fehlermeldungen“
zusammengestellt haben.
Tabelle 37.1. Klassifikation der
lintian
-Fehlermeldungen
Parameter
Beschreibung
Fehler (
error
Warnungen (
warning
Informationelle Hinweise (
informational tags
Pingelige Markierung (
pedantic tags
Überschriebene Markierungen (
overridden tags
Experimentelle, ggf. fehleranfällige Markierungen (
experimental tags
Kein Fehler, Bemerkung (
note
37.1.2.
lintian
verwenden
lintian
arbeitet auf einzelnen, vorbereiteten Paketdateien, nicht
jedoch auf bereits installierten Paketen. Für letzteres eignet sich
hingegen das Paket
adequate
, welches wir in
Abschnitt 37.2, „Bereits installierte Pakete mit
adequate
prüfen“
genauer besprechen.
Das Programm verarbeitet sowohl Dateien für Quellpakete (
.dsc
), als
auch für Binärpakete (
.deb
). Übergeben Sie
lintian
auch die während
des Paketbaus erstellte Datei
.changes
, in welcher alle Dateien des
jeweiligen Quell- und Binärpakets aufgelistet sind, validiert das
Programm nacheinander beide Entwicklungsstufen in einem Rutsch.
Im nun folgenden Beispiel überprüft
lintian
das Paket
mp4h
. Als
Schalter kommen zum Einsatz:
-v
(Langform
--verbose
für eine ausführlichere Ausgabe (
verbose
).
--color auto
für eine farbige Kennzeichnung des Schweregrads des gefundenen Fehlers
bei einer Ausgabe im Terminal. Zulässig sind ebenso die Werte
never
(keine Hervorhebung),
always
(stets mit Hervorhebung) und
html
(Hervorhebung bei der Ausgabe als Webseite).
-I
(Langform
--display-info
Auflistung der informationellen Markierungen (
info tags
). So bleiben
auch Schreibfehler nicht unentdeckt.
-E
(Langform
--display-experimental
Auflistung der experimentellen Markierungen.
--pedantic
Legt eine noch genauere Überprüfung des Pakets fest.
Weitere Schalter und Parameter sind in der Manpage zu
lintian
ausführlich erklärt.
Aufruf von
lintian
zum Finden typischer Probleme im Paket
mp4h
$ lintian -v --color auto -I -E --pedantic mp4h_1.3.1-9_amd64.changes
N: Using profile pkg-perl/main.
N: Setting up lab in /tmp/temp-lintian-lab-1SvMHn5dUB ...
N: Unpacking packages in group mp4h/1.3.1-9
N: ----
N: Processing changes file mp4h (version 1.3.1-9, arch source amd64) ...
N: ----
N: Processing source package mp4h (version 1.3.1-9, arch source) ...
P: mp4h source: no-dep5-copyright
W: mp4h source: ancient-standards-version 3.9.4 (current is 3.9.6)
P: mp4h source: debian-watch-may-check-gpg-signature
N: ----
N: Processing binary package mp4h (version 1.3.1-9, arch amd64) ...
P: mp4h: no-homepage-field
W: mp4h: postinst-has-useless-call-to-ldconfig
W: mp4h: postrm-has-useless-call-to-ldconfig
Die Ausgabe auf der Kommandozeile und in
Abbildung 37.1, „Ausgabe der Paketvalidierung mittels
lintian
zum Paket
mp4h
sind aus mehreren Gründen nicht
deckungsgleich. Es wurde zwar jeweils die gleiche Paketversion
überprüft, aber dabei kamen unterschiedliche
lintian
-Versionen zum
Einsatz. Auf der Projektseite wird meist die neueste
lintian
-Variante
aus Debian
unstable
oder
testing
genutzt, die sich z.B. auch anhand
der durchgeführten Tests unterscheidet, welche in das Paket aus Debian
stable
eingeflossen sind.
Abbildung 37.1. Ausgabe der Paketvalidierung mittels
lintian
zum Paket
mp4h
Hilfreich ist auch die Option
-i
(Langform
--info
). Damit erhalten
Sie bei jedem ersten Vorkommen einer Markierung noch zusätzliche
Erklärungen und ersehen daraus, was die jeweilige Markierung bedeutet.
Den gleichen Effekt erhalten Sie, wenn Sie die Ausgabe von
lintian
(ohne den Schalter
-v
) über eine Pipe an das Kommando
lintian-info
weiterleiten.
lintian-info
ist ebenso Bestandteil des Pakets
lintian
. Nachfolgend sehen Sie einen Ausschnitt zur Ausgabe dieses
Programmaufrufs, bei dem das Paket
mp4h_1.3.1-9_amd64.deb
überprüft
wird.
Erklärung zu den von
lintian
gefundenen Problemen im Binärpaket
mp4h
(Ausschnitt).
$ lintian -I -E --pedantic mp4h_1.3.1-9_amd64.deb | lintian-info
P: mp4h: no-homepage-field
N:
N: This non-native package lacks a Homepage field. If the package has an
N: upstream home page that contains useful information or resources for
N: the end user, consider adding a Homepage control field to
N: debian/control.
N:
N: Refer to Debian Policy Manual section 5.6.23 (Homepage) for details.
N:
N: Severity: pedantic, Certainty: possible
N:
N: Check: fields, Type: binary, udeb, source
N:
W: mp4h: postinst-has-useless-call-to-ldconfig
N:
N: The postinst script calls ldconfig even though no shared libraries are
N: installed in a directory controlled by the dynamic library loader.
N:
N: Note this may be triggered by a bug in debhelper, that causes it to
N: auto-generate an ldconfig snippet for packages that does not need it.
N:
N: Refer to Debian Policy Manual section 8.1.1 (ldconfig) and
N: http://bugs.debian.org/204975 for details.
N:
N: Severity: minor, Certainty: certain
N:
N: Check: shared-libs, Type: binary, udeb
[...]
37.2. Bereits installierte Pakete mit
adequate
prüfen
Im Gegensatz zu
lintian
(siehe
Abschnitt 37.1, „Nicht installierte Pakete mit
lintian
prüfen“
) validieren Sie mit
adequate
[Debian-Paket-adequate]
die Pakete, die bereits auf ihrem
System installiert sind.
adequate
steht Ihnen ab Debian 8
Jessie
bereit.
Zur Paketanalyse versteht es die folgenden Schalter (Auswahl):
Paketname
Überprüfung des von Ihnen angegebenen Debianpakets.
--all
Überprüfung aller Pakete, die auf ihrem Debian-System derzeit
installiert sind.
--tags
Tag1
Tag2
Beschränkung der Ausgabe auf die angegebenen Fehlerwerte zu
Tag1
und
Tag2
. Alle angegebenen Tags trennen Sie durch Komma in einer Liste.
--tags
-Tag1
Tag2
Beschränkung der Ausgabe auf die angegebenen Fehlerwerte
ohne
Tag1
und
Tag2
. Alle angegebenen Tags trennen Sie durch Komma in einer
Liste.
Als Tags sind zulässig:
bin-or-sbin-binary-requires-usr-lib-library
broken-binfmt-detector
broken-binfmt-interpreter
broken-symlink
incompatible-licenses
library-not-found
missing-alternative
missing-copyright-file
missing-symbol-version-information
obsolete-conffile
program-name-collision
py-file-not-bytecompiled
pyshared-file-not-bytecompiled
symbol-size-mismatch
undefined-symbol
Weitere Schalter und die vollständige Liste der Tags entnehmen Sie bitte
der Manpage zum Programm.
Im ersten Beispiel sehen Sie das Ergebnis der Validierung des Pakets
pdfstudio
, welches aus einer nicht-Debian-eigenen Paketquelle stammt.
In diesem Fall hat
adequate
entdeckt, dass die Informationen zum
Copyright des Werkzeugs fehlen.
Überprüfung des Pakets
pdfstudio
mit Fehlermeldung.
$ adequate pdfstudio
pdfstudio: missing-copyright-file /usr/share/doc/pdfstudio/copyright
Die Validierung ihres gesamten Systems erfolgt mit Hilfe des Schalters
--all
und wird durchaus etwas mehr Zeit in Anspruch nehmen.
Nachfolgend sehen Sie einen Ausschnitt des Ergebnisses für ein
Desktopsystem auf der Basis von Debian 12
Bookworm
, welches sich bereits
über eine längere Zeit in Verwendung befindet.
Überprüfung des gesamten Paketbestands (Ausschnitt).
$ adequate --all
libclang-common-15-dev: broken-symlink /usr/lib/clang/15/lib -> ../../llvm-15/lib/clang/15.0.7/lib
libclang-common-15-dev: broken-symlink /usr/lib/clang/15.0.7/lib -> ../../llvm-15/lib/clang/15.0.7/lib
unknown-horizons: broken-symlink /usr/share/unknown-horizons/content/fonts/Unifont.ttf -> ../../../fonts/truetype/unifont/unifont.ttf
moka-icon-theme: broken-symlink /usr/share/icons/Moka/16x16/apps/org.gnome.Builder.png -> builder.png
moka-icon-theme: broken-symlink /usr/share/icons/Moka/16x16/apps/org.gnome.Maps.png -> gnome-maps.png
...
37.3. Bugreports anzeigen
37.3.1. Hintergrundwissen
Allgemein gesprochen, ist ein Bugreport ein
Fehlerbericht
zu einem
aufgetretenen bzw. von Ihnen bemerkten Fehler einer Soft- oder Hardware.
Bei Debian ist der Bericht und dessen Einreichung vom Ablauf und der
Form her standardisiert, damit dieser entdeckte Fehler möglichst
automatisiert über das 'Debian Bug Tracking System (Debian BTS)
[Debian-Bug-Tracking-System]
verarbeitet und von allen Benutzern
nachverfolgt werden kann. Somit ordnen Sie einen Fehlerbericht leichter
einem bestimmten Paket oder einer spezifischen Systemkonstellation zu.
Generelles Ziel ist dabei, die bereits bestehenden Softwarepakete zu
verbessern und auch noch nicht als stabil gekennzeichnete Pakete auf
Fehler hin zu überprüfen und zu bereinigen. Dazu zählen auch Verstöße
gegen (Debian)Richtlinien und Qualitätsvorgaben. Vor der Bereitstellung
(Veröffentlichung) eines Pakets wird dann automatisch geprüft, ob das
Paket den Anforderungen (Richtlinien) entspricht.
Weiterhin zählt dazu auch eine Prüfung auf kritische Fehler vor der
Installation eines Pakets.
apt-get
wertet dazu das Ergebnis von
apt-listbugs
(siehe
Abschnitt 37.3.2, „Bugreports mit
apt-listbugs
lesen“
) aus und warnt Sie,
falls für das Paket kritische Fehler im Debian BTS hinterlegt sind. Die
Entscheidung liegt dann bei Ihnen, ob Sie das Paket wirklich
installieren möchten oder lieber nicht.
An der
Recherche nach Fehlern
darf sich jeder Debian-Benutzer
beteiligen. Dafür benutzen Sie das Debian BTS, um darin einerseits nach
bestehenden Softwarefehlern und deren Lösungen zu recherchieren und
andererseits weitere Fehler zu berichten, die Ihnen aufgefallen sind.
Für ersteres muss das ganze reproduzierbar sein und es darf sich nicht um
einen Bedienfehler handeln.
Wie bereits oben benannt, finden Sie bereits bekannte und eingetragene
Fehler in der Fehlerdatenbank des Debian BTS. Über das webbasierte
System suchen Sie anhand des Paketnamens, der Veröffentlichung, des
Schweregrads, der Betreffzeile des Fehlerberichts, der Fehlernummer, dem
Namen des Einreichenden, dem Status der Bearbeitung des Fehlers oder dem
Bearbeiter — also demjenigen, der sich um die Bereinigung des Fehlers
kümmert. Auf der Kommandozeile stehen Ihnen die Werkzeuge
lintian
(siehe
Abschnitt 37.1, „Nicht installierte Pakete mit
lintian
prüfen“
),
apt-listbugs
(siehe
Abschnitt 37.3.2, „Bugreports mit
apt-listbugs
lesen“
) und
popbugs
(siehe
Abschnitt 37.3.4, „Release-kritische Fehler mit
popbugs
finden“
) zur Verfügung.
Finden Sie einen Fehler bezüglich eines Debianpakets, schreiben Sie am
besten einen Fehlerbericht (
bug report
). Eine ausführliche
Beschreibung dessen, auf welche Punkte Sie bei dem Fehlerbericht
wertlegen sollten, finden Sie auf der Webseite des Debian BTS. Bei der
Zusammenstellung des Fehlerberichts hilft Ihnen das Werkzeug
reportbug
aus dem gleichnamigen Debianpaket
[Debian-Paket-reportbug]
37.3.2. Bugreports mit
apt-listbugs
lesen
Die generelle Idee zu dem Werkzeug
apt-listbugs
aus dem gleichnamigen
Debianpaket
[Debian-Paket-apt-listbugs]
ist, Fehlerberichte aus dem
Debian BTS abzurufen. Wie wir bereits zuvor in
Abschnitt 37.3.1, „Hintergrundwissen“
angerissen haben, ist das Werkzeug in
den Ablauf zur Aktualisierung und Installation eines Pakets mit APT
integriert. Es prüft in diesem Zusammenhang automatisch mit, ob im
Debian BTS Fehler für das betreffende Paket vorliegen und diese bereits
repariert wurden.
Darüberhinaus können Sie das Werkzeug auch direkt über die Kommandozeile
aufrufen und sich eine Liste der registrierten Fehler ausgeben lassen.
apt-listbugs
akzeptiert dafür die folgenden Schalter (Auswahl):
-s
Schweregrad
(Langform
--severity
Fehler je nach Schweregrad eingrenzen. Möglich sind die Werte
critical
(kritisch),
grave
(sehr schwerwiegend),
serious
(schwerwiegend),
important
(wichtig),
normal
(normal),
minor
(weniger relevant),
wishlist
(Wunschliste) und
all
(alle
Schweregrade). Mehrere Werte trennen Sie mittels Komma voneinander. Der
Standardwert ist die Kombination der drei erstgenannten Werte
critical,grave,serious
-T
Schlüsselworte
(Langform
--tags
Filtere die Fehlermeldungen anhand des gegebenen Schlüsselworts. Mehrere
Werte trennen Sie mittels Komma voneinander.
-S
Status
(Langform
--stats
Filtere und sortiere die Fehlerberichte anhand des aktuellen Status.
Mögliche Statuswerte sind
pending
(offener Fehler),
forwarded
(der Fehlerbericht ist als weitergeleitet markiert),
pending-fixed
(der Fehlerbericht ist als
gelöst
markiert, aber noch ohne
Bestätigung),
fixed
(der Fehlerbericht ist markiert als
gelöst
),
absent
(in der angefragten Veröffentlichung bzw. Architektur existiert
der Fehler nicht) und
done
(für die angefragte Veröffentlichung bzw.
Architektur ist der Fehler gelöst).
-B
Fehlernummer
(Langform
--bugs
Filtere die Fehlerberichte anhand der gegebenen Nummer des
Fehlerberichts und zeige nur die betreffenden an. Mehrere Werte trennen
Sie mittels Komma voneinander.
-D
(Langform
--show-downgrade
Zeige nur die Fehlerberichte für Pakete an, für die ein Downgrade
erfolgt ist (siehe auch
Abschnitt 8.42, „Pakete downgraden“
).
-P
Priorität
(Langform
--pin-priority
Benutze die Pin-Priorität als Filterkriterium (siehe
Kapitel 20,
Veröffentlichungen mischen
für weitere Informationen zur
Pin-Priorität).
Als weiteren Wert zum Aufruf benötigt
apt-listbugs
noch ein Kommando.
Zur Auswahl stehen
apt
list
und
rss
. Bei ersterem liest
apt-listbugs
von
stdin
, bei
list
erwartet es die Paketnamen als
Argumente zum Aufruf und bei letzterem im RSS-Format. Den Abschluss des
Aufrufs bildet der Paketname, an den Sie zudem eine spezifische
Paketversion anfügen können. Als Trennzeichen fungiert hier der
Schrägstrich, sodass bspw. die Spezifikation für das Paket
apt-listbugs
in der Version 0.1.5
apt-listbugs/0.1.5
lautet.
Berichtete Fehler zum Paket
coreutils
auflisten.
$ apt-listbugs -s critical,grave,serious list coreutils
Laden der Fehlerberichte ... Erledigt
»Found/Fixed«-Informationen werden ausgewertet ... Erledigt
grave Fehler von coreutils (-> )
#743955 - coreutils: corrupted files on heavily fragmented ext3 and ext4 partitions
Zusammenfassung:
coreutils(1 Fehler)
37.3.3. Ergänzende Bugreports mit
apt-listchanges
herausfiltern
Während Ihnen
apt-listbugs
alle Bugreports anzeigt, vergleicht
apt-listchanges
aus dem gleichnamigen Paket
[Debian-Paket-apt-listchanges]
die Änderungen zwischen dem lokal
installierten Paket und der neuen, verfügbaren Version auf dem
Spiegelserver. Dazu wertet es die beiden Dateien
NEWS.Debian
und
changelog.gz
bzw.
changelog.Debian.gz
aus.
Die Ausgabe von
apt-listchanges
steuern Sie dabei über mehrere
Schalter (Auswahl):
-a
(Langform
--all
Ausgabe aller Änderungen des Pakets.
-f
Ausgabegerät
(Langform
--frontend
Legt fest, an welches Ausgabegerät bzw. welche Ausgabeform
apt-listchanges
benutzt. Möglich sind derzeit
pager
browser
xterm-pager
xterm-browser
(für die Darstellung in einem
Textbrowser in ihrem Terminal),
text
mail
(Versand als Email),
gtk
(graphische Darstellung) und
none
(keine Ausgabe).
--reverse
Ausgabe der Änderungen in zeitlich umgekehrter Reihenfolge.
--since=
version
Ausgabe aller Änderungen ab der angegebenen Version des Pakets.
-v
(Langform
--verbose
Ausgabe in ausführlicher Form.
--which=
(news|changelogs|both)
::
Wählt aus, welche Änderungen angezeigt werden.
news
schränkt auf
NEWS.Debian ein,
changelogs
hingegen auf changelog.Debian.
both
wählt beide Informationsquellen aus.
Im nachfolgenden Beispiel sehen Sie den Aufruf für das Paket
ruby-json
, wobei die Ausgabe als einfacher Text im Terminal erfolgt.
Aufrufbeispiel für
apt-listchanges
# 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 Tue, 12 Feb 2013 23:14:48 +0100
...
37.3.4. Release-kritische Fehler mit
popbugs
finden
Mit dem Werkzeug
popbugs
aus dem Paket
debian-goodies
[Debian-Paket-debian-goodies]
finden Sie release-kritische Fehler
(„release critical bugs“, abgekürzt mit
RC bugs
) in Paketen, die Sie
hauptsächlich einsetzen. Dazu bezieht
popbugs
zunächst die Liste der
RC bugs
vom Debian BTS von der URL
und gleicht
danach die gefundenen Fehler mit den Paketen ab, die auf ihrem System
installiert sind. Beachten Sie daher, dass das Programm darauf aufbaut
und für brauchbare Ergebnisse eine Internetverbindung benötigt. Die
Grundlage des nachfolgenden, lokalen Vergleichs ist der allgemeine
Installationsgrad der Debianpakete und die gesammelten Daten des
popularity contest
Abbildung 37.2, „Auflistung der bekannten, kritischen Fehler nach der Analyse von
popbugs
zeigt das Ergebnis der Recherche nach dem Aufruf von
popbugs
auf einem Debian 7
Wheezy
in einem Browserfenster an (ohne
Angabe von zusätzlichen Parametern etc.). Rufen Sie das Programm
stattdessen über den Schalter
-o
gefolgt von einem Dateinamen zur
Ausgabe auf, speichert
popbugs
die Auflistung als Datei unter dem
angegebenen Pfad. Die Alternativschreibweise ist
--output=Ausgabedatei
Aufruf von
popbugs
und Ausgabe in die lokale Datei
fehlerliste.html
$ popbugs -ofehlerliste.html
Sie erhalten jeweils eine direkte Verbindung zur Debian BTS mit einer
paketweisen Auflistung. Weitere Informationen bekommen Sie, indem Sie
in der Ausgabe auf einen mit einem Link hinterlegten Paketnamen klicken.
Abbildung 37.2. Auflistung der bekannten, kritischen Fehler nach der Analyse von
popbugs
37.3.5. Release-kritische Fehler mit
rc-alert
finden
Das Werkzeug
rc-alert
aus dem Paket
devscripts
[Debian-Paket-devscripts]
leitet seinen Namen aus den beiden
Anfangsbuchstaben von
release critical
(dt. veröffentlichungskritisch)
und dem Begriff
alert
(dt. Alarm, Warnung oder Meldung) ab. Inhaltlich
folgt es dabei dem gleichen Ziel wie
popbugs
(siehe
Abschnitt 37.3.4, „Release-kritische Fehler mit
popbugs
finden“
) und sucht dabei ebenfalls nach
RC bugs
vom
Debian BTS über die URL
. Für brauchbare
Ergebnisse benötigt es ebenso eine Internetverbindung.
rc-alert
hebt sich von
popbugs
mit einigen Besonderheiten ab. Dazu
gehört u.a. eine distributionsspezifische Suche und die Filterung der
Paketliste anhand von Debtags (siehe
Kapitel 13,
Erweiterte Paketklassifikation mit Debtags
).
Nachfolgend sehen Sie die Arbeitsweise von
rc-alert
anhand des Pakets
apt
. Das Ergebnis umfasst neben der Nummer des Bugreports (
Bug
dessen Titel (
Title
), die hinterlegten Flags (
Flags
) und die
Veröffentlichung, für die der Fehler relevant ist (
Dists
). Der erste
Bug gilt nur für Debian
stable
, während der zweite Bug für zukünftige
Veröffentlichungen auf der Basis von Debian
testing
und
unstable
wichtig ist. Als Kennzeichnung für eine Veröffentlichung sind für Debian
oldstable
(O),
stable
(S),
testing
(T) und
unstable
(U) in
Verwendung.
Einfache Suche nach
RC bugs
für das Paket
apt
mit Hilfe von
rc-alert
(Ausschnitt).
$ rc-alert apt
Package: apt
Bug: 558784
Title: apt: re-adds removed keys
Flags: [ I] (lenny-ignore or squeeze-ignore)
Dists: [S] (stable)

...

Package: apt
Bug: 776910
Title: apt: upgrade from wheezy to jessie breaks in the middle
Flags: [ ] (none)
Dists: [TU] (testing, unstable)

Möchten Sie die
Recherche auf eine bestimmte Veröffentlichung
einschränken
, helfen Ihnen dabei die beiden Schalter
-d
(Langform
--include-dists
) und
-o
(Langform
--include-dist-op
). Mit ersterem
spezifizieren Sie über die o.g. Kennzeichnung die von Ihnen gewünschten
Veröffentlichungen, so bspw.
--include-dists TUE
für Debian
testing
unstable
und
experimental
. Damit erhalten Sie zunächst alle Fehler,
die entweder in den Veröffentlchungen Debian
testing
unstable
oder
experimental
auftreten.
Suche über die Angabe der Veröffentlichung (Variante 1).
# rc-alert --include-dists TUE apt
Package: apt
Bug: 771428
Title: apt tries to configure dbus before libdbus-1-3, fails to upgrade
Flags: [ ] (none)
Dists: [TUE] (testing, unstable, experimental)

Package: apt
Bug: 774924
Title: apt: Jessie version cannot find upgrade path (but Wheezy version can)
Flags: [ + ] (patch)
Dists: [E] (experimental)

Package: apt
Bug: 776910
Title: apt: upgrade from wheezy to jessie breaks in the middle
Flags: [ ] (none)
Dists: [TU] (testing, unstable)
Mit dem zweiten Schalter legen Sie mittels
--include-dist-op and
fest,
dass die Angabe der Veröffentlichung von
rc-bugs
als logisches
und
zu
interpretieren ist. Damit begrenzen Sie die Ausgabe nur auf die
angegebenen Veröffentlichungen.
Suche über die Angabe der Veröffentlichung (Variante 2).
# rc-alert --include-dists TUE --include-dist-op and apt
Package: apt
Bug: 771428
Title: apt tries to configure dbus before libdbus-1-3, fails to upgrade
Flags: [ ] (none)
Dists: [TUE] (testing, unstable, experimental)
Wie eingangs angesprochen, gestattet Ihnen
rc-alert
auch eine
Suche
anhand von Debtags
. Dazu bietet es den Schalter
--debtags
an. Für die
Recherche nach allen Paketen, die Programmcode in der Programmiersprache
Perl enthalten und als Plugin gekennzeichnet sind, gelingt Ihnen der
folgende Aufruf:
Recherche zu Bugreports anhand der Debtags.
# rc-alert --debtags implemented-in::perl,role::plugin
Package: dictionaries-common
Bug: 751367
Title: unupgradeable: "shared/packages-wordlist doesn't exist"
Flags: [ ] (none)
Dists: [S] (stable)
Debtags: implemented-in::lisp, implemented-in::perl, role::plugin, role::program, scope::utility, works-with::dictionary
Für eine weitere Recherche mit ausführlicher Anleitung zu
rc-alert
empfehlen wir Ihnen den Beitrag von Gambaru
[gambaru-rc-alert]
37.3.6. Welche der von mir genutzten Pakete benötigen Hilfe?
Das Programm
how-can-i-help
aus dem gleichnamigen Paket
[Debian-Paket-how-can-i-help]
geht genau dieser Frage nach und listet
Ihnen auf, welche konkrete Art der Unterstützung ein Paket benötigt. Es
ergänzt den Eintrag von
how-can-i-help
im Debian Wiki
[Debian-Wiki-how-can-i-help]
um die dazu passende Funktionalität auf
der Kommandozeile. Es ist seit Debian 8
Jessie
verfügbar.
Als Datenquelle für seine Aussagen nutzt es die Ultimate Debian Database
(UDD)
[Ultimate-Debian-Database]
. Dabei handelt es sich um eine
PostgreSQL-Datenbank, die
how-can-i-help
über eine webbasierte
Schnittstelle abfragt. Beachten Sie daher, dass das Programm für
brauchbare Ergebnisse eine Internetverbindung voraussetzt.
how-can-i-help
integriert sich zudem über einen APT-Hook in APT und
wird somit nach jeder Paketinstallation erneut ausgeführt. In Folge
sehen Sie damit stets nur neu hinzugekommene Pakete, Fehler und den
Bedarf an Hilfe. Ebenso können Sie das Programm über die Kommandozeile
mit etlichen Schaltern aufrufen (Auswahl).
-a
(Langform
--all
Möglichkeiten für alle Pakete anzeigen, nicht nur für die installierten Pakete.
-o
(Langform
--old
Zeige nicht nur die neu hinzugekommenen Möglichkeiten oder die
Möglichkeiten zu den zuletzt installierten Paketen, sondern auch die
Möglichkeiten, welche bereits in der Vergangenheit aufgelistet wurden.
-q
(Langform
--quiet
Eine kompaktere Darstellung ohne Kopf- und Fußzeilen.
In Benutzung sind zudem eine Reihe von Abkürzungen für die konkrete
Hilfe, die sich auf den Zustand eines Pakets beziehen. Diese
Abkürzungen haben wir der Übersicht der
Work-Needing and Prospective
Packages (WNPP)
entnommen
[Debian-Wiki-WNPP]
Orphaned (O)
Kennzeichnung für ein verwaistes Paket, d.h. derzeit ohne Paketmaintainer.
Request For Adopter (RFA)
Der derzeitige Paketmaintainer möchte die Verantwortung für das Paket
abgeben und sucht einen Nachfolger.
Request For Help (RFH)
Der derzeitige Paketmaintainer braucht generell Hilfe bei der Pflege
des Pakets, z.B. in Form eines Co-Maintainers oder auch nur jemand, der
Bugreports vorsortiert. Welche Hilfe sich der Paketbetreuer genau
wünscht, finden Sie im angegebenen Bugreport.
Intent To Adopt (ITA)
Jemand hat vor, das Paket zu übernehmen (Paketadoption). Diese Übernahme
ist aber noch nicht geschehen.
Über die bereits bisher genannten Möglichkeiten zur Unterstützung haben
sich die folgenden Wege bewährt, zur Weiterentwicklung und Verbesserung
von Paketen beizutragen:
Request For Sponsorship (RFS)
Jemand, der kein Debian-Entwickler ist, hat eine neue Version dieses
Pakets vorbereitet und sucht einen Debian-Entwickler, der das Paket
begutachtet und dann das Hochladen (den
Upload
) sponsort.
newcomer
Pakete mit Bugreports, die mit der Markierung
newcomer
versehen sind.
Eingeführt und früher bekannt unter der Markierung
gift
(engl. für
Geschenk
). Bugreports mit dieser Markierung gelten als „leichte
Beute“ für Einsteiger in die Paketierung oder Entwicklung von
Debian-eigenen Paketen. Diese Aufgaben sind i.d.R. ohne besondere
Kenntnisse in der Paketierung lösbar, aber den Aufwand sollten Sie
trotzdem nicht unterschätzen.
testing-autorm
Kennzeichnung für Pakete, die in Kürze aus dem Zweig Debian
testing
entfernt werden. Hintergrund sind zumeist bisher nicht behobene,
veröffentlichungskritische Fehler (
RC bugs
) des Pakets oder eines
ihrer Abhängigkeiten.
no-testing
Kennzeichnung für Pakete, die vor kurzem aus dem Zweig Debian
testing
entfernt wurden. Dies kann aufgrund bislang nicht behobener,
veröffentlichungskritischer Fehler (
RC bugs
) passiert sein, aber auch
weil der Paketbetreuer oder jemand anderes explizit die Entfernung des
Pakets beantragt hat. Letzteres passiert häufiger, als Sie sich
vorstellen können, z.B. wenn bei einer Bibliothek wegen einer
SONAME
-Änderung auch der Paketname korrigiert werden muss, bspw. von
libfoo7
zu
libfoo8
Über die letzten beiden Markierungen hat
how-can-i-help
eine Art
Glaskugel-Funktion bzgl. zukünftiger Debian-Veröffentlichungen. Daraus
ersehen Sie Tendenzen dahingehend, welche Pakete im Bestand bleiben. Das
hat direkte Auswirkungen, welche Software zukünftig als Debian-Paket
verfügbar bleibt und gepflegt wird. Haben Sie gerade ein Paket aus
Debian
stable
installiert und
how-can-i-help
zeigt Ihnen im Anschluss
zu ihrer Installation an, dass das Paket aus Debian
testing
herausgeflogen ist, klären Sie für sich, ob Sie längerfristig auf dieses
Paket setzen wollen. Bei einer solchen Meldung ist die Chance groß, dass
dieses Paket in der nächsten Veröffentlichung von Debian
stable
nicht
mehr enthalten ist.
Was gibt es zu tun? (Ausschnitt).
$ how-can-i-help
New packages where help is needed, including orphaned ones (from WNPP):
- apt-rdepends - https://bugs.debian.org/487125 - O (Orphaned)
- ara - https://bugs.debian.org/450876 - O (Orphaned)
- dctrl-tools - https://bugs.debian.org/768834 - O (Orphaned)
...

New packages removed from Debian 'testing' (the maintainer might need help):
- apt-dpkg-ref - https://tracker.debian.org/pkg/apt-dpkg-ref
- cpp-4.4 - https://tracker.debian.org/pkg/gcc-4.4
- gcc-4.4 - https://tracker.debian.org/pkg/gcc-4.4
...
37.4. Auslaufende Sicherheitsaktualisierungen mit
check-support-status
anzeigen
Mit Hilfes des Werkzeugs
check-support-status
aus dem Paket
debian-security-support
[Debian-Paket-debian-security-support]
lesen
Sie die Informationen des Debian Security Teams
[Debian-Security]
im
Terminal. Hilfreich ist es vor allem bei Installationen von Debian
oldstable
, da es Ihnen berichtet, für welche Pakete bereits jetzt
schon bekannt ist, dass deren Security-Support in zukünftigen
Veröffentlichungen nicht fortgesetzt wird.
Als Basis nutzt
check-support-status
zwei textbasierte Datenbanken,
die sich unter
/usr/share/debian-security-support/security-support-ended
und
/usr/share/debian-security-support/security-support-limited
befinden.
Erstere enthält die Pakete, deren Sicherheitsaktualisierungen enden,
während die zweite Datei die Pakete auflistet, deren
Sicherheitaktualisierungen lediglich eingeschränkt wird.
Abbildung 37.3. Auflistung der Paket ohne zukünftige Sicherheitsaktualisierungen nach der Analyse von
debian-security-support
Aufruf über die Kommandozeile (Ausschnitt).
# check-support-status
Eingeschränkte Sicherheitsaktualisierungen für eines oder mehrere Pakete

Leider war es nötig, die Unterstützung von Sicherheitsaktualisierungen für
einige Pakete einzuschränken.

Davon sind die folgenden auf diesem System gefundenen Pakete betroffen:

* Quelle:webkit
Einzelheiten: No security support upstream and backports not feasible, only for use on trusted content
Betroffene Binärpakete:
- libjavascriptcoregtk-1.0-0 (installierte Version: 1.8.1-3.4)
- libjavascriptcoregtk-3.0-0 (installierte Version: 1.8.1-3.4)
- libwebkitgtk-1.0-0 (installierte Version: 1.8.1-3.4)
- libwebkitgtk-1.0-common (installierte Version: 1.8.1-3.4)
- libwebkitgtk-3.0-0 (installierte Version: 1.8.1-3.4)
- libwebkitgtk-3.0-common (installierte Version: 1.8.1-3.4)

...
check-support-status
bietet die folgenden Schalter an (Auswahl):
--list
Dateiname
Dateiname
bezeichnet eine Textdatei, in der die einzelnen Pakete
aufgelistet sind. Bei Paketen, deren Sicherheitsaktualisierungen nicht
fortgesetzt werden (
--type ended
), sind hier der Name des Quellpakets,
die Versionsnummer der zuletzt unterstützten Variante, das Datum des
Support-Endes sowie zusätzliche Informationen hinterlegt. Bei Paketen
mit eingeschränktem Support (
--type limited
) umfasst der Eintrag
lediglich den Namen des Quellpakets und Zusatzinformationen. Ist keine
Datei benannt, werden alle mitgelieferten Listen als Basis benutzt.
--type
Variante
bezeichnet die Art der Einschränkung der Sicherheitsaktualisierungen.
Zur Auswahl stehen
ended
und
limited
für zukünftig endende bzw.
eingeschränkte Sicherheitsaktualisierungen.
[34]
Von
lintian
bemerkte, besonders schwere Fehler
sollten bei offiziellen Paketen gar nicht auftauchen, da diese damit
sozusagen bereits beim Aufnahmetest durchfallen.
Kapitel 38. Versionierte Paketverwaltung
Idee:
Verwaltung der Quellpakete als Versionskontrollsystem, bspw. Git
ToDo: entnommen/transferiert aus Paketformat im Detail: Aufbau und Format
Darüberhinaus bestehen experimentelle, (noch) nicht offiziell verwendete
Varianten. Diese sollen es ermöglichen, als Basis für das Paket auch ein
Versionskontrollsystem wie bspw. Git oder Bzr zu verwenden (siehe
[Debian-Paket-dgit]
und
[Canonical-builder]
).
Kapitel 39. Pakete und Patche datumsbezogen auswählen
Frage:
Ist es möglich, die Patche bis zu einem ganz speziellen Datum
einzuspielen?
Problem:
Wir haben hier Entwicklungs-, Test- und Produktivumgebungen.
Auf den Entwicklungsumgebungen werden immer die neuesten Patche
eingespielt, das ist so gewünscht und wird gemacht. :) Das Problem ist
auf den Test- und Produktivumgebungen. Es gibt bei uns die Anforderung,
das wir Patche erst auf der Testumgebung installieren und testen und
erst nach Freigabe der Patche auf der Produktivumgebung einspielen
dürfen. Hier vergehen häufig 2-3 Wochen. Ich müsste also quasi heute auf
der Testumgebung sagen, Patche einspielen und in 3 Wochen dann auf der
Produktivumgebung, Patche bis zum 25.03.2013 15:36 einspielen. Alle
neueren Patche müssten jetzt erst wieder auf die Testumgebung gespielt
werden und neu freigegeben werden.
Gedanken zur Antwort:
Problem tritt sehr häufig auf, bspw. in der Entwicklung. Ein Softwarestand
wird zusammengestellt, ausführlich getestet und — falls alles gutgeht und
freigegeben wurde — auf dem Produktivsystem ausgerollt.
Variante 1 zur Lösung: Zustand des Testsystems mit allen Paketen und den
Konfigurationsdateien wird gesichert/gemerkt, bspw. über eine Paketliste oder
über Puppet,
rsync
o.ä.
Variante 2: eine Art
Package Freeze
. Das Datum, bis zu dem noch
Aktualisierungen von Paketen einfließen können, wird festgelegt. Das Zauberwort
heißt
[Debian-Snapshots]
. In der
/etc/apt/sources.list
stehen dann Einträge der Form:
deb http://snapshot.debian.org/archive/debian/20091004T111800Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20091004T111800Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20091004T121501Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20091004T121501Z/ lenny/updates main
Der Zeitstring
20091004T121501Z
folgt der Form
yyyymmddThhmmssZ
oder
vereinfacht
yyyymmdd
. Steht für ein angegebenes Datum kein Snapshot bereit,
wird der zeitlich entsprechend vorherige ausgewählt.
Kapitel 40. Paketverwaltung mit eingeschränkten Ressourcen für Embedded und Mobile Devices
Die Idee und Anregung für diese Thematik kommt dankenswerter Weise von
Werner Heuser
[Sentinel4Mobile]
, einem langjährigen Berliner
Spezialisten für Linux auf mobilen Geräten. Den Hintergrund bildet die
Frage, welche Programme und Methoden optimal für mobile Geräte sind, um
einerseits eine möglichst lange Nutzungsdauer zu ermöglichen und
andererseits dabei nur so viel Ressourcen zu verbrauchen, wie unbedingt
erforderlich sind. Wir betrachten das daher nachfolgend anhand der
Richtgrößen Batterielaufzeit, belegter Speicherplatz, Bildschirmgröße
und die Erfordernisse an die CPU.
40.1. Batterielaufzeit
Todo
40.2. Speicherplatz
Bekannte Pakete:
localepurge
[Debian-Paket-localepurge]
// eher nach plattenplatz-sparen-mit-der-paketverwaltung.adoc
// Ggf. Paradebeispiel N900 mit dem unsäglichen docpurge erwähnen:
//
docpurge
[docpurge]
eatmydata
[Debian-Paket-eatmydata]
: verringert die Menge der Synchronisationen und somit die Schreibzugriffe
40.3. localepurge
Ist Speicherplatz auf dem Datenträger knapp, kann das Werkzeug
localepurge
[localepurge]
weiterhelfen. Es steht Ihnen über die
Paketverwaltung in dem gleichnamigen Debianpaket
[Debian-Paket-localepurge]
zur Verfügung.
localepurge
entfernt alle Sprachpakete aus ihrer Installation, die
nicht von Ihnen benötigt werden. Die Sprachpakete sind locales-Pakete
und umfassen Übersetzungen der Sprachdateien und Handbücher (Manpages).
Vor dem Aufräumen legen Sie fest, welche Sprachen Sie wirklich im Alltag
benötigen — nicht immer gehören Japanisch oder Arabisch dazu. Die von
Ihnen gewählte Einstellung speichert
localepurge
in der Datei
/etc/locale.nopurge
Nach der ersten Benutzung wird
localepurge
automatisch nach jedem
Aufuf von APT ausgeführt, d.h. wenn Sie ein bereits genutztes Paket
aktualisieren oder ein neues Paket hinzufügen. Bislang unklar ist, ob
das auch für
aptitude
und die anderen Werkzeuge zur Paketverwaltung
gilt. Im nachfolgenden Beispiel hat
localepurge
immerhin über 23 MB
Platz geschaffen.
Entfernen nicht benötigter Sprachpakete mit
localepurge
# localepurge
localepurge: processing locale files ...
Purging /usr/share/locale/az
Purging /usr/share/locale/bg
Purging /usr/share/locale/ca
Purging /usr/share/locale/cs
...
localepurge: Disk space freed in /usr/share/locale: 23528K
Nach unserer Beobachtung werkelt
localepurge
anstandsfrei. Wir
betrachten es als hilfreich für Installationen, die selten modifiziert
werden, auch wenn es etwas in Konflikt mit der Paketverwaltung steht:
Bei der Aktualisierung und Deinstallation von Paketen verursacht die
Benutzung von
localepurge
Fehlermeldungen, da in diesem Moment das
Paket nicht mehr vollständig installiert ist. Die Überprüfung mittels
debsum
schlägt fehl (siehe dazu die Prüfung eines Pakets auf
Veränderungen in
Abschnitt 8.32, „Paket auf unerwünschte Veränderungen prüfen“
).
Das Programm bietet keine Möglichkeit an, die gelöschten Dateien
wieder herzustellen. Daher bleibt Ihnen nur eine Neuinstallation aller
bereinigten Pakete, für die Sie die entsprechenden Sprachdateien doch
wieder benötigen (siehe dazu Pakete erneut installieren in
Abschnitt 8.39, „Pakete erneut installieren“
).
40.4. Bildschirmgröße
Todo
40.5. Erfordernisse an die CPU
Debdelta // gehört hier erwähnt, bzw. systeme-mit-schlechter-anbindung-warten.adoc
dietlibc über das Paket
dietlibc-dev
[Debian-Paket-dietlibc-dev]
Kapitel 41. Paketverwaltung ohne Internet
Bisher haben wir bei nahezu allen im Buch besprochenen Szenarien zumeist
stillschweigend vorausgesetzt, dass die von Ihnen betreuten
Rechnersysteme Zugriff auf das Internet haben. Die Informationen zu
einem Debianpaket und auch das Paket selbst haben Sie entweder online
recherchiert oder bereits von einem vertrauenswürdigen Spiegelserver
bezogen.
Im administrativen Alltag treten jedoch auch Situationen auf, in denen
Sie versuchen müssen, ohne einen Zugang zum Internet auszukommen. Diese
Situationen sind vielleicht etwas beschwerlich, aber Klagen und
Hilflosigkeit löst das Problem im Ernstfall meist nicht wirklich. Bei
den nachfolgend beschriebenen Lösungswegen sind vorausschauendes Denken
und Handeln von Vorteil.
41.1. Hintergrund und Einsatzfelder
Vollkommen berechtigt ist die Frage, ob eine Paketverwaltung heute
überhaupt noch ohne Internet bzw. eine bestehende Netzwerkverbindung
möglich ist. Wenn Sie etwas zurückdenken, erinnern Sie sich vielleicht
daran, dass bis vor wenigen Jahren CDs und später DVDs und USB-Sticks als
Installationsmedien üblich waren und ein Netzzugang eher die Ausnahme
darstellte. Aufgrund der Allgegenwärtigkeit des Internets und der
flächendeckenden Funkvernetzung ist die Situation heutzutage genau
umgekehrt und eine netzbasierte Installation stellt den Standardfall
dar. Nachfolgend sprechen wir die Fälle an, bei denen etwas Planung
hilft, Momente ohne Netz zu überbrücken. Ob das ganze sinnvoll ist, ist
projekt- und situationsabhängig. Wenn es sein muss, stellt sich diese
Frage eigentlich nicht, sondern nur, ob und insbesondere mit welchen
Mitteln Sie ein aufgetretenes Problem möglichst zeitnah lösen können.
Situationen, die hier zu berücksichtigen sind, umfassen bspw. Arbeiten
von unterwegs aus (Zug oder Flugzeug), Reparaturen irgendwo in der
unterversorgten Pampa, auf der Berghütte, auf einem Schiff ohne UMTS, in
einem abgeschirmten Gebäude wie einem Bunker oder auch hinter einer
recht restriktiven Firewall — bspw. in einem Hotel. Zu berücksichtigen
sind außerdem teure Wählverbindungen via Satellit sowie autarke Geräte
und Installationen, die möglichst verbrauchsarm zusammengestellt sind
oder gar keinen permanenten Netzzugang haben
dürfen
. Dazu zählen bspw.
Meßstationen von Sensornetzwerken in eher unzugänglichen Gebirgsregionen
oder auf Gletschern.
Meist wird Ihnen die Situation erst dann bewusst, wenn der Bedarf
entsteht. Es hilft daher, bereits im Vorfeld daran zu denken und
vorauszuplanen, um zumindest darauf vorbereitet zu sein.
41.2. Strategien
Aus unserer Sicht bestehen mehrere, grundlegende Verfahren, die sich
hier anbieten:
die benötigten Pakete vorher explizit herunterladen
die Einbindung fester Installationsmedien
die Einbindung eines lokalen Paketmirrors
Diese drei Wege basieren auf den Werkzeugen und Verfahren, die wir
bislang im Buch bereits angesprochen haben. Nachfolgend beleuchten wir
die Verfahren noch etwas genauer.
Sagen Ihnen unsere Empfehlungen nicht zu, werfen Sie bitte einen
genaueren Blick auf die drei Projekte bzw. Werkzeuge
apt-offline
dpkg-split
und Keryx. Diese stellen wir Ihnen im Anschluss in
Abschnitt 41.3, „Werkzeuge“
genauer vor.
41.2.1. Benötigte Pakete vorher explizit herunterladen
Dieser Weg setzt voraus, dass Sie wissen, was Sie brauchen werden. Das
gelingt nicht immer und lässt sich auch nicht in allen Fällen exakt
vorhersagen. Bitte testen Sie das daher im Vorfeld aus.
Wenn jedoch feststeht, welche Pakete erforderlich sind, laden Sie diese
zunächst explizit mittels APT oder
aptitude
herunter. Damit landen die
neuen Pakete inklusive der zusätzlich benötigten Abhängigkeiten im
lokalen Paketcache Ihres Systems. Zu einem späteren Zeitpunkt können Sie
die dort hinterlegten Pakete hervorholen und auf Ihrem System
installieren. Für das Paket
debtags
mittels APT sind bspw. diese
beiden Aufrufe notwendig:
APT-Aufrufe zum Zwischenspeichern und späteren Installieren eines Pakets.
# apt-get download debtags
# apt-get --no-download install debtags
Ausführlicher besprechen wir jeden der beiden Einzelschritte in
Abschnitt 8.34, „Paketdatei nur herunterladen“
und
Abschnitt 8.35, „Installation zwischengespeicherter Pakete aus dem Paketcache“
. Das
betrifft nicht nur APT, sondern auch
aptitude
41.2.2. Einbindung fester Installationsmedien
Vorbereitete Installationsmedien bekommen Sie von der Webseite des
Debian-Projekts als ISO-Image und Live-CD bzw. -DVD
[Debian-besorgen]
Alternativ können Sie auch selbst Diskimages erstellen und benutzen
[Debian-Wiki-DiskImage]
. Ein solches Installationsmedium binden Sie
als lokales Paketarchiv wie folgt ein, hier unter dem Verzeichnis
/mnt/iso
Einbindung eines lokalen CD/DVD-Images namens
image.iso
als
loop device
unter
/mnt/iso
# mkdir /mnt/iso
# mount -o loop -t iso9660 image.iso /mnt/iso
Bitte beachten Sie dabei, dass der Paketbestand zwischen dem
eingebundenen Diskimage und Ihrer lokalen Installation bezüglich Ihrer
benötigten Architektur und der genutzten Veröffentlichung harmonieren
muss. Passen beide nicht zusammen, provozieren Sie Versionskonflikte
zwischen den beiden Paketbeständen und mit hoher Wahrscheinlichkeit
werden Sie die benötigten Pakete von dem Diskimage nicht auf Ihr lokales
System einspielen können.
Eine Alternative stellt das Werkzeug
apt-cdrom
dar. Dieses stellen wir
Ihnen unter „Physische Installationsmedien mit
apt-cdrom
einbinden“ in
Abschnitt 3.9, „Physische Installationsmedien mit
apt-cdrom
einbinden“
genauer vor.
41.2.3. Einbindung eines lokalen Paketmirrors
Variante Drei ist das Benutzen eines eigenen Paketmirrors. Dieser kann
lokal vorliegen (siehe
Kapitel 31,
Einen eigenen APT-Mirror aufsetzen
), aber auch als
mobile Kopie auf einer externen (USB-)Festplatte überall zum Einsatz
kommen. Diesen Datenträger mounten Sie zunächst und tragen den
Paketmirror danach als zusätzliche Paketquelle (
Repository
) in der
Datei
/etc/apt/sources.list
auf Ihrem lokalen System ein. Ist der
Datenträger bspw. als
/mnt/mirror
gemounted, sieht der Eintrag in der
Liste ihrer Paketquellen wie folgt aus:
Einbinden einer externen Festplatte als Paketmirror.
deb file:/mnt/mirror/debian stable main contrib non-free
Haben Sie den lokalen Paketmirror als zusätzliche Paketquelle in der
Datei
/etc/apt/sources.list
eingetragen, speichern Sie die Datei und
informieren danach ihr Debian-System über die Ergänzung. Aktualisieren
Sie den Paketbestand mittels
apt-get update
apt update
oder
aptitude update
. Installieren Sie nun Pakete auf Ihrem lokalen System,
sucht die Paketverwaltung die Pakete ebenfalls in der angegebenen, neuen
Paketquelle.
Dieser Schritt setzt voraus, dass Sie über eine genügend großen,
zusätzlichen, mobilen Datenträger verfügen, um einen solchen Paketmirror
vorzubereiten (meist unproblematisch). Weiterhin probieren Sie zuvor
aus, ob die Paketinstallation von diesem Paketmirror klappt, um im
Ernstfall handlungsfähig zu sein (auch unproblematisch). Als drittes
sind Sie angeraten, diesen Datenträger dann auch mitzunehmen und nicht
im Büro zu vergessen (schon eher problematisch) — ansonsten ist nämlich
alle Mühe umsonst.
41.3. Werkzeuge
41.3.1. Offline-Verwaltung mit
apt-get
und
wget
In diesem Szenario kombinieren wir die Werkzeuge
apt-get
awk
und
wget
miteinander. Diese wunderbare Idee und Beschreibung ist entlehnt
aus Frank Ronneburgs Debian-Anwenderhandbuch
[Debian-Anwenderhandbuch-apt-offline]
sowie dem Beitrag von Samuel Suter
[Suter-apt-offline]
, hier jedoch
nur für ausgewählte Pakete.
awk
ist ein Analyse- und Filterprogramm für Textdaten
[Debian-Paket-gawk]
. Mit
wget
beziehen Sie hingegen Dateien über das
Netzwerk
[Debian-Paket-wget]
auf der Basis von HTTP, HTTPS und FTP.
Während
awk
zu den essentiellen Programmen zählt, ist
wget
optional
und daher ihrerseits vor dessen Verwendung noch zu installieren, falls
es noch nicht auf ihrem System vorhanden ist.
Benötigt wird ein Rechner ohne Internetzugang (genannt
rechner-offline
) und ein Rechner mit Internetzugang (nachfolgend
rechner-online
genannt). Beide Rechner verfügen über den gleichen
Paketbestand.
Auf
rechner-online
ist im Verzeichnis
/usbplatte
ein externer,
mobiler Datenträger eingebunden, um darauf die Anweisungen zum
nachfolgenden Bezug der Pakete und die Pakete selbst zu speichern. Diese
spielen Sie dann auf
rechner-offline
ein. Der Ablauf zum Bezug der
Pakete umfasst zunächst die nachfolgenden Schritte und beginnt auf
rechner-online
Aktualisieren der lokalen Paketdatenbank mittels
apt-get update
oder
apt update
Erzeugen der URLs zum Bezug der aktualisierten Pakete mittels
apt-get
. Umleitung der Ausgabe von
apt-get
in die lokale Datei
uris
Generieren der passenden
wget
-Aufrufe aus den zuvor gespeicherten
URLs mittels
awk
. Die Ausgabe von
awk
leiten Sie in die Datei
/usbplatte/wget-script
um.
Ausführung der Skriptdatei
wget-script
zum Bezug der bezeichneten Pakete vom
Paketmirror. Damit speichern Sie die bezogenen Pakete auf dem
eingebundenen, mobilen Datenträger.
Hier sehen Sie alle Anweisungen auf der Basis von
apt-get
. Der
Schalter
-qq
von
apt-get
ist die verschärfte Form von
-q
(Langform:
--quiet
) und sorgt dafür, dass
apt-get
eine „vollkommen
stille“ Ausgabe erzeugt, die für unsere Automatisierung geeignet ist.
Der Schalter
--print-uris
gibt die URLs aus, mit deren Hilfe
wget
die Pakete herunterladen kann.
Aufrufreihenfolge mittels
apt-get
awk
und
wget
# apt-get update
# apt-get -qq --print-uris upgrade > uris
# awk '{print "wget -O " $2 " " $1}' < uris > /usbplatte/wget-script
# cd /usbplatte
# sh -x ./wget-script
Die Datei
uris
enthält Einträge in folgender Form, hier beispielhaft
für ImageMagick und GCC 4.9, die von einem Freexian-Mirror für eine
LTS-Version bezogen werden. In der ersten Spalte befindet sich die URL,
danach folgt der Name der Paketdatei und die MD5-Summe zum Paket.
URLs von bezogenen Paketen.
'http://deb.freexian.com/extended-lts/pool/main/i/imagemagick/libmagickcore-6.q16-2-extra_6.8.9.9-5+deb8u26_amd64.deb' libmagickcore-6.q16-2-extra_8%3a6.8.9.9-5+deb8u26_amd64.deb 177540 MD5Sum:8757d67ecdb5da92129e13e9b46fdc1f
'http://deb.freexian.com/extended-lts/pool/main/l/linux/linux-compiler-gcc-4.9-x86_3.16.84-1_amd64.deb' linux-compiler-gcc-4.9-x86_3.16.84-1_amd64.deb 463996 MD5Sum:21bd9aea54e20e0bfefa0cf993c270a2
Das Skript für
wget
enthält dann Aufrufe in folgender Form:
Pakete per
wget
beziehen.
wget -O libmagickcore-6.q16-2_8%3a6.8.9.9-5+deb8u26_amd64.deb 'http://deb.freexian.com/extended-lts/pool/main/i/imagemagick/libmagickcore-6.q16-2_6.8.9.9-5+deb8u26_amd64.deb'
wget -O linux-compiler-gcc-4.9-x86_3.16.84-1_amd64.deb 'http://deb.freexian.com/extended-lts/pool/main/l/linux/linux-compiler-gcc-4.9-x86_3.16.84-1_amd64.deb'
Rufen Sie das Skript auf, holt
wget
ein Paket nach dem anderen von der
angegebenen URL. Als Ergebnis dieser Aufrufe finden Sie auf dem mobilen
Datenträger alle
deb
-Pakete, die zur Aktualisierung mittels
apt-get
upgrade
erforderlich sind. Hängen Sie nun den mobilen Datenträger auf
rechner-online
aus und binden Sie diesen nun auf
rechner-offline
ein.
Nun spielen Sie die zuvor bezogenen Pakete ein. Dabei hilft Ihnen der
Aufruf
apt-get upgrade
mit dem Paketcache auf dem mobilen Datenträger.
Damit
apt-get
diesen Paketcache auch verwendet, benötigt es noch einen
Hinweis von Ihnen. Ins Spiel kommt der Schalter
-o
mit der APT-Direktive
dir::cache::archives
und dem passenden Pfad zum Paketcache. Hier heißt
dieser beispielhaft
/usbplatte
Eine Aktualisierung mit einem externen Paketcache.
# apt-get -o dir::cache::archives="/usbplatte/" upgrade
Ab jetzt verfügt der Rechner ohne Internetzugang wieder über einen
aktuellen Paketbestand.
41.3.2. Das Projekt
apt-offline
Projektidee
Nicht immer hängt ein Computer am Netzwerk und hat Zugang zu dem
hinterlegten Paketmirror. Das Projekt
apt-offline
(Projektseite
[apt-offline-Projektseite]
) baut Ihnen eine Brücke, um mit Hilfe eines
anderen Rechners Änderungen am Paketbestand möglich zu machen. Es steht
in Form der beiden Pakete
apt-offline
[Debian-Paket-apt-offline]
für
die Kommandozeile und
apt-offline-gui
[Debian-Paket-apt-offline-gui]
mit graphischer Bedienoberfläche zur Verfügung. Beide Pakete setzen auf
der Programmiersprache Python auf. Seit der Version 11
Bullseye
sind
die beiden Pakete fester Bestandteil der stabilen Veröffentlichung.
Die Idee hinter
apt-offline
ist das Erzeugen einer Beschreibungsdatei
mit allen Informationen für die Abfrage der Paketdatenbank. Damit weiß
der Paketmirror, welche Pakete er bereitstellen muß. Diese bezogenen
Pakete übertragen Sie auf das eigentliche System — bspw. mit einem
USB-Stick oder einer externen Festplatte — und spielen diese wie
gewohnt über die Paketverwaltung ein. Wie das genau funktioniert,
erklären wir Ihnen gleich. Als Basis dafür benutzten wir eine Reihe von
Anleitungen zum Thema
Offline Package Management for APT
(siehe
[Ritesh-apt-offline]
[xubuntu-apt-offline]
und
[Damienoh-apt-offline]
Benutzung im Detail
In
Schritt 1
erzeugen Sie eine Signatur für die Maschine, die
aktualisierte Paketinformationen und die Pakete bekommen soll. Das
erfolgt auf der Maschine, die offline ist. Dazu benutzen Sie das
nachfolgende Kommando mittelt
apt-offline
. Der verwendete Schalter
set
erzeugt die Signaturdatei, welchen Sie im Aufruf nach dem Schalter
benennen. Bezüglich des Dateinamens gibt keine Vorgabe — hier haben wir
beispielhaft die Datei
/tmp/apt-offline.sig
gewählt.
# apt-offline set /tmp/apt-offline.sig
Alternativ kennt
apt-offline
noch die folgenden Schalter für andere
Aktionen:
--bug-reports
hole auch die Bugreports für die Pakete
--bundle
erzeuge ein Archiv mit allen benötigten Paketen
get
beziehe die Paketinformationen
--install-packages
installiere das Paket
--threads
Anzahl paralleler Threads, die bei der Ausführung benutzt
werden sollen
--update
nur Updates (Einspielen aktualisierter, fehlerbereinigter Pakete mit der gleichen Versionsnummer)
--upgrade
nur Upgrades (Einspielen aktualisierter, fehlerbereinigter Pakete mit einer neueren Version)
ohne Optionen
alles auf den allerneuesten Stand bringen (entspricht einem
dist-upgrade
Das folgende Beispiel zeigt, wie Sie die Paketinformationen für die
offline-Maschine holen, die auch Bugreports enthält. Die Ausführung
erfolgt über 5 parallele Threads. Diese Kommando führen Sie als
Schritt
noch auf der Maschine aus, die nicht über eine Netzanbindung verfügt.
# apt-offline get apt-offline.sig --bug-reports --threads 5
Ergebnis obigen Aufrufs sind Zusatzinformationen in der Datei
apt-offline.sig
, die Sie nun auf einen Datenträger kopieren.
Für ein einzelnes Paket sieht der Aufruf etwas anders aus. Um die
Installation des Pakets
approx
[Debian-Paket-approx]
vorzubereiten,
benutzen Sie diesen Aufruf:
# apt-offline set --install-packages approx apt-offline.sig
Nun beziehen Sie die gewünschten Pakete. Als
Schritt 3
führen Sie den
nachfolgenden Aufruf auf dem Rechner mit Netzanbindung aus:
# apt-offline get --bundle bundle.zip apt-offline.sig
Die notwendigen Pakete befinden sich in dem ZIP-Archiv
bundle.zip
In
Schritt 4
spielen Sie dieses Archiv auf der Offline-Maschine ein.
Hier sehen Sie das beispielhaft als Datei von einem Speichermedium,
welches über USB unter dem Pfad
/media/USB/bundle.zip
eingehängt
ist (USB-Stick oder USB-Festplatte).
# apt-offline install /media/USB/bundle.zip
Die Pakete landen im lokalen Paketcache und wirken für APT jetzt so, als
wenn sie vorher schonmal bezogen wurden. Mittels
apt-get install
Paketname
spielen Sie jetzt das gewünsche Paket ein.
41.3.3. Pakete mit
dpkg-split
aufteilen
Möchten Sie nicht mit den Schaltern von
tar
rar
zip
oder
hoz
hantieren, bietet sich hier das Werkzeug
dpkg-split
aus dem Paket
dpkg
[Debian-Paket-dpkg]
an. Es zerlegt eine
deb
-Datei in kleinere
Stücke und setzt diese Stücke dann auch wieder zusammen. Dieses
Werkzeug ist nützlich, um Binärpakete auf mehrere Medien mit geringer
Kapazität zu verteilen, bspw. wenn Sie gerade nichts anderes zur Hand
haben.
dpkg-split
kommt mit einer ganzen Reihe von nützlichen Schaltern:
-?
(Langform:
--help
Zeigt die Hilfeseite zu
dpkg-split
an.
-a
(Langform:
--auto
Reiht die Stücke automatisch in die
Warteschlange und setzt, falls möglich, das Paket wieder zusammen.
-d
(Langform:
--discard
Löscht Einträge aus der Warteschlange
derer, die auf die verbleibenden Stücke ihrer Pakete warten.
-I
(Langform:
--info
Gibt Informationen zu einem Stück aus,
welches zuvor von
dpkg-split
erzeugt wurde.
-j
(Langform:
--join
Vereinigt einzelne Stücke zu einer
.deb
-Datei. Standardmäßig folgt der Name der Ausgabedatei basierend
auf dem Paketnamen, der Version und der Architektur
Paket-Version_Architektur.deb
).
-l
(Langform:
--listq
Listet den Inhalt der Warteschlange der wieder zusammenzubauenden Pakete auf.
-o
(Langform:
--output
Gibt den Ausgabedateinamen für ein
Paket an, welches zusammengebaut werden soll. Ohne diesen Schalter erzeugt
dpkg-split
eine Ausgabedatei mit dem Namen basierend auf dem Paketnamen, der Version und der Architektur (
Paket-Version_Architektur.deb
).
-Q
(Langform:
--npquiet
Führen Sie ein automatisches Einreihen
oder Wiederzusammensetzen durch, gibt
dpkg-split
normalerweise eine
Meldung aus, falls ein übergebener Teil kein Binärpaketteil ist. Dieser
Schalter unterdrückt diese Meldung, um Programmen wie
dpkg
zu
erlauben, sowohl mit geteilten als auch ungeteilten Paketen umzugehen,
ohne störende Meldungen zu erzeugen.
-S
(Langform:
--partsize
Legt die Größe der Stücke fest. Die
Angabe erfolgt in Kilobytes zur Basis 1024 Byte. Die Standardgröße
beträgt 450 KB.
-s
(Langform:
--split
Teilt ein einzelnes Debian-Binärpaket in
mehrere Stücke. Die Benennung der Ausgabedateien folgt
Paketname.nofm.deb
mit
als Stücknummer und
als Anzahl der
Stücke.
Geben Sie im Aufruf kein Präfix an, wird der Dateiname vom
Komplettarchiv entnommen, einschließlich Verzeichnis, wobei das
abschließende
.deb
entfernt wird.
--depotdir
Spezifiziert ein alternatives Verzeichnis für die
Warteschlange von den Stücken, die auf automatisches
Wiederzusammenführen warten. Standardmäßig ist dies das Verzeichnis
/var/lib/dpkg
--msdos
Erzwingt, dass die von
-s
erzeugten Ausgabedateinamen
MSDOS-kompatibel sind.
Dies verstümmelt das Präfix — entweder den voreingestellten aus dem
Eingabedateinamen abgeleiteten oder den als Argument übergebenen. Dabei
werden alphanummerische Zeichen durch Kleinbuchstaben und Pluszeichen
durch
ersetzt sowie alle anderen Zeichen entfernt. Das Ergebnis wird
dann soweit wie nötig abgeschnitten. Ergebnis ist ein Dateiname der Form
Präfixnofm.deb
mit
als Stücknummer und
als Anzahl der Stücke.
--version
Gibt die verwendete Version von
dpkg-split
aus.
Nachfolgend erklären wir anhand des Paketes
xsnow
, wie Sie
dpkg-split
benutzen.
Beispiel 1
ist das Zerlegen des Pakets
xsnow
in Stücke mit einer
Größe von 10 KB. Zum Einsatz kommen im Aufruf die beiden Schalter
-s
(zerlegen) und
-S 10
. Letzteres bestimmt die Größe der Ausgabedatei
von maximal 10 KB.
Als Ergebnis erhalten Sie vier Stücke. Diese werden in der Form
Paketname.nofm.deb
mit
als Stücknummer (im Beispiel die Werte 1
bis 4) und
als Anzahl der Stücke (im Beispiel 4) benannt.
Zerlegen des Debianpakets
xsnow
in Stücke zu 10 KB.
$ dpkg-split -s -S 10 xsnow_1%3a1.42-9_amd64.deb
Paket xsnow wird in 4 Teile aufgeteilt: 1 2 3 4 fertig
$ ls -lh
insgesamt 136K
-rw-r--r-- 1 frank frank 9,2K Jan 7 11:09 xsnow_1%3a1.42-9_amd64.1of4.deb
-rw-r--r-- 1 frank frank 9,2K Jan 7 11:09 xsnow_1%3a1.42-9_amd64.2of4.deb
-rw-r--r-- 1 frank frank 9,2K Jan 7 11:09 xsnow_1%3a1.42-9_amd64.3of4.deb
-rw-r--r-- 1 frank frank 8,2K Jan 7 11:09 xsnow_1%3a1.42-9_amd64.4of4.deb
In
Beispiel 2
zeigen Sie die Informationen zu einem Stück eines
mittels
dpkg-split
zerlegten deb-Pakets an. Dazu benutzen Sie den
Schalter
-I
gefolgt von einem Dateiname als Parameter, hier:
xsnow_1%3a1.42-9_amd64.3of4.deb
. Die Ausgabe umfasst die
Formatversion, die Paketinformationen, die Nummer des Stücks (hier 3 von
4), die Größe ("Teil-Länge") sowie den Offset im Originalpaket
("Teil-Offset").
Informationen zum Teil
xsnow_1%3a1.42-9_amd64.3of4.deb
erhalten.
$ dpkg-split -I xsnow_1%3a1.42-9_amd64.3of4.deb
xsnow_1%3a1.42-9_amd64.3of4.deb:
Teil-Formatversion: 2.1
Teil des Paketes: xsnow
... Version: 1:1.42-9
... Architektur: amd64
... MD5-Prüfsumme: 3ddeabaec77416662e45de36d9960a2a
... Länge: 35836 Byte
... geteilt alle: 9216 Byte
Teil-Nummer: 3/4
Teil-Länge: 9216 Byte
Teil-Offset: 18432 Byte
Teil-Dateigröße (ben. Anteil): 9418 Byte

Das
Beispiel 3
zeigt, wie Sie ein Paket wieder aus einzelnen Stücken
zusammensetzen. Dazu benutzen Sie den Schalter
-j
für die Aktion
"Zusammensetzen".
Nun erzeugt
dpkg-split
als Ausgabedatei
xsnow_1:1.42-9_amd64.deb
, da
die Benennung den Angaben zum Paketnamen, der Paketversion sowie der
Architektur (
Paket-Version_Architektur.deb
) folgt. Am Ende des Aufrufs
geben Sie noch die Dateinamen der Stücke an, die Sie wieder
zusammensetzen möchten.
Einfaches Zusammenfügen der Paketstücke.
$ dpkg-split -j xsnow_1%3a1.42-9_amd64.*
Paket xsnow wird aus 4 Teilen zusammengesetzt: 1 2 3 4 fertig
Um eine Ausgabedatei mit einem spezifischen Dateinamen zu erhalten,
kommt nun noch der Schalter
-o
für die Angabe der Ausgabedatei zum
Einsatz. Bitte beachten Sie dabei, dass Sie im Aufruf zuerst den
Schalter
-o
und erst danach den Schalter
-j
angeben. Nachfolgend
sehen den vollständigen Aufruf, der als Ergebnis die Datei
xsnow_1%3a1.42-9_amd64.deb
liefert.
Zusammenfügen der Paketstücke mit Ausgabedatei.
$ dpkg-split -o xsnow_1%3a1.42-9_amd64.deb -j xsnow_1%3a1.42-9_amd64.*
Paket xsnow wird aus 4 Teilen zusammengesetzt: 1 2 3 4 fertig
Anschließend raten wir Ihnen, zu überprüfen, ober alles beim Zusammenbau
geklappt hat. Mittels
md5sum
vergleichen Sie die Hashwerte der beiden
Pakete wie folgt:
Vergleichen zweier Dateien mittels
md5sum
$ md5sum xsnow_1%3a1.42-9_amd64.deb /var/cache/apt/archives/xsnow_1%3a1.42-9_amd64.deb
3ddeabaec77416662e45de36d9960a2a xsnow_1%3a1.42-9_amd64.deb
3ddeabaec77416662e45de36d9960a2a /var/cache/apt/archives/xsnow_1%3a1.42-9_amd64.deb
41.3.4. Keryx
Das Projekt
Keryx
[Keryx]
beschreibt sich als eine freie,
plattformunabhängige Softwareanwendung, um Linuxsysteme ohne
Internetanbindung zu aktualisieren. Es hat den Fokus auf Benutzer mit
Einwahlverbindungen und Systeme, die nur über eine dünne Leitung an das
Internet verfügen.
Ursprünglich nur für Ubuntu entwickelt, erlaubt es mittlerweile das
Auswählen und Herunterladen von Paketen auf Debian-basierten Systemen
und auch anderen Betriebssystemen wie bspw. Microsoft Windows. Die
bezogenen Pakete werden auf einem mobilen Speichermedium abgelegt und
können von da aus auf dem eigentlichen System eingespielt werden. Es ist
für die Anwendung an einzelnen Systemen gedacht, geschieht das in einem
größeren Rahmen, ist für das Vorgehen der Begriff „Turnschuhnetzwerk“
[Turnschuhnetzwerk]
gebräuchlich.
Keryx basiert auf dem Gimp Tool Kit. Die letzte Veröffentlichung als
Ubuntu-PPA erfolgte 2011 (Version 1), 2017 wurde die Version 0.92.5
freigegeben. Aktuellere Veröffentlichungen sind nicht bekannt.
Es existiert zudem eine Erweiterung um eine graphische Bedienoberfläche,
die auf wxPython (Paket
python-wxversion
) aufsetzt.
Kapitel 42. Systeme mit schlechter Internet-Anbindung warten
Wir als Autoren und Systembetreuer haben uns mittlerweile an einen
Internetzugang mit hoher Bandbreite gewöhnt. In der freien Wildbahn
treffen wir aber durchaus auf Systeme, die mit weniger Bandbreite
angebunden sind und auch gewartet werden möchten. Dazu gehört bspw. die
Einwahl über ein Modem, via Integrated Services Digital Network (ISDN)
oder eine volumenbeschränkte Internetanbindung. Auf mobilen Endgeräten
erfolgt die Verbindung hingegen über GSM (2G, inkl. GPRS und EDGE), UMTS
(3G), LTE (4G) oder auch Satellit und ist vom Standort und der
Empfangsstärke abhängig.
Grob betrachtet, gibt es dabei drei Arten von Einschränkungen, mit denen
Sie leben müssen:
wackelige, unzuverlässige Verbindungen bei allen Funktechnologien,
hohe Latenz bei Satelliten- und manchen Mobilfunkverbindungen und
geringe Bandbreite bei einem Analog-Modem, bei ISDN und bei GSM-Verbindungen (2G)
Die Situation ist dabei durchaus ähnlich wie ohne Internet, nur mit
wenigstens ein bisschen Internet.
Bei der Paketverwaltung stört am ehesten eine zu geringe Bandbreite.
Latenz ist dabei nahezu irrelevant und bei instabilen Verbindungen
stoßen Sie im Zweifelsfall den Download einfach nochmals an. Deswegen
gehen wir im Folgenden vor allem auf Methoden zur Reduktion des
Datenübertragungsvolumen ein.
Dabei spielen bei der Aktualisierung genau die Programme ihre Stärken
aus, die nicht den gesamten, aktuellen Stand der Dinge übertragen,
sondern nur die jeweiligen Änderungen. In das Rampenlicht rücken wir
daher nachfolgend Konzepte, welche für die Paketlisten und die
Paketinhalte nur die relevanten Differenzen herunterladen.
42.1. debdelta
Interessant für Sie ist das Werkzeug
debdelta-upgrade
aus dem
Debdelta-Projekt (
[Debdelta]
). Es steht im Paket
debdelta
[Debian-Paket-debdelta]
bereit, welches ebenfalls die drei weiteren
Programme
debdelta
debdeltas
und
debpatch
enthält. Falls Sie das
Werkzeug
cupt
installiert haben, ist
debdelta-upgrade
ebenfalls dort
integriert (siehe
Abschnitt 6.2.5, „Cupt“
).
debdelta-upgrade
überträgt nicht die Pakete vollumfänglich, sondern
nur die jeweiligen Unterschiede zwischen beiden Versionen — genannt
deltas
. Der Ideengeber für das in der Programmiersprache Python
geschriebene Programm ist das Werkzeug
diff
, welches zeilenweise die
Unterschiede zwischen zwei Dateien anzeigt.
In dem nachfolgenden Beispiel sehen wir einen
debdelta-upgrade
-Lauf mit
einer virtuellen Übertragungsrate von 60kB/s über eine EDGE-Verbindung,
deren Download-Raten zwischen 15kB/s und 25kB/s liegen. Das Ergebnis ist
eine Verbesserung um den Faktor 2.5.
Optimiertes Herunterladen von Daten mit
debdelta
# debdelta-upgrade
Created, time 6.46sec, speed 31kB/sec, gir1.2-gtk-3.0_3.8.5-1_i386.deb
Created, time 0.81sec, speed 75kB/sec, libgail-3-0_3.8.5-1_i386.deb
Created, time 0.71sec, speed 82kB/sec, libgtk-3-bin_3.8.5-1_i386.deb
Created, time 1.15sec, speed 72kB/sec, libio-socket-ssl-perl_1.955-1_all.deb
Created, time 0.66sec, speed 15kB/sec, libmodule-build-tiny-perl_0.030-1_all.deb
Created, time 3.36sec, speed 5672B/sec, libmodule-metadata-perl_1.000019-1_all.deb
Created, time 0.72sec, speed 54kB/sec, libmodule-scandeps-perl_1.11-1_all.deb
Created, time 0.51sec, speed 82kB/sec, libqt4-dbus_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 3.82sec, speed 61kB/sec, libqt4-help_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 8.99sec, speed 90kB/sec, libqt4-script_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 3.09sec, speed 82kB/sec, libqt4-scripttools_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.41sec, speed 94kB/sec, libqt4-sql_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 0.58sec, speed 101kB/sec, libqt4-sql-sqlite_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.52sec, speed 112kB/sec, libqt4-svg_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.05sec, speed 90kB/sec, libqt4-test_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Delta is not present: libstring-flogger-perl_1.101242-1_1.101243-1_all.debdelta
Delta is not present: libsub-exporter-progressive-perl_0.001009-1_0.001010-1_all.debdelta
Created, time 17.33sec, speed 59kB/sec, libqt4-xmlpatterns_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 3.49sec, speed 61kB/sec, libqtdbus4_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.38sec, speed 43kB/sec, librose-object-perl_0.860-1_all.deb
Created, time 0.70sec, speed 17kB/sec, libstring-toidentifier-en-perl_0.11-1_all.deb
Created, time 1.13sec, speed 43kB/sec, libsub-exporter-perl_0.986-1_all.deb
Created, time 1.02sec, speed 14kB/sec, libsystem-command-perl_1.105-1_all.deb
Created, time 0.62sec, speed 28kB/sec, libtest-file-perl_1.35-1_all.deb
Downloaded, time 0.42sec, speed 2580B/sec, libtext-hunspell-perl_2.05-1+b1_2.08-1_i386.debdelta
Downloaded, time 0.49sec, speed 2764B/sec, libqt4-opengl_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 0.84sec, speed 45kB/sec, libtest-spec-perl_0.47-1_all.deb
Downloaded, time 0.38sec, speed 4031B/sec, librose-db-perl_0.769-1_0.771-1_all.debdelta
Created, time 0.51sec, speed 41kB/sec, libxml-compile-cache-perl_0.995-1_all.deb
Downloaded, time 1.04sec, speed 1507B/sec, librt-client-rest-perl_1%3a0.43-2_1%3a0.44-1_all.debdelta
Created, time 0.89sec, speed 72kB/sec, qdbus_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 0.51sec, speed 3708B/sec, libavresample1_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Created, time 0.50sec, speed 85kB/sec, qt4-default_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 0.46sec, speed 5070B/sec, libavdevice53_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Downloaded, time 0.41sec, speed 5990B/sec, libavutil52_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Downloaded, time 0.60sec, speed 7016B/sec, libqt4-network_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Downloaded, time 0.62sec, speed 9kB/sec, libxml-compile-perl_1.35-1_1.39-1_all.debdelta
Downloaded, time 1.82sec, speed 7299B/sec, libswscale2_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Downloaded, time 5.09sec, speed 2790B/sec, libyaml-libyaml-perl_0.38-3+b1_0.41-1_i386.debdelta
Downloaded, time 2.18sec, speed 8kB/sec, python3-sip_4.14.7-4_4.15.2-2_i386.debdelta
Downloaded, time 1.90sec, speed 10kB/sec, libavfilter3_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Downloaded, time 5.04sec, speed 3941B/sec, python-sip_4.14.7-4_4.15.2-2_i386.debdelta
Downloaded, time 1.82sec, speed 10kB/sec, libqt4-xml_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Downloaded, time 5.24sec, speed 3954B/sec, libqt4-declarative_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 31.47sec, speed 120kB/sec, qt4-dev-tools_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 11.64sec, speed 72kB/sec, qt4-linguist-tools_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.50sec, speed 86kB/sec, qt4-qtconfig_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 21.87sec, speed 1090B/sec, libgtk-3-common_3.8.4-1_3.8.5-1_all.debdelta
Downloaded, time 6.28sec, speed 4569B/sec, libqtcore4_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Downloaded, time 4.94sec, speed 6927B/sec, libqt4-qt3support_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 15.00sec, speed 39kB/sec, qtcore4-l10n_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_all.deb
Created, time 0.49sec, speed 38kB/sec, libtext-hunspell-perl_2.08-1_i386.deb
Downloaded, time 3.40sec, speed 11kB/sec, qt4-qmake_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Downloaded, time 2.64sec, speed 16kB/sec, librose-db-object-perl_1%3a0.806-1_1%3a0.807-1_all.debdelta
Created, time 4.11sec, speed 80kB/sec, libqt4-opengl_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 1.84sec, speed 69kB/sec, librose-db-perl_0.771-1_all.deb
Downloaded, time 2.54sec, speed 18kB/sec, libqt4-dev-bin_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 1.74sec, speed 40kB/sec, librt-client-rest-perl_1%3a0.44-1_all.deb
Created, time 1.20sec, speed 75kB/sec, libavresample1_6%3a9.10-1_i386.deb
Created, time 0.79sec, speed 101kB/sec, libavdevice53_6%3a9.10-1_i386.deb
Created, time 1.41sec, speed 89kB/sec, libavutil52_6%3a9.10-1_i386.deb
Downloaded, time 5.43sec, speed 14kB/sec, libqt4-dev_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 8.74sec, speed 65kB/sec, libqt4-network_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 13.47sec, speed 15kB/sec, gtk3-engines-oxygen_1.1.4-1_1.2.0-1_i386.debdelta
Created, time 9.57sec, speed 22kB/sec, libxml-compile-perl_1.39-1_all.deb
Created, time 2.59sec, speed 56kB/sec, libswscale2_6%3a9.10-1_i386.deb
Created, time 0.98sec, speed 64kB/sec, libyaml-libyaml-perl_0.41-1_i386.deb
Created, time 1.08sec, speed 72kB/sec, python3-sip_4.15.2-2_i386.deb
Created, time 2.00sec, speed 79kB/sec, libavfilter3_6%3a9.10-1_i386.deb
Created, time 1.08sec, speed 73kB/sec, python-sip_4.15.2-2_i386.deb
Created, time 1.10sec, speed 116kB/sec, libqt4-xml_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 14.62sec, speed 15kB/sec, libqt4-designer_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 20.09sec, speed 54kB/sec, libqt4-declarative_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Error: applying of delta for libgtk-3-common failed: : Error, 220 locale files are absent. (non retriable)
Downloaded, time 25.98sec, speed 11kB/sec, libavformat54_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Created, time 18.78sec, speed 82kB/sec, libqtcore4_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 14.29sec, speed 73kB/sec, libqt4-qt3support_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 36.54sec, speed 15kB/sec, libav-tools_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Created, time 26.96sec, speed 45kB/sec, qt4-qmake_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 23.77sec, speed 22kB/sec, librose-db-object-perl_1%3a0.807-1_all.deb
Downloaded, time 54.52sec, speed 12kB/sec, libgtk-3-0_3.8.4-1_3.8.5-1_i386.debdelta
Created, time 36.84sec, speed 43kB/sec, libqt4-dev-bin_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 54.63sec, speed 14kB/sec, libavcodec54_6%3a9.8-2+b2_6%3a9.10-1_i386.debdelta
Created, time 58.14sec, speed 14kB/sec, libqt4-dev_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 4.72sec, speed 70kB/sec, gtk3-engines-oxygen_1.2.0-1_i386.deb
Downloaded, time 48.70sec, speed 16kB/sec, libqtgui4_4%3a4.8.5+git121-g2a9ea11+dfsg-1_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.debdelta
Created, time 25.46sec, speed 140kB/sec, libqt4-designer_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Created, time 10.35sec, speed 63kB/sec, libavformat54_6%3a9.10-1_i386.deb
Created, time 40.21sec, speed 80kB/sec, libav-tools_6%3a9.10-1_i386.deb
Created, time 19.10sec, speed 93kB/sec, libgtk-3-0_3.8.5-1_i386.deb
Created, time 59.42sec, speed 48kB/sec, libavcodec54_6%3a9.10-1_i386.deb
Created, time 58.16sec, speed 69kB/sec, libqtgui4_4%3a4.8.5+git121-g2a9ea11+dfsg1-2_i386.deb
Downloaded, time 228.14sec, speed 12kB/sec, libgtk-3-common_3.8.5-1_all.deb
Delta-upgrade statistics:
total resulting debs, size 37MB time 637sec virtual speed 60kB/sec
Sorry, no forensic logs were generated
debdelta-upgrade 331.64s user 50.87s system 56% cpu 11:15.57 total
42.2. PDiffs
PDiffs ist die Abkürzung für
Package list diff
und eine sehr nützliche
Option von APT. Diese Option bewirkt, dass nicht mehr die gesamte
aktuelle Paketliste zu ihrem System übertragen wird, sondern nur noch
die Änderungen zum aktuellen Stand. Da diese Änderungen überschaubar
sind, spart das a) Zeit, b) genutzte Bandbreite und c) schont ihren
Geldbeutel.
Vor deren Benutzung schalten Sie diese Option explizit in der
Konfiguration von APT ein, bspw. über einen Eintrag in der Datei
/etc/apt/apt.conf
Konfigurationseintrag für PDiffs.
Acquire::PDiffs "true";
Einsatzfeld der Option
Bitte beachten Sie, dass diese Option nur für die
Debian-Veröffentlichungen
testing
experimental
und
Sid
besteht.
Für die stabile Veröffentlichung hat die Option keinen Effekt.
Kapitel 43. Paketverwaltung hinter einer Firewall
Ausgangspunkt: abgesichertes Netz mit Firewall
Ziel: Aktualisierung der Pakete auf einem System hinter der Firewall
Fragen dazu:
was muss ich da beachten?
welche Ports benutzt APT (http/80 und https/443) ?
was ist bei ftp zu beachten?
Kapitel 44. Der APT- und
aptitude
-Wunschzettel
Es existieren eine Reihe von Funktionen, die wir in APT und
aptitude
vermissen, aber die es schon woanders gibt:
apt-get
: ausgewählte Paketquellen aktualisieren — geht bereits mit
SmartPM (
Abschnitt 6.4.3, „Smart Package Management (SmartPM)“
Teil IV. Ausblick
Kapitel 45. Notizen
TODO: Wollen wir hier ein wenig über die Zukunft von Paketmanagement
unter Debian orakeln? CUPT könnte man hier nochmals erwähnen. Das
web-basierte Zeugs vielleicht auch (Stichworte Tablets und
Smartphones).
welche Fragen blieben bislang offen und unbeantwortet
hat Paketmanagement — so wie es jetzt vorliegt und verwendet wird — überhaupt eine Zukunft
Modell und Struktur wird langsam volljährig
falls ja, was spricht denn dafür
falls nein, was wäre denn eine geeignete Alternative dazu
gibt es vllt. schon kreative Ansätze, die langsam vor sich hin köcheln
was ist mit den Containerformaten wie Flatpak, Open Container Format
(OCF), App Container Image (ACI) und Docker?
welche Punkte sind zu verbessern bzw. zu ergänzen
an welchen Punkten hakelt es immer wieder
hat das Modell Risiken und Schwachstellen
was wird derzeit nicht abgedeckt
Anwendungsfälle
was sind die häufigsten Vorkommnisse, an denen etwas schiefgeht
welche der im Buch vorgestellten Ansätze und Lösungen haben Potential
für die Zukunft
Kapitel 46. Pakete selber bauen
TODO: Evtl. woanders hin?
Beispiel: anhand des deb-Pakets für das vorliegende Buch
weil (1): ist komplett
weil (2): ist in den Quellen für das Buch gleich dabei
weil (3): hängt von keinen weiteren Paketen ab
weil (4): ist überschaubar
weil (5): damit können wir testen, ob wir unser Paket für das Buch
richtig bauen bzw. ob noch etwas fehlt
Kapitel 47. Ein eigenes Debian-Repository aufbauen
siehe dazu: Michael Stapelberg: Kurz-Howto: Eigenes Debian-Repository
aufbauen
[Stapelberg-Debian-Repo]
Kapitel 48. Zukunft von APT,
dpkg
und Freunden
TODO: Drei-Weg-Konfigdatei-Mergen
Libelektra
[libelektra]
ist IIRC eine generische Konfigdatei-Parser-Bibliothek und
Cleverer Config merge
[Bean-clever-merge-config]
Kapitel 49. Fazit / Zusammenfassung
49.1. Was können Sie jetzt?
In diesem Buch vermittelten wir ihnen ein umfangreiches Wissen. Das
umfaßt insbesondere:
das Verständnis, wie Softwarepakete unter Debian GNU/Linux organisiert
sind und welche Infrastruktur bereitsteht, um diese zu benutzen
die Fähigkeit, Softwarepakete zu finden, auszuwählen, zu installieren,
zu konfigurieren, zu aktualisieren und wieder zu entfernen
das Ermitteln der Abhängigkeiten zwischen Softwarepaketen und das
manuelle Beheben fehlender oder auch fehlerhafter Abhängigkeiten
zwischen diesen, so dass ein stabiler Zustand bzgl. der Installation des
Betriebssystems erreicht wird
das Aktuellhalten einer Debian GNU/Linux-Installation
den Umgang mit Problemsituationen, die im Alltag bei der
Paketverwaltung auftreten
Mit diesem Wissen betreiben Sie eine Linux-Installation panikfrei, d.h.
ohne Schnappatmung, und legen damit den Grundstein für eine saubere
und stabile Arbeitsumgebung.
49.2. Empfehlungen für Einsteiger
49.2.1. Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
Eine richtige Antwort darauf fällt schwer, weil das a) von ihrem
Wissensstand abhängt, b) darauf basiert, welche Art von
Benutzerschnittstelle Sie bevorzugen und c) in welcher Situation Sie
sich gerade befinden, sprich: ob Sie lokal arbeiten oder auf einem
entfernten Rechner eingeloggt sind. Es macht dabei einen großen
Unterschied, ob Sie einen Desktop mit graphischer Oberfläche vor sich
haben oder bspw. über
ssh
mit einem Server verbunden sind. Von daher
geben wir Ihnen drei Empfehlungen — eine für die Kommandozeile, eine
für den interaktiven Textmodus und eine für die graphische
Benutzerschnittstelle.
Kommandozeile
apt
(siehe
Abschnitt 6.2.2, „APT“
). Es ist einfach und intuitiv, schnell getippt, hat
angenehme farbliche Hervorhebungen in der Ausgabe und kann praktisch
alles, womit Sie im Alltag zu tun haben. Steht ihnen auf einer älteren
Installation
apt
als Befehl nicht zur Verfügung, weichen Sie auf die
beiden Werkzeuge
apt-get
und
apt-cache
aus. Die Nachteile sind dabei
nur geringfügig, da
apt
mittlerweile mit nahezu allen Unterkommandos
von
apt-get
und
apt-cache
umgehen kann. Im wesentlichen umfaßt das
mehr Tippen, je nach Aufgabe die Auswahl des passenden Programms und den
Verzicht auf farbliche Hervorhebung in der Ausgabe.
Interaktiver Textmodus
aptitude
(siehe
Abschnitt 6.3.2, „
aptitude
). Nicht nur, weil es auch das einzige
Programm mit dieser Benutzerschnittstelle ist, sondern auch, weil es
Ihnen sehr viele Informationen und Möglichkeiten zu den einzelnen
Paketen und deren Status bietet. Diese Darstellung in der Gesamtheit auf
der Kommandozeile zu erreichen, gelingt nur mit einem Dutzend parallel
geöffneter Terminalfenster.
Graphische Benutzerschnittstelle und webbasierte Lösungen
Synaptic (siehe
Abschnitt 6.4.1, „Synaptic“
). Es bildet unserer Meinung nach das
Debian-Paketsystem am besten ab und reduziert es nicht auf einen
„App-Store“. Von webbasierten Lösungen wie Appnr (siehe
Abschnitt 6.5.2, „Appnr“
) sind wir bislang nicht überzeugt und
raten Ihnen daher nicht zu diesen.
49.2.2. Installations-CD/DVD oder Netzwerkinstallation?
Die Ausgangsposition ist hier, ob der Rechner, auf dem Debian GNU/Linux
installiert und zukünftig gepflegt werden soll, überwiegend über eine
verläßliche Internetverbindung verfügt oder nicht. Daraus leitet sich
ab:
falls ja, dann ist eine Netzwerkinstallation die richtige Auswahl
(Erfahrungswert). Das erleichtert insbesondere die spätere Aktualisierung.
Physische Medien oder Installationsabbilder sind hierbei nicht
vorzuhalten. Bitte beachten Sie, daß bei einer Unterbrechung der
Internetanbindung des Rechners eine Aktualisierung oder Änderung des
Paketbestands nur mit größerem Aufwand möglich ist.
falls nein, bleibt nur die Benutzung einer oder mehrerer
Installations-CDs/DVDs oder Installationsabbilder. Diese müssen zur
späteren Installation oder Entfernung von Paketen bereitliegen, um den
Bestand der installierten Pakete konsistent zu halten. Der Rechner muss
zudem über eine Möglichkeit verfügen, die Medien oder
Installationsabbilder auch einbinden und benutzen zu können. Infrage
kommen bspw. ein CD/DVD-Laufwerk, ein USB-Port oder ein Einschub für eine
Speicherkarte, auf dem sich ein Installationsabbild befindet.
49.3. Empfehlungen für Fortgeschrittene und Profis
Sie verfügen über einen größeren Erfahrungsschatz und sind im Umgang mit
UNIX-basierten Betriebssystemen versiert. Für den Ablauf schlagen wir
Ihnen daher folgendes vor:
machen Sie sich zunächst mit den Werkzeugen und entsprechenden
Unterkommandos zur Paketverwaltung vertraut. Diese besprechen wir
ausführlich in
Kapitel 8,
Paketoperationen
. Kommen Sie von einer
rpm
-basierten Distribution wie bspw. Fedora oder CentOS, hilft Ihnen
die Tabelle im Anhang weiter (siehe dazu
Kapitel 51,
Kommandos zur Paketverwaltung im Vergleich
). Diese stellt die
Kommandos der einzelnen Paketverwaltungen gegenüber und läßt Sie ohne
großen Zeitversatz loslegen.
klären Sie, welche Aktionen zur Paketverwaltung überhaupt anstehen,
sprich: was konkret zu tun ist. Danach wählen Sie das passende Kommando
aus.
Anhang A. Anhang
Kapitel 50. Debian-Architekturen
50.1. Offizielle Architekturen
Debian 12
Bookworm
unterstützt die folgenden Architekturen und Plattformen:
i386 (i486/i586/i686)
x86 (PC) 32-Bit. Trotz des Namens ab Debian 8
Jessie
nur
Pentium-kompatible und ab Debian 9
Stretch
nur noch
Pentium-II-kompatible Hardware. In Debian 6
Squeeze
und 7
Wheezy
umfasst das noch i486, jedoch bereits keine i486 SX mehr.
amd64 (x86_64)
x86 (PC) 64-Bit. AMD 64-Bit-CPUs mit AMD64-Erweiterung und Intel CPUs
mit EM64T-Erweiterung.
arm64 (aarch64-linux-gnu)
ARM 64 Bit. 64-Bit-ARMv8-Architektur, die im Vergleich zu anderen
ARM-Architekturen einen aufgeräumten Befehlssatz hat und auf den
Servermarkt zielt. Hardware-Architektur des iPhone 5.
armel (arm-linux-gnueabi)
ARM (EABI)
[Debian-Wiki-ARM-EABI-Port]
armhf (arm-linux-gnueabihf)
ARM. Hardware Floating Point ABI, ab Debian 7.0
Wheezy
unterstützt
[Debian-Wiki-ARM-EABI-Port]
mipsel (mipsel-linux-gnu)
MIPS (Little Endian).
mips64el (mips64el-linux-gnuabi64)
64-Bit MIPS (Little Endian) mit der N64 ABI,
Hardware-Fließkommazahlen-Unterstützung und der MIPS64R2
Befehlssatzarchitektur.
ppc64el (powerpc64le-linux-gnu)
PowerPC 64-Bit (POWER7+, POWER8). Little-Endian-Portierung von ppc64,
nutzt die neue OpenPower-ELFv2-ABI.
s390x (s390x-linux-gnu)
IBM S/390 und zSeries, 64-Bit-Userland.
Gegenüber Debian 11
Bullseye
ist diese Liste unverändert.
50.2. Architekturen, die nicht den Linux-Kernel verwenden
Keine dieser Architekturen ist momentan für stabile Veröffentlichungen
von Debian relevant ("release architecture").
hurd-i386 (i486-gnu)
32-Bit-PC (i386) mit GNU-Hurd-Kernel (nur in Debian
unstable
).
kfreebsd-amd64 (x86_64-kfreebsd-gnu)
x86 (PC) 64-Bit mit FreeBSD-Kernel. Technologievorschau, bei Debian 6
Squeeze
und Debian 7
Wheezy
dabei, mittlerweile nur noch in
unstable
kfreebsd-i386 (i486-kfreebsd-gnu/i586-kfreebsd-gnu)
x86 (PC) 32-Bit
mit FreeBSD-Kernel. Technologievorschau, bei Debian 6
Squeeze
und
Debian 7
Wheezy
dabei, mittlerweile nur noch in
unstable
. Seit
2014 nur Pentium-kompatible Hardware, in Debian 6
Squeeze
und 7
Wheezy
werden auch noch i486 unterstützt.
Diese Architekturen sind gar nicht mehr verfügbar:
netbsd-i386 (i486-netbsd)
32-Bit-PC (i386). Portierung auf den NetBSD-Kernel.
netbsd-alpha (alpha-netbsd)
Alpha. Portierung auf den NetBSD-Kernel.
50.3. Veraltete Architekturen
Folgende Architekturen werden von Debian 12
Bookworm
(und ggf. auch
schon älteren stabilen Debian-Veröffentlichungen) nicht mehr
unterstützt:
alpha (alpha-linux-gnu)
Alpha. Unterstützt von Debian 2.1
Slink
bis Debian 6
Squeeze
hppa (hppa-linux-gnu)
HP PA-RISC. Unterstützt von Debian 3
Woody
bis Debian 6
Squeeze
ia64 (ia64-linux-gnu)
Intel Itanium IA-64. Wurde zeitweise auch in
unstable
nicht mehr
unterstützt, dann aber doch wiederbelebt.
m68k (m68k-linux-gnu)
Motorola 68k. Die Unterstützung war komplett eingestellt, wurde aber
wiederbelebt.
powerpc (powerpc-linux-gnu)
Motorola/IBM PowerPC. Läuft auf vielen der Apple Macintosh
PowerMac-Modelle sowie auf Rechnern der offenen CHRP- und
PReP-Architekturen. Seit Debian 9
Stretch
nicht Bestandteil der
stabilen Veröffentlichungen.
mips (mips-linux-gnu)
MIPS (Big Endian). War zuletzt in Debian 10
Buster
Bestandteil einer
stabilen Veröffentlichung.
Diese Architekturen sind gar nicht mehr verfügbar:
arm (arm-linux-gnu)
ARM (OABI). Seit Debian 6
Squeeze
nicht mehr unterstützt und durch
armel
ersetzt.
m32
M32R. Portierung auf die 32-Bit-RISC-Mikroprozessoren von Renesas
Technology.
s390 (s390-linux-gnu)
IBM S/390 und zSeries. Wird auch in
unstable
nicht mehr unterstützt
und wurde durch s390x ersetzt.
sparc (sparc-linux-gnu)
SPARC, 64-Bit-Kernel, 32-Bit-Userland. Nur noch in
unstable
, der ist
Nachfolger
sparc64
50.4. Architekturen, deren Unterstützung vorgesehen ist
Folgende Architekturen werden vom Debian-Ports-Projekt bereits
unterstützt und auf eine Aufnahme in Debian vorbereitet:
powerpcspe (powerpc-linux-gnuspe)
PowerPC-Prozessoren mit Signal Processing Engine.
ppc64 (powerpc64-linux-gnu)
64-Bit-PowerPC-Prozessoren mit VMX-Einheit.
riscv64 (riscv64-linux-gnu)
RISC-V ist eine offene Befehlssatzarchitektur, die auf dem bewährten
Design von RISC (Reduced Instruction Set Computer) aufbaut und unter
einer BSD-Lizenz für jedermann verfügbar ist.
sh4
SuperH, eine Portierung auf Hitachis SuperH-Prozessoren.
sparc64 (sparc64-linux-gnu)
SPARC, vollständig 64-Bit.
x32 (x86_64-linux-gnux32)
x86 (PC) 32-Bit auf AMD 64-Bit-CPUs mit AMD64-Erweiterung und Intel CPUs
mit EM64T-Erweiterung.
Folgende Architektur existiert und wird von einzelnen Entwicklern
aufgebaut, ist aber beim Debian-Ports-Projekt noch nicht verfügbar:
avr32 (avr32-linux-gnu)
Atmel 32-Bit RISC. Portierung auf Atmels 32-Bit RISC-Architektur AVR32;
scheint teilweise wieder eingeschlafen zu sein.
Kapitel 51. Kommandos zur Paketverwaltung im Vergleich
51.1. Zusammenfassung
Hier stellen wir Ihnen die jeweiligen Kommandos zur Paketverwaltung
gegenüber, soweit dieser Schritt möglich ist. Im Rampenlicht stehen RPM,
Yellowdog Updater Modified (YUM), seine Nachfolger Effing Package
Management (FPM) und Dandified YUM (DNF), Debian’s
dpkg
, APT sowie
aptitude
. Wir betrachten dabei bspw. die Installation und die
Entfernung von Paketen, das Auflisten der installierten und verfügbaren
Pakete sowie das Anzeigen von Paketabhängigkeiten.
Diese Zusammenstellung basiert auf umfangreichen Tests und Recherchen,
beispielsweise mit Fedora 23, CentOS 6 und 7 sowie Ubuntu 15.10
Wily Werewolf
sowie Debian 8
Jessie
bis einschließlich Debian 12
Bookworm
. Die Verfügbarkeit der genannten Werkzeuge und deren
Möglichkeiten variiert recht stark
[RPM-Salve]
[RPM-Gite]
[RPM-Canepa]
[YUM-Salve]
[dpkg-Kumar]
[apt-Salve]
[DNF-Dokumentation]
51.2. Die lokale Paketliste aktualisieren
Mit den nachfolgenden Aufrufen aktualisieren Sie die lokale Paketliste.
Genauer gehen wir darauf in
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“
ein. RPM, YUM, FPM und DNF kennen das Konzept der lokalen Paketliste nicht,
daher bestehen keine äquivalenten Kommandoaufrufe.
Tabelle 51.1. Lokale Paketliste aktualisieren
Werkzeug
Aufruf
Anmerkungen
APT
apt update
apt-get
apt-get update
Aptitude
aptitude update
51.3. Neue Softwarepakete installieren
Mit den nachfolgenden Aufrufen installieren Sie ein Softwarepaket über
die Kommandozeile. Unter „Pakete installieren“ in
Abschnitt 8.38, „Pakete installieren“
gehen wir detaillierter auf
dpkg
, APT und
aptitude
ein. Unter „Installation zwischengespeicherter Pakete aus
dem Paketcache“ in
Abschnitt 8.35, „Installation zwischengespeicherter Pakete aus dem Paketcache“
erfahren Sie mehr darüber, wie Sie Pakete installieren, die bereits im
Paketcache vorliegen.
Tabelle 51.2. Installation eines Pakets
Werkzeug
Aufruf
Anmerkungen
APT
apt install
Paketname
Paket wird dem Paketrepository entnommen
apt --no-download install
Paketname
Paket wird dem Paketcache entnommen und nicht vom Paketmirror bezogen
apt-get
apt-get install
Paketname
Paket wird dem Paketrepository entnommen
apt-get --no-download install
Paketname
Paket wird dem Paketcache entnommen und nicht vom Paketmirror bezogen
aptitude
aptitude install
Paketname
Paket wird dem Paketrepository entnommen
DNF
dnf install
Paketname
Paket wird dem Paketrepository entnommen
dnf install
Paketdatei
Paketdatei liegt also lokale Datei vor
dnf group install
Paketgruppe
alle Pakete aus der Paketgruppe installieren
dpkg
dpkg -i
Paketdatei
Paket liegt lokal als Datei vor
dpkg --install
Paketdatei
Paket liegt lokal als Datei vor
RPM
rpm -i
Paketdatei
Paket liegt lokal als Datei vor
rpm --install
Paketdatei
Paket liegt lokal als Datei vor
rpm -i --nodeps
Paketdatei
Paket liegt lokal als Datei vor, Installation ohne Berücksichtigung der Paketabhängigkeiten
rpm --install --nodeps
Paketdatei
Paket liegt lokal als Datei vor, Installation ohne Berücksichtigung der Paketabhängigkeiten
rpm -ihv
Paketdatei
Paket liegt lokal als Datei vor, Installation mit Kommentaren und Verlaufsbalken
YUM
yum groupinstall
Paketgruppe
Alle Pakete aus der Paketgruppe werden dem Paketrepository entnommen und installiert
yum install
Paketname
Paket wird dem Paketrepository entnommen
yum localinstall
Paketname
Paket liegt lokal als Datei vor oder wird von einem HTTP- oder FTP-Server bezogen
yum reinstall
Paketname
Paket wird dem Paketrepository entnommen und erneut installiert
51.4. Bereits bestehende Softwarepakete erneuern
Mit den nachfolgenden Aufrufen aktualisieren Sie ein Softwarepaket über
die Kommandozeile. Unter „Pakete aktualisieren“ in
Abschnitt 8.41, „Pakete aktualisieren“
gehen wir detaillierter auf die Vorgehensweise
und die begrifflichen Unterschiede bei
dpkg
, APT,
apt
und
aptitude
ein.
Tabelle 51.3. Aktualisieren eines Pakets
Werkzeug
Aufruf
Anmerkungen
apt
apt install
Paketname
aktualisierte Version des Pakets einspielen, sofern das Paket bereits in einer früheren Version installiert ist
apt safe-upgrade
Paketname
aktualisierte Version des Pakets einspielen
apt-get
apt-get install
Paketname
aktualisierte Version des Pakets einspielen, sofern das Paket bereits in einer früheren Version installiert ist
apt-get upgrade
Paketname
aktualisierte Version des Pakets einspielen
aptitude
aptitude safe-upgrade
Paketname
aktualisierte Version des Pakets einspielen
DNF
dnf update
alle installierten Pakete aktualisieren (veraltet)
dnf update
Paketname
nur
Paketname
aktualisieren (veraltet)
dnf upgrade
alle installierten Pakete aktualisieren
dnf upgrade
Paketname
nur
Paketname
aktualisieren
RPM
rpm -F
Paketdatei
aktualisiere ein bereits installiertes Paket; das Paket liegt lokal als Datei vor
rpm --freshen
Paketdatei
aktualisiere ein bereits installiertes Paket; das Paket liegt lokal als Datei vor
rpm -U
Paketdatei
aktualisiere ein bereits installiertes Paket oder installiere es, falls es noch nicht vorhanden ist; das Paket liegt lokal als Datei vor
rpm --upgrade
Paketdatei
aktualisiere ein bereits installiertes Paket oder installiere es, falls es noch nicht vorhanden ist; das Paket liegt lokal als Datei vor
YUM
yum update
die gesamte Veröffentlichung aktualisieren
yum update
Paketname
nur
Paketname
aktualisieren
yum update --security
nur die Sicherheitsaktualisierungen einspielen
yum update-to
Paketname-Paketversion
eines oder alle Pakete bis zu einer bestimmten Version aktualisieren
yum upgrade
die gesamte Veröffentlichung aktualisieren und dabei auch die Pakete berücksichtigen, die veraltet sind
yum upgrade
Paketname
nur
Paketname
aktualisieren und dabei auch die Pakete berücksichtigen, die veraltet sind
51.5. Eine frühere Version eines Softwarepakets einspielen (Downgrade)
Mit den nachfolgenden Aufrufen spielen Sie eine frühere Version eines
Softwarepakets ein (Downgrade). Für
dpkg
, APT,
apt
und
aptitude
besteht kein passendes Unterkommando. Unter „Pakete downgraden“ in
Abschnitt 8.42, „Pakete downgraden“
gehen wir detaillierter auf die Vorgehensweise
dazu ein.
Tabelle 51.4. Downgraden eines Pakets
Werkzeug
Aufruf
Anmerkungen
DNF
dnf dg
Paketname
Paketname
auf die frühere Version zurücksetzen
dnf downgrade
Paketname
Paketname
auf die frühere Version zurücksetzen
YUM
yum downgrade
Paketname
Paketname
auf die frühere Version zurücksetzen
51.6. Ein Softwarepaket erneut installieren
Mit den nachfolgenden Aufrufen installieren Sie ein Softwarepaket über
die Kommandozeile erneut.
Tabelle 51.5. Erneute Installation eines Pakets
Werkzeug
Aufruf
Anmerkungen
APT
apt reinstall
Paketname
Paket wird dem Paketrepository entnommen
apt-get
apt-get install --reinstall
Paketname
Paket wird dem Paketrepository entnommen
apt-get reinstall
Paketname
Paket wird dem Paketrepository entnommen
aptitude
aptitude reinstall
Paketname
Paket wird dem Paketrepository entnommen
RPM
rpm --reinstall
Paketdatei
installiere das Paket erneut, dieses liegt als lokale Datei vor
YUM
yum reinstall
Paketname
Paket wird dem Paketrepository entnommen
51.7. Ein Softwarepaket nur herunterladen
Mit den nachfolgenden Aufrufen laden Sie ein Softwarepaket in das
aktuelle Verzeichnis herunter.
Tabelle 51.6. Ein Softwarepaket nur herunterladen
Werkzeug
Aufruf
Anmerkungen
APT
apt download
Paketname
Paket wird dem Paketrepository entnommen
aptitude
aptitude download
Paketname
Paket wird dem Paketrepository entnommen
YUM
yum install --downloadonly
Paketname
Paket wird dem Paketrepository entnommen und im Paketcache gespeichert, üblicherweise im Verzeichnis
/var/cache/yum/architektur/prod/repo/
yumdownloader
Paketname
Paket wird dem Paketrepository entnommen und im aktuellen Verzeichnis gespeichert
yumdownloader --resolve
Paketname
Paket samt dessen Paketabhängigkeiten wird dem Paketrepository entnommen und im aktuellen Verzeichnis gespeichert
yumdownloader --destdir
Verzeichnis Paketname
Paket wird dem Paketrepository entnommen und im angegebenen Verzeichnis gespeichert
51.8. Paket löschen / entfernen
Mit den nachfolgenden Aufrufen entfernen Sie ein Softwarepaket über
die Kommandozeile. Unter „Pakete deinstallieren“ in
Abschnitt 8.43, „Pakete deinstallieren“
gehen wir detaillierter auf
dpkg
, APT und
aptitude
ein.
Tabelle 51.7. Entfernen eines Pakets
Werkzeug
Aufruf
Anmerkungen
apt
apt remove
Paketname
entfernt das Paket, die Konfigurationsdateien des Pakets bleiben erhalten
apt-get
apt-get remove
Paketname
entfernt das Paket, die Konfigurationsdateien des Pakets bleiben erhalten
apt-get purge
Paketname
entfernt das Paket inklusive der Konfigurationsdateien des Pakets
apt-get --purge remove
Paketname
entfernt das Paket inklusive der Konfigurationsdateien des Pakets
aptitude
aptitude remove
Paketname
entfernt das Paket, die Konfigurationsdateien des Pakets bleiben erhalten
aptitude purge
Paketname
entfernt das Paket inklusive der Konfigurationsdateien des Pakets
DNF
dnf erase
Paketname
Paket wird deinstalliert (veraltet)
dnf group remove
Paketgruppe
alle Pakete aus der Paketgruppe werden deinstalliert
dnf remove
Paketname
Paket wird deinstalliert
dpkg
dpkg -r
Paketname
entfernt nur das Paket
dpkg --remove
Paketname
entfernt nur das Paket
dpkg -P
Paketname
entfernt das Paket und die Konfigurationsdateien des Pakets
dpkg --purge
Paketname
entfernt das Paket und die Konfigurationsdateien des Pakets
RPM
rpm -e
Paketname
entfernt das angegebene Paket
rpm --erase
Paketname
entfernt das angegebene Paket
rpm -e --nodeps
Paketname
Entfernung des Pakets ohne Berücksichtigung der Paketabhängigkeiten
YUM
yum remove
Paketname
entfernt das angegebene Paket samt seiner Abhängigkeiten
yum erase
Paketname
entfernt das angegebene Paket samt seiner Abhängigkeiten
51.9. Alle installierten Pakete auflisten
Mit den nachfolgenden Aufrufen listen Sie die vorhandenen Softwarepakete
über die Kommandozeile auf. Für
dpkg
, APT und
aptitude
besprechen
wir das detaillierter unter „Liste der installierten Pakete anzeigen
und deuten“ in
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
sowie unter „Aktualisierbare Pakete anzeigen“ in
Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“
Tabelle 51.8. Softwarepakete auflisten
Werkzeug
Aufruf
Anmerkungen
apt
apt list --installed
alle installierten Pakete auflisten
apt-cache
apt-cache search
Paketname
alle verfügbaren Pakete für
Paketname
auflisten, durchsucht dabei Paketname und Beschreibung
apt-cache
apt-cache search
--names-only
Paketname
alle verfügbaren Pakete für
Paketname
auflisten, berücksichtigt dabei nur den Paketname
aptitude
aptitude search '~i'
alle installierten Pakete auflisten
aptitude versions
Paketname
alle verfügbaren Pakete
für
Paketname
auflisten, auch die (noch) nicht installierten Varianten
DNF
dnf list installed
alle installierten Pakete anzeigen
dpkg
dpkg -l
alle installierten Pakete auflisten
dpkg --list
alle installierten Pakete auflisten
RPM
rpm -qa
alle installierten Pakete auflisten
rpm -qa --last
alle installierten Pakete auflisten, dabei die zuletzt installierte Pakete zuerst
rpm --query --all
alle installierten Pakete auflisten
rpm --query --all --last
alle installierten Pakete auflisten, dabei die zuletzt installierte Pakete zuerst
YUM
yum list
Paketname
anzeigen, welche Versionen des Pakets installiert sind
yum list all
alle installierten und verfügbaren Pakete auflisten
yum list available
alle verfügbaren Pakete auflisten
yum list installed
alle installierten Pakete auflisten
yum list updates
alle aktualisierbaren Pakete auflisten
51.10. Einzelpaket auflisten
Mit den nachfolgenden Aufrufen listen Sie die Informationen bzw. den
Installationsstatus zu einem einzelnen Softwarepaket auf. Unter „Liste
der installierten Pakete anzeigen und deuten“ in
Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“
besprechen wir
das zu
dpkg
und
aptitude
genauer.
Tabelle 51.9. Einzelnes Softwarepaket auflisten
Werkzeug
Aufruf
Anmerkungen
apt
apt list
Paketname
Informationen und den Installationsstatus zu Paketname anzeigen
apt show
Paketname
Detaillierte Informationen und den Installationsstatus zu Paketname anzeigen
aptitude
aptitude show
Paketname
DNF
dnf info
Paketname
Informationen zu Paketname anzeigen
dnf list installed
alle installierten Pakete anzeigen
dnf list installed
Paketname
Installationsstatus zu Paketname anzeigen
dpkg
dpkg -l
Paketname
Ausgabe des Installationsstatus
dpkg --list
Paketname
Ausgabe des Installationsstatus
dpkg -s
Paketname
Ausgabe der Paketinformationen
dpkg --status
Paketname
Ausgabe der Paketinformationen
RPM
rpm -q
Paketname
Ausgabe des Installationsstatus für
Paketname
rpm -qi
Paketname
Informationen zu einem installierten Paket anzeigen
rpm -qp
Paketdatei
Informationen zu einer Paketdatei anzeigen
rpm --query
Paketname
analog zu
-q
rpm --query --info
Paketname
analog zu
-qi
rpm --query --package
Paketdatei
analog zu
-qp
YUM
yum info
Paketname
Informationen zu dem Paket anzeigen
51.11. Abhängigkeiten anzeigen
Mit den nachfolgenden Aufrufen zeigen Sie die Abhängigkeiten zu anderen
Paketen an. Für
dpkg
und APT gehen wir dazu genauer in
„Paketabhängigkeiten anzeigen“ in
Abschnitt 8.19, „Paketabhängigkeiten anzeigen“
ein.
Tabelle 51.10. Paketabhängigkeiten anzeigen
Werkzeug
Aufruf
Anmerkungen
dpkg
dpkg -f
Paketdatei
Depends
das Paket muß dazu lokal als Datei vorliegen
dpkg-deb
dpkg-deb -f
Paketdatei
Depends
das Paket muß dazu lokal als Datei vorliegen
APT
apt-cache depends
Paketname
umgekehrte Abhängigkeiten anzeigen
apt-cache rdepends
Paketname
Abhängigkeiten anzeigen
apt-rdepends
apt-rdepends -r
Paketname
Abhängigkeiten anzeigen
apt-rdepends
Paketname
umgekehrte Abhängigkeiten anzeigen
aptitude
aptitude search '~R'
Paketname
Abhängigkeiten anzeigen
aptitude search '~D'
Paketname
umgekehrte Abhängigkeiten anzeigen
grep-status
grep-status -F Package -s Depends
Paketname
Abhängigkeiten anzeigen
grep-status -P -s Depends
Paketname
Abhängigkeiten anzeigen
RPM
rpm -qR
Paketname
das Paket muß lokal auf dem
System installiert sein
rpm --query --requires
Paketname
das Paket muß
lokal auf dem System installiert sein
rpm -qpR
Paketdatei
das Paket muß dazu lokal als Datei vorliegen
rpm --query --package --requires
Paketdatei
das Paket muß dazu lokal als Datei vorliegen
YUM
yum deplist
Paketname
yum info
Paketname
repoquery --requires
Paketname
yumdownloader --resolve
Paketname
51.12. Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Mit den nachfolgenden Aufrufen zeigen Sie an, welche Dateien und
Verzeichnisse zu einem Paket gehören, bevor dieses installiert wird. Für
Debianpakete widmen wir uns dem Thema in „Paketinhalte anzeigen“ in
Abschnitt 8.26, „Paketinhalte anzeigen“
Tabelle 51.11. Paketinhalte vor der Installation anzeigen
Werkzeug
Aufruf
Anmerkungen
apt-file
apt-file list
Paketname
Dateiliste zu dem Paket anzeigen
DNF
dnf repoquery -l
Paketname
Dateiliste zu dem Paket anzeigen
dpkg
dpkg -c
Paketname
dpkg --contents
Paketname
dpkg-deb
dpkg-deb -c
Paketname
dpkg-deb --contents
Paketname
RPM
rpm -ql
Paketname
Dateiliste der lokalen Paketdatei anzeigen
rpm -qpl
Paketdatei
Dateiliste der lokalen oder entfernten Paketdatei anzeigen
rpm --query --list
Paketname
Dateiliste der lokalen Paketdatei anzeigen
rpm --query --package --list
Paketdatei
Dateiliste der lokalen oder entfernten Paketdatei anzeigen
YUM
repoquery -l
Paketname
Dateiliste zu dem Paket anzeigen
repoquery --list
Paketname
Dateiliste zu dem Paket anzeigen
51.13. Alle Dateien eines installierten Pakets anzeigen
Mit den nachfolgenden Aufrufen zeigen Sie an, welche Dateien und
Verzeichnisse zu dem installierten Paket gehören. Für Debianpakete
widmen wir uns dem Thema in „Paketinhalte anzeigen“ in
Abschnitt 8.26, „Paketinhalte anzeigen“
Tabelle 51.12. Paketinhalte anzeigen
Werkzeug
Aufruf
Anmerkungen
apt-file
apt-file list
Paketname
apt-file show
Paketname
DNF
dnf repoquery -l
Paketname
Dateiliste zu dem Paket anzeigen
dpkg
dpkg -L
Paketname
dpkg --listfiles
Paketname
dpkg-query
dpkg-query -L
Paketname
dpkg-query --listfiles
Paketname
RPM
rpm -ql
Paketname
Dateiliste der lokalen Paketdatei anzeigen
rpm --query --list
Paketname
Dateiliste der lokalen Paketdatei anzeigen
YUM
repoquery -l
Paketname
Dateiliste zu dem Paket anzeigen
repoquery --list
Paketname
Dateiliste zu dem Paket anzeigen
51.14. Alle Konfigurationsdateien eines Pakets anzeigen
dpkg
dpkg-query
und
rpm
listen nur die Einträge auf, die sich
bereits im Paket befinden und nicht diese, die erst zur Laufzeit
angelegt werden. Für
dpkg
gehen wir darauf in „Konfigurationsdateien
eines Pakets anzeigen“ (siehe
Abschnitt 8.30, „Konfigurationsdateien eines Pakets anzeigen“
) genauer ein.
Tabelle 51.13. Konfigurationsdateien eines Pakets anzeigen
Werkzeug
Aufruf
Anmerkungen
dpkg
dpkg -s
Paketname
dpkg --status
Paketname
dpkg-query
dpkg-query -s
Paketname
dpkg-query --status
Paketname
RPM
rpm -qc
Paketname
listet alle Dateien auf, die im rpm-Paket als Konfiguration gekennzeichnet sind
rpm --query --configfiles
Paketname
listet alle Dateien auf, die im rpm-Paket als Konfiguration gekennzeichnet sind
Alternativ listen Sie nur die Dateien auf, die sich im Verzeichnis
/etc
befinden, hier anhand des Beispielpakets
paket.rpm
rpm -qc paket.rpm | grep "/etc"
51.15. Alle Dokumentationsdateien eines Pakets anzeigen
dpkg
und
apt
können das nicht. Daher geben wir nur den Aufruf von
rpm
an.
Tabelle 51.14. Dokumentationsdateien eines Pakets anzeigen
Werkzeug
Aufruf
Anmerkungen
RPM
rpm -qd
Paketname
listet alle Dateien auf, die im
rpm-Paket explizit als Dokumentation gekennzeichnet sind
rpm --query --docfiles
Paketname
listet alle Dateien auf, die im
rpm-Paket explizit als Dokumentation gekennzeichnet sind
Alternativ listen Sie nur die Dateien auf, die sich im Verzeichnis
/usr/share/doc
befinden, hier anhand des Beispielpakets
paket.rpm
rpm -qd paket.rpm | grep "/usr/share/doc"
51.16. Paket identifizieren, aus dem eine Datei stammt
Um herauszufinden, aus welchem Paket eine Datei stammt, bieten sowohl
rpm
als auch
dpkg
entsprechende Schalter an. Für Debianpakete gibt
es
apt-file
, welches wir genauer in „Paket zu Datei finden“ in
Abschnitt 8.24, „Paket zu Datei finden“
besprechen.
Tabelle 51.15. Paket zu Datei finden
Werkzeug
Aufruf
Anmerkungen
apt-file
apt-file find
Dateiname
Suche nach dem Dateinamen in allen verfügbaren Paketen
apt-file search
Dateiname
Suche nach dem Dateinamen in allen verfügbaren Paketen
DNF
dnf provides
Dateiname
Suche nach dem Dateinamen in allen verfügbaren Paketen.
Dateiname
umfaßt hier den vollständigen Namen inklusive Pfad
dpkg
dpkg -S
Dateiname
Suche nach dem Dateinamen in den installierten Paketen
dpkg --search
Dateiname
Suche nach dem Dateinamen in den installierten Paketen
dpkg-query
dpkg-query -S
Dateiname
Suche nach dem Dateinamen in den installierten Paketen
dpkg-query --search
Dateiname
Suche nach dem Dateinamen in den installierten Paketen
RPM
rpm -qf
Dateiname
Suche nach dem Dateinamen in den installierten Paketen.
Dateiname
umfaßt hier den vollständigen Namen inklusive Pfad
rpm --query --file
Dateiname
Suche nach dem Dateinamen in den installierten Paketen.
Dateiname
umfaßt hier den vollständigen Namen inklusive Pfad
YUM
yum provides
Dateiname
Suche nach dem Dateinamen in allen verfügbaren Paketen.
Dateiname
umfaßt hier den vollständigen Namen inklusive Pfad
51.17. Paketstatus anzeigen
Diese Information zeigen Ihnen
dpkg
und
apt-cache
an. Ausführlicher
beschäftigt sich damit der Abschnitt „Paketstatus erfragen“ in
Abschnitt 8.4, „Paketstatus erfragen“
Tabelle 51.16. Paketstatus erfragen
Werkzeug
Aufruf
Anmerkungen
apt-cache
apt-cache show
Paketname
Suche in allen verfügbaren Paketen
aptitude
aptitude show
Paketname
Suche in allen verfügbaren Paketen
dpkg
dpkg -s
Paketname
Paketname
muß lokal installiert sein
dpkg --status
Paketname
Paketname
muß lokal installiert sein
dpkg -I
Dateiname
Dateiname
bezeichnet eine lokale Datei
dpkg --info
Dateiname
Dateiname
bezeichnet eine lokale Datei
dpkg-query
dpkg-query -s
Paketname
Paketname
muß lokal installiert sein
dpkg-query --status
Paketname
Paketname
muß lokal installiert sein
RPM
rpm -qi
Paketname
Paketname
muß lokal installiert sein
rpm -qip
Dateiname
Dateiname
muß lokal vorliegen
rpm --query --info
Paketname
Paketname
muß lokal installiert sein
rpm --query --info --package
Dateiname
Dateiname
muß lokal vorliegen
YUM
yum info
Paketname
Paketname
muß lokal installiert sein
51.18. Aktualisierbare Pakete anzeigen
Viele Pakete werden regelmäßig aktualisiert. Welches Kommando Ihnen die
Pakete anzeigt, die in einer neuen Version bereitstehen, zeigt Ihnen die
nachfolgende Tabelle. In Abschnitt „Aktualisierbare Pakete anzeigen“
Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“
erfahren Sie dazu mehr Details.
Tabelle 51.17. Aktualisierbare Pakete anzeigen
Werkzeug
Aufruf
Anmerkungen
apt
apt list --upgradable
alle Pakete auflisten, für die eine neue Version bereitsteht
apt list --upgradable
Paketname
anzeigen, ob für das Paket eine neue Version bereitsteht
apt-get
apt-get upgrade -u
alle Pakete auflisten, für die eine neue Version bereitsteht
apt-get upgrade --show-upgraded
analog zu
-u
(Langform)
apt-get upgrade -u -s
Simulation, analog zu
-u
apt-get upgrade --show-upgraded --simulate
Simulation, analog zu
-u -s
(Langform)
aptitude
aptitude search '~U'
alle aktualisierbaren Pakete anzeigen
aptitude search ?upgradable
alle aktualisierbaren Pakete anzeigen
DNF
dnf list upgrades
alle aktualisierbaren Pakete anzeigen
YUM
yum updateinfo list available
Auflistung der Aktualisierungen für die bereits installierten Pakete
yum updateinfo list sec
alle Sicherheitsaktualisierungen für die bereits installierten Pakete anzeigen
yum updateinfo list --security
alle Sicherheitsaktualisierungen für die bereits installierten Pakete anzeigen
Zypper
zypper list updates --all
alle aktualisierbaren Pakete anzeigen
51.19. Verfügbare Pakete anzeigen
Welche Pakete verfügbar sind, erfahren Sie mit den nachfolgend genannten
Aufrufen. In Abschnitt „Bekannte Paketnamen auflisten“
Abschnitt 8.3, „Bekannte Paketnamen auflisten“
stellen wir Ihnen das genauer vor.
Tabelle 51.18. Verfügbare Pakete anzeigen
Werkzeug
Aufruf
Anmerkungen
apt
apt list
alle verfügbaren (bekannten) Pakete samt Status auflisten
apt-cache
apt-cache pkgnames
alle verfügbaren (bekannten) Pakete auflisten
DNF
dnf group list
alle Paketgruppen auflisten
dnf list --available
alle verfügbaren Pakete anzeigen
dnf repository-packages repo list --available
alle verfügbaren Pakete aus dem Repository
repo
anzeigen
YUM
yum list available
alle verfügbaren Pakete anzeigen
51.20. Paketsignatur überprüfen
Mit den nachfolgenden Aufrufen überprüfen Sie die Signatur eines Pakets. Sie
stellen damit sicher, dass das Paket unverändert vom Paketmirror zu Ihnen
übertragen wurde und auf dem Transportweg keine inhaltlichen Veränderungen
stattgefunden haben. Für Debianpakete widmen wir uns dem Thema in
„Paket verifizieren“ in
Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“
und
„Paket auf Veränderungen prüfen“ in
Abschnitt 8.32, „Paket auf unerwünschte Veränderungen prüfen“
Tabelle 51.19. Paketsignatur überprüfen
Werkzeug
Aufruf
Anmerkungen
debsums
debsums
Paketname
alle Dateien des angegebenen Paketes überprüfen
debsums
alle Dateien überprüfen (außer Konfigurationsdateien)
dpkg
dpkg -V
Paketname
alle Dateien des angegebenen Paketes überprüfen
dpkg --verify
Paketname
alle Dateien des angegebenen Paketes überprüfen
dpkg-sig
dpkg-sig --verify
Paketname
GnuPG-Signatur des Pakets prüfen
gpg
gpg --verify
Paketname
GnuPG-Signatur des Pakets prüfen
RPM
rpm -K
Paketname
GnuPG-Signatur des Pakets prüfen
rpm --checksig
Paketname
GnuPG-Signatur des Pakets prüfen
51.21. Paket auf Veränderungen prüfen
Um festzustellen, ob die vorliegenden Dateien noch identisch mit den
Dateien aus dem installierten Paket sind, helfen Ihnen diese Kommandos:
Tabelle 51.20. Paket auf Veränderungen prüfen
Werkzeug
Aufruf
Anmerkungen
dpkg
dpkg -V
prüft alle installierten Pakete
dpkg --verify
Paketname
prüft nur das angegebene Paket
RPM
rpm -Va
prüft alle installierten Pakete
rpm -Vp
Paketname
prüft nur das angegebene Paket
rpm --verify --all
prüft alle installierten Pakete
rpm --verify --package
Paketname
prüft nur das angegebene Paket
YUM
yum verify
Paketname
Paketname prüfen; erfordert YUM-Plugin
yum-verify
APT und
aptitude
stellen keine eigenen Schalter zur Verfügung,
dpkg
erst ab der Version 1.17 (verfügbar ab Debian 8
Jessie
). Für
vorhergehende Veröffentlichungen weichen Sie auf die Werkzeuge
debsums
und
dlocate
aus. Darauf gehen wir im Abschnitt „Paket auf
Veränderungen prüfen“ in
Abschnitt 8.32, „Paket auf unerwünschte Veränderungen prüfen“
genauer
ein.
51.22. Transaktionshistorie anzeigen
dpkg
apt
und
aptitude
besitzen keine expliziten Schalter dafür.
Im Abschnitt „Liste der zuletzt installierten Pakete anzeigen“ in
Abschnitt 8.18, „Liste der zuletzt installierten Pakete anzeigen“
zeigen wir Ihnen,
wie Sie das über die Logdateien lösen. DNF und YUM erlauben es hingegen,
die Transaktionshistorie darzustellen. Dabei helfen Ihnen diese Kommandos:
Tabelle 51.21. Transaktionshistorie anzeigen
Werkzeug
Aufruf
Anmerkungen
DNF
dnf history
die gesamte Historie aller Transaktionen anzeigen
dnf history list
die gesamte Historie aller Transaktionen anzeigen
YUM
yum history
die gesamte Historie aller Transaktionen anzeigen
yum history info
Paketname
detailliertere Transaktionen zu
Paketname
anzeigen
yum history list all
die gesamte Historie aller Transaktionen anzeigen
yum history package-list
Paketname
die gesamte Historie der Transaktionen für das Paket
Paketname
anzeigen
yum history packages-list
Paketname1
Paketname2
die gesamte Historie der Transaktionen für die beiden Pakete
Paketname1
und
Paketname2
anzeigen
yum history summary
Paketname
Zusammenfassung der Transaktionen zu
Paketname
51.23. Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
Mit den nachfolgenden Kommandos aktualisieren Sie eine bestehende
Installation:
Tabelle 51.22. Distributionsupgrade
Werkzeug
Aufruf
Anmerkungen
apt
apt full-upgrade
Aktualisiere alle bereits installierten Softwarepakete auf die aktuellste, verfügbare Version
apt-get
apt-get dist-upgrade
Aktualisiere alle bereits installierten Softwarepakete auf die aktuellste, verfügbare Version
aptitude
aptitude full-upgrade
Aktualisiere alle bereits installierten Softwarepakete auf die aktuellste, verfügbare Version
aptitude safe-upgrade
Aktualisiere alle bereits installierten Softwarepakete auf die aktuellste, verfügbare Version mit Ausnahme von ungenutzten Paketen
Kapitel 52. Paketformat im Einsatz
52.1. Embedded-Geräte
Armbian
Debian GNU/Linux für ARM-basierte Geräte, bspw. ein Cubieboard oder Cubietruck
[Armbian]
DebWRT
Debian GNU/Linux auf der Basis von OpenWRT für WLAN-Router. Eingestellt 2010.
Raspbian
Debian GNU/Linux so rekompiliert, dass er mit bestmöglicher Optimierung auch
auf den schwächsten Raspberry Pis läuft.
[Raspbian]
Raspberry Pi OS
Eine auf Raspbian aufsetzende Distribution
[RaspberryPiOS]
der Raspberry Pi
Foundation
[RaspberryPi]
, die auch nicht-freie, "empfohlene"
Closed-Source-Software und Dritthersteller-APT-Repositories in der
Standard-Installation enthält.
52.2. Bildung
Skolelinux
früher DebianEdu, für den Einsatz in Schulen
[Skolelinux]
Edubuntu
Ubuntu für Schule und Bildung
[Edubuntu]
LernStick
Live-Distribution auf einem USB-Stick
[LernStick]
52.3. Desktop
Deepin
Angeblich die meistgenutzte Linux-Distribution Chinas
[Deepin]
Emmabuntüs
Wurde entwickelt, um Computer neu aufzusetzen, die an
Hilfsorganisationen gespendet wurden und technologisch älter sind. Wird
gepflegt von der Emmaus-Stiftung aus Frankreich. Emmabuntüs
[Emmabuntus]
basiert auf Debian
stable
LiMux
Linux-Distribution, die im Rahmen der Migration der
Stadtverwaltung München zum Einsatz kam (2009-2020)
[LiMux]
Linux Mint, Linux Mint Debian Edition (LMDE)
basiert auf Ubuntu bzw. Debian
testing
[LinuxMint]
PureOS
Linux-Distribution für Smartphones und Notebooks der Firma Purism.
[PureOS]
[Purism]
Ubuntu (und dessen Ableger)
Linux für Einsteiger und den Desktop
[Ubuntu]
Univention Corporate Server (UCS)
Linux mit integriertem Managementsystem für die zentrale und plattformübergreifende Verwaltung von Servern, Diensten, Clients, Desktops und Benutzern sowie von unter UCS betriebenen virtualisierten Computern
[UCS]
52.4. Live-CD
Aptosid
Linux-Distributionen für Desktop-Computer und Notebooks, basierend auf Debian
unstable
[Aptosid]
BackTrack, Kali Linux
gedacht zur Netzwerk- und Sicherheitsanalyse. BackTrack
[BackTrack]
wurde im Frühjahr 2013 eingestellt, Kali Linux
[Kali-Linux]
ist dessen Nachfolger
Debian Live System
Projekt zur Erstellung und Pflege von Debian-basierten Live-Systemen und Debian Live Images
[DebianLiveSystem]
Finnix
Debian-Minimalsystem, gedacht für Systemadministratoren zur
Wartung und Reparatur im Rahmen von Notfällen
[Finnix]
Grml
textbasiert, gedacht als Rettungssystem und für die Systemanalyse, basiert auf Debian
unstable
[Grml]
Knoppix
Mutter aller Live-Systeme mit dem Vater Klaus Knopper. Es
basiert auf einer Mischung aus Debian
stable
unstable
und
testing
sowie zusätzlichen, nicht-freien Komponenten
[Knoppix]
MX Linux
Linux-Distributionen für Desktop-Computer und Notebooks,
basierend auf Debian
stable
[MXLinux]
Siduction
Linux-Distributionen für Desktop-Computer und Notebooks, basierend auf Debian
unstable
[Siduction]
Slax
Live-Distribution mit dem Fokus auf Anpassbarkeit an die eigenen
Bedürfnisse
[Slax]
Tails
The Amnesic Incognito Live System (TAILS)
[TAILS]
— eine
speziell auf Privatsphäre ausgelegte Debian-Distribution. TAILS kommt
beim Tor-Projekt
[TorProject]
zum Einsatz.
Nach aktuellem Stand lassen sich zumindest Aptosid, Siduction, Grml und
Knoppix ebenfalls auf der Festplatte installieren und sind damit nicht
nur Live-CDs.
52.5. Minimalsysteme
Damn Small Linux
wird seit Mitte 2012 nicht mehr weiterentwickelt
[DamnSmallLinux]
Finnix
Debian-Minimalsystem, gedacht für Systemadministratoren zur
Wartung und Reparatur im Rahmen von Notfällen
[Finnix]
Tiny Core Linux
Nachfolger von Damn Small Linux. Die dCore-Variante
basiert auf der Infrastruktur und den Paketen von Debian und Ubuntu
[TinyCoreLinux]
52.6. Spieleplattform
Drauger OS
Betriebssystem für Linux Desktop Gaming auf der Basis von Ubuntu LTS
[DraugerOS]
Steam OS
ausgelegt für Spiele und die Verwendung großer Bildschirme.
Version 1.0 basiert auf Debian 7
Wheezy
und Version 2.0 auf Debian 8
Jessie
. Ab Version 3.0 benutzt Steam OS
[SteamOS]
hingegen Arch Linux
[ArchLinux]
als Basis.
52.7. Mobile Architekturen
Neben der x86-Architektur kommt das
deb
-Paketformat auf mobilen
Architekturen und Plattformen zum Einsatz. Dazu zählen etwa die
Mobiltelefone Nokia N900 mit Maemo
[Maemo]
, Nokia N9 mit Meego
[MeeGo]
sowie diverse Distributionen für das OpenMoko
[OpenMoko]
Auch der community-getragene, inoffizielle N900-Nachfolger Neo900
[Neo900]
soll u.a. mit Maemo und damit ebenfalls mit dem
deb
-Paketformat laufen.
52.8. Anstatt Linux
Auch mit Nicht-Linux-Kerneln wird das Paketformat eingesetzt. Einerseits
gibt es Debian im Rahmen der Debian Ports auch mit BSD- und
GNU-Hurd-Kernel in Form von Debian GNU/kFreeBSD
[Debian-Wiki-Debian-GNUkFreeBSD]
und Debian GNU/Hurd
[Debian-Wiki-Debian-GNUHurd]
. Auch von Ubuntu gibt es mittlerweile
unter dem Namen UbuntuBSD
[UbuntuBSD]
eine Variante mit
FreeBSD-Kernel.
Andererseits gibt es außerhalb des Debian-Projektes Portierungen auf
den OpenSolaris bzw. Illumos-Kernel, z.B. Dyson OS
[DysonOS]
und
DilOS
[DilOS]
. Weitere Distributionen mit dieser Kombination waren Nexenta
OS
[NexentaOS-Illumian]
und die damit verwandten StormOS
[StormOS]
und Illumian
[NexentaOS-Illumian]
. Sie wurden aber allesamt bereits
wieder eingestellt.
Unter Mac OS X existieren mit Fink
[Finkproject]
zusätzliche, freie
Pakete. Diese können Sie über einen Jailbreak auch auf Ihrem iPhone,
iPod und iPad benutzen.
52.9. Nachbauten und Derivate
Gerade in der Embedded-Szene, wo es auf Kompaktheit ankommt, sind
dpkg
und APT oft zu groß und komplex. Dennoch sind die Grundideen von Debians
Paketmanagement-System auch in dieser Community beliebt und werden
genutzt. So ist das
Itsy Package Management System
ipkg
[ipkg]
und später dessen Fork
OpenMoko Package Management System
opkg
[opkg]
entstanden.
opkg
ist heute noch u.a. bei OpenWrt im Einsatz,
einer bekannten Linux-Distribution für WLAN-Router.
Auch Canonical – das Unternehmen hinter Ubuntu – versucht sich seit 2013
in einem Derivat von Debians Paketsystem. Ihre sogenannten
Click-Pakete
(siehe
[Click-Paket-Format]
und
[SingleClickInstall]
funktionieren ähnlich wie
deb
-Pakete, jedoch ohne große
Abhängigkeiten, und sind optimiert auf den Einsatz bei mobilen Geräten
von Drittanbietern. Die hervorgehobenen Merkmale sind die direkte
Installation des Pakets aus dem Webbrowser (siehe auch
Kapitel 25,
Webbasierte Installation von Paketen mit
apturl
) und die geringen
Paketabhängigkeiten. Das Ziel besteht darin, alle benötigten Daten einer
Software in möglichst einem Paket bereitzustellen.
Wie sich in der Diskussion zeigt, ist der Einsatz der Click-Pakete recht
umstritten (siehe
[Click-Paket-Format-Diskussionen]
und
[Watson-App-Design]
). Mittlerweise ist dieses Format vor dessen
größerer Verbreitung bereits durch den seit Herbst 2015 verwendeten
Nachfolger Snappy
[Ubuntu-Snappy]
[Ubuntu-Snappy-Projekt]
überholt.
52.10. Weitere Debian-Derivate
Einen ausführlichen Überblick zu weiteren Debian-Derivaten gibt der
Debian-Derivate-Zensus. Er ist ein Bestandteil des Debian-Wikis
[DebianDerivativeCensus]
Kapitel 53. Früher im Buch erwähnte Werkzeuge
Das Universum der Werkzeuge für Debian GNU/Linux unterliegt stetigen
Veränderungen und entwickelt sich weiter. Eine ganze Reihe davon haben
wir in früheren Versionen dieses Buches besprochen, inzwischen wurden
diese jedoch obsolet. Das betrifft die folgenden Werkzeuge:
apprecommender
Ein Programm, dass anhand von
debtags
und der Liste der installierten
Pakete weitere, ähnliche, aber noch nicht installierte Pakete
vorschlägt. Dieses wurde 2016 in Debian
unstable
aufgenommen, aber
bereits 2017 wieder entfernt.
apprecommender
war nie Bestandteil einer
stabilen Debian-Veröffentlichung.
aptoncd
Werkzeug, um Aktualisierungen auf Systemen ohne Netzwerkanschluss
einzuspielen.
aptoncd
war zuletzt in Debian 8
Jessie
enthalten und
wurde 2018 aus Debian
unstable
entfernt.
aptsh
Bei der
aptsh
(kurz für
APT Shell
) handelt es sich um eine Shell
für die Paketverwaltung. Sie war verfügbar war bis Debian 9
Stretch
und Ubuntu 19.04
Disco
aptsh
war zuletzt mehrere Jahre verwaist
[aptsh-verwaist-Bug-Report-831493]
und hatte immer mehr Probleme,
gegen neuere APT-Version zu bauen. Kurz vor dem Release von Debian 10
Buster
wurde es dann aus Debian
unstable
und
testing
(zu dem
Zeitpunkt
Buster
) entfernt
[aptsh-entfernen-Bug-Report-930680]
weil es mit der APT-Version nach
Buster
(APT ≥ 1.9) nicht mehr
übersetzbar war und zudem seit Jahren verwaist war, sprich: ohne aktiven
Paketmaintainer.
ara
und
xara-gtk
Kommandozeilen- und graphische Programme zum Durchsuchen der
Debian-Paket-Listen. Zuletzt in Debian 9
Stretch
enthalten. Beide
waren zum Zeitpunkt der Entfernung bereits 7 Jahre verwaist und nicht
mehr kompatibel mit den aktuellen Versionen der internen
(Text-)Datenbank-Formate von
apt
und
dpkg
auto-apt
Programm ähnlich zu
command-not-found
, welches jedoch ein nicht
installiertes Programm, dass versucht wurde zu benutzen, gleich
installiert. (Passende Benutzerrechte vorausgesetzt.).
auto-apt
war
zuletzt in Debian 8
Jessie
enthalten und wurde 2017 aus Debian
unstable
entfernt.
debtags-edit
Ein graphisches Programm zum Bearbeiten von Paket-Tags.
debtags-edit
wurde obsolet mit der Umstellung der Debtags-Webseite auf
Single-Sign-On.
gdebi-kde
Eine graphische, KDE-basierte Benutzerschnittstelle zu Gdebi (siehe
Abschnitt 6.4.5, „GDebi“
).
gdebi-kde
war zuletzt in Debian 9
Stretch
enthalten.
Es war das letzte Paket, dass noch die Bibliothek
pykde4
benötigte.
gui-apt-key
und
curses-apt-key
Das Werkzeug
apt-key
wurde abgekündigt. In Folge werden auch dessen
alternative Bedienschnittstellen
gui-apt-key
[Debian-Paket-gui-apt-key]
und
curses-apt-key
[curses-apt-key]
nicht mehr weiterentwickelt.
gui-apt-key
waren zuletzt in Debian 9
Stretch
enthalten.
software-center
Eine von Ubuntu entwickelte, grafische Benutzerschnittstelle zur
Verwaltung von Softwarepaketen im Stile eines "App Stores". Zuletzt war
es in Debian 7
Wheezy
[RM-software-center]
und Ubuntu 16.04
Xenial
[Ubuntu-Paket-software-center]
vorhanden.
Kapitel 54. Literaturverzeichnis und Referenzen
[ArchLinux] Arch Linux,
[alien] Joey Hess: Projektseite zu
alien
[Allbery-Debian-Popularity] Debian and popularity, Blog-Posting von Russ Allbery,
[altLinux] ALT Linux,
[Amberg-Linux-Server-Praxishandbuch] Eric Amberg: Linux-Server mit Debian 6 GNU/Linux: Das umfassende Praxishandbuch — Aktuell für die Versionen Debian 6.0 (Squeeze) und Debian 5.0 (Lenny), mitp; Auflage: 2012 (24. April 2012), Sprache: Deutsch, ISBN-10: 3826655346, ISBN-13: 978-3826655340
[Aoki-Debian-Referenz] Osamu Aoki: Debian Referenz, deutsche Übersetzung,
[Aoki-Debian-Referenz-Mirror] Osamu Aoki: Debian Referenz, deutsche Übersetzung,
[apper] Apper,
[appnr] Appnr,
[apt2] APT 2.0,
[apt4rpm]
apt4rpm
[apt-browse] Apt-browse,
[aptik] Aptik,
[aptitude-categorical-browser-to-be-removed] Kategorie-Browser in Aptitude wird voraussichtlich entfernt,
[aptitude-dokumentation] Dokumentation zu
aptitude
in allen bisher verfügbaren Sprachen,
[aptitude-dokumentation-package-list] Dokumentation zu
aptitude
: Darstellung der Paketliste,
[aptitude-dokumentation-paketdarstellung] Dokumentation zu
aptitude
: Paketdarstellung,
[aptitude-dokumentation-text-colors-and-styles] Dokumentation zu
aptitude
: Text colors and Styles,
[aptitude-dokumentation-themes] Dokumentation zu
aptitude
: Themes,
[aptitude-dokumentation-veraltet] veraltete Dokumentation zu
aptitude
[apt-proxy]
apt-proxy
-Projektseite,
[apt-Salve] Ravi Salve: 25 Useful Basic Commands of APT-GET and APT-CACHE for Package Management,
[Aptosid] Aptosid,
[aptsh-BackupTheBerlios-Git-Repository] BackupTheBerlios: aptsh Git-Repository auf GitHub,
[aptsh-Projekt]
aptsh
-Projektseite im Web-Archiv,
[aptsh-verwaist-Bug-Report-831493] Bug-Report: aptsh verwaist,
[aptsh-entfernen-Bug-Report-930680] Bug-Report: Bitte aptsh entfernen,
[apt-cacher-ng-Projektseite] Projektseite zu
apt-cacher-ng
[apt-dater-Projektseite] Projektseite zu
apt-dater
[apt-fast] Projektseite zu
apt-fast
auf Github,
[apt-get.org] Suche nach inoffiziellen Debian-Paketen,
[apt-get-update-bug-764503] Debian Bug Report 764503,
[apt-mirror-Projektseite] Projektseite zu
apt-mirror
[apt-mirror-ubuntu] Felipe Alfaro Solana: Create a local mirror of Ubuntu packages using
apt-mirror
[apt-mirror-ubuntu2] Create a Local Ubuntu Repository using Apt-Mirror and Apt-Cacher, Packt Publishing,
[apt-offline-Projektseite] Projektseite zu
apt-offline
[APT-Repo-PostgreSQL] APT-Repositories von PostgreSQL,
[APT-Repo-X2Go] APT-Repositories von X2Go,
[apt-rpm]
apt-rpm
[Arch-Linux-pacapt]
pacapt
auf GitHub:
[Armbian] Armbian,
[AsciiDoc] AsciiDoc, Text-basierte Dokumenten-Generierung,
[awk] Al Aho, Brian Kernighan, und Peter Weinberger: The AWK Programming Language, Addison-Wesley, 1988, ISBN 0-201-07981-X
[backports.org-moved-to-backports.debian.org] backports.org moved to backports.debian.org,
[Backports-Mailingliste] Backports-Mailingliste,
[BackTrack] BackTrack,
[Bailey-Maximum-RPM] Edward C. Bailey: Maximum RPM. Taking the Red Hat Package Manager to the Limit, Red Hat Inc., 2000, ISBN 1-888172-78-9,
[Bailey-Maximum-RPM-verify] When Verification Fails — rpm -V Output in Edward C. Bailey: Maximum RPM. Taking the Red Hat Package Manager to the Limit, Red Hat Inc., 2000, ISBN 1-888172-78-9,
[Bean-clever-merge-config] Jules Bean: Cleverer conffile merge,
[Beckert-Aptitude-Textmodus] Axel Beckert: Aptitude. Pakete komfortabel im Text-Modus verwalten, Vortrag im Rahmen des Linuxday Dornbirn, November 2013,
[Beckert-Blog] Axel Beckerts Blog,
[Beckert-Blog-Aptitude-Gtk-Will-Vanish] Axel Beckert:
aptitude-gtk
will likely vanish,
[Beckert-Blog-Finding-Libraries] Axel Beckert: Finding libraries not marked as automatically installed with
aptitude
[Beckert-Blog-Hardlinking-Duplicate-Files] Axel Beckert: Automatically hardlinking duplicate files under
/usr/share/doc
with APT,
[Beckert-Hofmann-Aptitude-1-LinuxUser] Axel Beckert, Frank Hofmann: Dynamisches Duo. Apt-get und Aptitude (Teil 1), LinuxUser 04/2013, S. 90ff.,
[Beckert-Hofmann-Aptitude-2-LinuxUser] Axel Beckert, Frank Hofmann: Paarweise. Apt-get und Aptitude (Teil 2), LinuxUser 06/2013, S. 90ff.,
[Beckert-Webseite] Axel Beckerts Webseite,
[berliOS] berliOS,
[biarch] Fedora Project: Biarch Spin,
[Buero2.0] Büro 2.0, Berlin,
[bugs-found-during-book-writing] Bugs, die während dem
bzw. durch das Schreiben dieses Buches gefunden wurden,
[Canonical-builder] Canonical: builder - Construct a branch from a recipe,
[checkinstall] Projektseite zu
checkinstall
[Click-Paket-Format] Canonicals
Click
Paketformat,
[Click-Paket-Format-Diskussionen] Can Ubuntu Click Address Linus
Torvalds’ Binary Problems?,
[CLT] Chemnitzer Linux-Tage,
[Communtu] Webseite des Communtu-Projekts,
[comptia-linux] CompTIA Linux+,
[cobbler-webseite] Cobbler,
[Conectiva] Conectiva Linux, Wikipedia (portugiesisch),
[CreativeCommons] Creative Commons Namensnennung — Weitergabe
unter gleichen Bedingungen 4.0 International Lizenz,
[crowbar] Crowbar,
[Cupt-Tutorial] Cupt Tutorial,
[curl-developer] Curl Developer Guide,
[curses-apt-key] curses-apt-key,
[curses-apt-key-braucht-gui-apt-key-aufsplittung] Aufsplittung von gui-apt-key in Bibliothek und Frontend gewünscht,
[curses-apt-key-itp] Intent to package curses-apt-key,
[Damienoh-apt-offline] Damien Oh: How to Update/Upgrade Your Ubuntu Without Internet Connection,
[DamnSmallLinux] Damn Small Linux,
[DebConf] Debian Entwicklerkonferenz (DebConf),
[DebConf5] Debian Entwicklerkonferenz (DebConf) in Helsinki,
[Debdelta] Debdelta, Pakete als Differenzen zur vorherigen Paket-Version,
[DebianArchiveKit] Debian Archive Kit (dak),
[DebianDerivativeCensus] Debian-Derivate-Zensus,
[Debianforum-Wiki-Backports] Debian Backports im Debianforum Wiki:
[DebianLiveSystem] The Debian Live Systems project,
[Debian-Anwenderhandbuch] Frank Ronneburg: Das Debiananwenderhandbuch,
[Debian-Anwenderhandbuch-apt-offline] Frank Ronneburg: Das
Debiananwenderhandbuch, APT offline benutzen,
[Debian-Anwenderhandbuch-apt-optionen] Frank Ronneburg: Das Debiananwenderhandbuch, Die Optionen von APT,
[Debian-Architekturen] Liste der von Debian unterstützten Architekturen,
[Debian-Archive] Archiv der von Debian nicht mehr unterstützten Veröffentlichungen,
[Debian-Backports] Debian Backports:
[Debian-besorgen] Debian besorgen. Installationsmedien und ISO-Images auf der Debian-Webseite,
[Debian-Bug-Tracking-System] Debian Bug Tracking System (Debian BTS),
[Debian-DebSrc3.0] Projects DebSrc3.0,
[Debian-Debtags] Debtags Projekt,
[Debian-Debtags-Editor] Debtags Editor,
[Debian-Debtags-Search] Debtags Projekt, Suche,
[Debian-Debtags-Search-By-Tags] Debtags Projekt, Suche anhand der Schlagworte,
[Debian-Debtags-Statistics] Debtags Projekt, Statistische Daten,
[Debian-Developers-Reference] Developer’s Reference Team: Debian Developer’s Reference, deutsche Übersetzung,
[Debian-Donations] Spenden an Debian,
[Debian-ELTS] Extended Debian Long Term Support (ELTS),
[Debian-ELTS-HowTo] How to use Extended LTS,
[Debian-ELTS-Packages] Extended LTS Paketliste,
[Debian-Fasttrack] Debian Fasttrack,
[Debian-History] Debian Documentation Team: A Brief History of Debian, Chapter 3, Debian Releases,
[Debian-LTS] Debian Long Term Support (LTS),
[Debian-Manpages] Debian Man Page Lookup,
[Debian-Mirror-Status] Debian Mirror Status,
[Debian-Mirror-Doku] Dokumentation zur Auswahl eines Netzwerk-Spiegel-Servers,
[Debian-Package-Basics] What is a Debian package?
[Debian-Paketliste] Debian-Webseite, Paketliste,
[Debian-Paketsuche] Debian-Webseite, Paketsuche,
[Debian-Paket-adept] Historisches Debian-Paket
adept
[Debian-Paket-adequate] Debian-Paket
adequate
[Debian-Paket-alien] Debian-Paket
alien
[Debian-Paket-apper] Debian-Paket
apper
[Debian-Paket-approx] Debian-Paket
approx
[Debian-Paket-apt] Debian-Paket
apt
[Debian-Paket-apt-cacher] Debian-Paket
apt-cacher
[Debian-Paket-apt-cacher-ng] Debian-Paket
apt-cacher-ng
[Debian-Paket-apt-clone] Debian-Paket
apt-clone
[Debian-Paket-apt-cdrom-setup] Debian-Paket
apt-cdrom-setup
[Debian-Paket-apt-dater] Debian-Paket
apt-dater
[Debian-Paket-apt-dpkg-ref] Debian-Paket
apt-dpkg-ref
[Debian-Paket-apt-doc] Debian-Paket
apt-doc
[Debian-Paket-apt-listbugs] Debian-Paket
apt-listbugs
[Debian-Paket-apt-listchanges] Debian-Paket
apt-listchanges
[Debian-Paket-apt-mirror] Debian-Paket
apt-mirror
[Debian-Paket-apt-move] Debian-Paket
apt-move
[Debian-Paket-apt-offline] Debian-Paket
apt-offline
[Debian-Paket-apt-offline-gui] Debian-Paket
apt-offline-gui
[Debian-Paket-apt-rdepends] Debian-Paket
apt-rdepends
[Debian-Paket-apt-setup]
apt-setup
[Debian-Paket-apt-show-versions] Debian-Paket
apt-show-versions
[Debian-Paket-apt-transport-https] Debian-Paket
apt-transport-https
[Debian-Paket-apt-xapian-index] Debian-Paket
apt-xapian-index
[Debian-Paket-ara] Debian-Paket
ara
[Debian-Paket-aria2] Debian-Paket
aria2
[Debian-Paket-autopkgtest] Debian-Paket
autopkgtest
[Debian-Paket-checkinstall] Debian-Paket
checkinstall
[Debian-Paket-check-dfsg-status] Debian-Paket
check-dfsg-status
[Debian-Paket-command-not-found] Debian-Paket
command-not-found
[Debian-Paket-cupt] Debian-Paket
cupt
[Debian-Paket-curl] Debian-Paket
curl
[Debian-Paket-daptup] Debian-Paket
daptup
[Debian-Paket-debarchiver] Debian-Paket
debarchiver
[Debian-Paket-dctrl-tools] Debian-Paket
dctrl-tools
[Debian-Paket-debconf] Debian-Paket
debconf
[Debian-Paket-debconf-utils] Debian-Paket
debconf-utils
[Debian-Paket-debdelta] Debian-Paket
debdelta
[Debian-Paket-debfoster] Debian-Paket
debfoster
[Debian-Paket-deb-gview] Debian-Paket
deb-gview
[Debian-Paket-debhelper] Debian-Paket
debhelper
[Debian-Paket-debianutils] Debian-Paket
debianutils
[Debian-Paket-debian-archive-keyring] Debian-Paket
debian-archive-keyring
[Debian-Paket-debian-goodies] Debian-Paket
debian-goodies
[Debian-Paket-debian-handbook] Debian-Paket
debian-handbook
[Debian-Paket-debian-security-support] Debian-Paket
debian-security-support
[Debian-Paket-debmirror] Debian-Paket
debmirror
[Debian-Paket-deborphan] Debian-Paket
deborphan
[Debian-Paket-debpartial-mirror] Debian-Paket
debpartial-mirror
[Debian-Paket-debsigs] Debian-Paket
debsigs
[Debian-Paket-debsums] Debian-Paket
debsums
[Debian-Paket-debtags] Debian-Paket
debtags
[Debian-Paket-debtree] Debian-Paket
debtree
[Debian-Paket-devscripts] Debian-Paket
devscripts
[Debian-Paket-dgit] Debian-Paket
dgit
[Debian-Paket-dh-make-perl] Debian-paket
dh-make-perl
[Debian-Paket-dietlibc-dev] Debian-Paket
dietlibc-dev
[Debian-Paket-diffoscope] Debian-Paket
diffoscope
[Debian-Paket-dkms] Debian-Paket
dkms
(Dynamic Kernel Modules Support),
[Debian-Paket-dlocate] Debian-Paket
dlocate
[Debian-Paket-docker] Debian-Paket
docker
[Debian-Paket-dphys-config] Debian-Paket
dphys-config
[Debian-Paket-dphys-swapfile] Debian-Paket
dphys-swapfile
[Debian-Paket-dpkg] Debian-Paket
dpkg
[Debian-Paket-dpkg-awk] Debian-Paket
dpkg-awk
[Debian-Paket-dpkg-dev] Debian-Paket
dpkg-dev
[Debian-Paket-dpkg-repack] Debian-Paket
dpkg-repack
[Debian-Paket-dpkg-sig] Debian-Paket
dpkg-sig
[Debian-Paket-dpkg-www] Debian-Paket
dpkg-www
[Debian-Paket-dput] Debian-Paket
dput
[Debian-Paket-dput-ng] Debian-Paket
dput-ng
[Debian-Paket-dwm] Debian-Paket
dwm
[Debian-Paket-eatmydata] Debian-Paket
eatmydata
[Debian-Paket-equivs] Debian-Paket
equivs
[Debian-Paket-etckeeper] Debian-Paket
etckeeper
[Debian-Paket-firmware-misc-nonfree] Debian-Paket
firmware-misc-nonfree
[Debian-Paket-flatpak] Debian-Paket
flatpak
[Debian-Paket-galternatives] Debian-Paket
galternatives
[Debian-Paket-gawk] Debian-Paket
gawk
[Debian-Paket-gcc] Debian-Paket
gcc
[Debian-Paket-gdebi] Debian-Paket
gdebi
[Debian-Paket-gdebi-core] Debian-Paket
gdebi-core
[Debian-Paket-gdebi-kde] Debian-Paket
gdebi-kde
[Debian-Paket-geoip-database] Debian-Paket
geoip-database
[Debian-Paket-git-dpm] Debian-Paket
git-dpm
[Debian-Paket-gkrellm-thinkbat] Debian-Paket
gkrellm-thinkbat
[Debian-Paket-gnome-packagekit] Debian-Paket
gnome-packagekit
[Debian-Paket-goplay] Debian-Paket
goplay
[Debian-Paket-gpg] Debian-Paket
gpg
[Debian-Paket-gui-apt-key] Debian-Paket
gui-apt-key
[Debian-Paket-how-can-i-help] Debian-Paket
how-can-i-help
[Debian-Paket-ia32-libs] Historisches Debian-Paket
ia32-libs
[Debian-Paket-init] Debian-Paket
init
[Debian-Paket-isenkram] Debian-Paket
isenkram
[Debian-Paket-isenkram-cli] Debian-Paket
isenkram-cli
[Debian-Paket-libapache2-mod-authn-yubikey] Debian-Paket
libapache2-mod-authn-yubikey
[Debian-Paket-libapt-inst2.0] Debian-Paket
libapt-inst2.0
[Debian-Paket-libapt-pkg5.0] Debian-Paket
libapt-pkg5.0
[Debian-Paket-libapt-pkg-doc] Debian-Paket
libapt-pkg-doc
[Debian-Paket-libapt-pkg-perl] Debian-Paket
libapt-pkg-perl
[Debian-Paket-lintian] Debian-Paket
lintian
[Debian-Paket-localepurge] Debian-Paket
localepurge
[Debian-Paket-lsb-release] Debian-Paket
lsb-release
[Debian-Paket-lxc] Debian-Paket
lxc
[Debian-Paket-make] Debian-Paket
make
[Debian-Paket-mc] Debian-Paket
mc
[Debian-Paket-mc-data] Debian-Paket
mc-data
[Debian-Paket-mini-dinstall] Debian-Paket
mini-dinstall
[Debian-Paket-module-assistant] Debian-Paket
module-assistant
[Debian-Paket-muon] Debian-Paket
muon
[Debian-Paket-nala] Debian-Paket
nala
[Debian-Paket-neofetch] Debian-Paket
neofetch
[Debian-Paket-netselect] Debian-Paket
netselect
[Debian-Paket-netselect-apt] Debian-Paket
netselect-apt
[Debian-Paket-oci-image-tool] Debian-Paket
oci-image-tool
[Debian-Paket-packagekit] Debian-Paket
packagekit
[Debian-Paket-packagekit-backend-aptcc] Debian-Paket
packagekit-backend-aptcc
[Debian-Paket-packagekit-backend-smart] Debian-Paket
packagekit-backend-smart
[Debian-Paket-packagekit-command-not-found] Debian-Paket
packagekit-command-not-found
[Debian-Paket-packagesearch] Debian-Paket
packagesearch
[Debian-Paket-perl] Debian-Paket
perl
[Debian-Paket-piuparts] Debian-Paket
piuparts
[Debian-Paket-python-apt] Debian-Paket
python-apt
[Debian-Paket-python-software-properties] Debian-Paket
python-software-properties
[Debian-Paket-reportbug] Debian-Paket
reportbug
[Debian-Paket-reprepro] Debian-Paket
reprepro
[Debian-Paket-rpm] Debian-Paket
rpm
[Debian-Paket-rpmlint] Debian-Paket
rpmlint
[Debian-Paket-rsync] Debian-Paket
rsync
[Debian-Paket-sensible-utils] Debian-Paket
sensible-utils
[Debian-Paket-smartpm] Debian-Paket
smartpm
[Debian-Paket-software-properties-common] Debian-Paket
software-properties-common
[Debian-Paket-synaptic] Debian-Paket
synaptic
[Debian-Paket-tasksel] Debian-Paket
tasksel
[Debian-Paket-tasksel-data] Debian-Paket
tasksel-data
[Debian-Paket-tbp] Debian-Paket
tpb
[Debian-Paket-thinkfan] Debian-Paket
thinkfan
[Debian-Paket-tzdata] Debian-Paket
tzdat
[Debian-Paket-ucf] Debian-Paket
ucf
[Debian-Paket-util-linux] Debian-Paket
util-linux
[Debian-Paket-vrms] Debian-Paket
vrms
[Debian-Paket-wajig] Debian-Paket
wajig
[Debian-Paket-wget] Debian-Paket
wget
[Debian-Paket-whatmaps] Debian-Paket
whatmaps
[Debian-Paket-xsnow] Debian-Paket
xsnow
[Debian-Paket-yum] Debian-Paket
yum
[Debian-Paket-zutils] Debian-Paket
zutils
[Debian-Paketierbuch] Debian-Paketierbuch (dbp),
Eintrag von Fastly auf der Debian-Partner-Liste,
[Debian-Policy-Manual] Debian Policy Manual,
[Debian-Policy-Subsections] Debian Policy Manual, Bereich Subsections,
[Debian-Popcon-Graph] Debian Popcon Graphen,
[Debian-Popularity-Contest] Debian Popularity Contest,
[Debian-Ports-Projekt] Debian-Ports Projekt,
[Debian-Project-History] Debian-Projekthistorie,
[Debian-Pure-Blends] Andreas Tille, Ben Armstrong, Emmanouil Kiagias: Debian Pure Blends,
[DebianQA] Debian Quality Assurance (QA) Team,
[Debian-Redirector] The Debian Redirector,
[Debian-Security] Debian-Sicherheitsinformationen,
[Debian-Snapshots] Debian Snapshots,
[Debian-Sources-List-Generator] Debian Sources List Generator,
[Debian-Spickzettel-Github] Debian-Spickzettel,
[Debian-Spiegel-Informationen] Spiegel-Informationen einreichen,
[Debian-Spiegel-Liste] Liste der Debian-Mirror,
[Debian-SSO] Debian Single-Sign-On (SSO),
[Debian-SSO-Alioth] Debian Single-Sign-On (SSO) via Alioth-Konto,
[Debian-udeb] Debian-Dokumentation zu
udeb
[Debian-Release-Notes] Veröffentlichungshinweise zur
Debian-Distribution,
[Debian-Salsa-git-dpm] Git-Repository auf Debian Salsa:
git-dpm
— debian packages in git manager,
[Debian-Social-Contract] Debian-Gesellschaftsvertrag,
[Debian-Virtual-Packages-List] Liste aller offiziell verwendeten virtuellen Pakete,
[Debian-Webseite] Webseite des Debian-Projekts,
[Debian-Wiki-Alternatives] Debian Wiki: Debian Alternatives,
[Debian-Wiki-AptConf] Debian Wiki: Eintrag zu AptConf,
[Debian-Wiki-ARM-EABI-Port] Debian Wiki: ARM EABI Port,
[Debian-Wiki-Automated-Installation] Debian Wiki: Automated Installation,
[Debian-Wiki-chroot] Debian Wiki:
chroot
(deutschsprachig),
[Debian-Wiki-cupt] Debian Wiki: Eintrag zu
cupt
[Debian-Wiki-Debian-Entwickler] Debian Wiki: Wie werde ich ein Debian-Entwickler?,
[Debian-Wiki-Maintainer] Debian Wiki: Debian Maintainer,
[Debian-Wiki-FHS] Debian Wiki: Filesystem Hierarchy Standard (FHS),
[Debian-Wiki-Debian-GNUHurd] Debian Wiki: Debian GNU/Hurd,
[Debian-Wiki-Debian-GNUkFreeBSD] Debian Wiki: Debian GNU/kFreeBSD,
[Debian-Wiki-Debian-Repository-Format] Debian Wiki: Debian Repository Format,
[Debian-Wiki-DiskImage] Debian Wiki: Diskimage,
[Debian-Wiki-FAI] Debian Wiki: FAI (Fully Automatic Installation) for Debian GNU/Linux,
[Debian-Wiki-git-dpm-packaging] Debian Wiki: Maintaining Debian source packages in git with git-dpm,
[Debian-Wiki-how-can-i-help] Debian Wiki: How Can I Help?,
[Debian-Wiki-multiarch] Debian Wiki: Debian multiarch support,
[Debian-Wiki-SecureApt] Debian Wiki: SecureApt,
[Debian-Wiki-Skype] Debian Wiki: Skype,
[Debian-Wiki-WNPP] Debian Wiki: Work-Needing and Prospective Packages (WNPP),
[Debian-WNPP-RFP-apt-fast] Debian Request for Package: apt-fast,
[debtree-Projektseite] Webseite zum debtree-Projekt,
[Deepin] Deepin,
[DEP-8] Debian Enhancement Proposal
DEP 8
: automatic as-installed package testing,
[DFSG] Debian Free Software Guidelines (DFSG),
[DilOS] DilOS,
[dinstall-status] dinstall Status,
[DNF-Dokumentation] Dokumentation zu Dandified YUM (DNF),
[Docker] Docker,
[docpurge] docpurge,
[dpkg-Kumar] Avishek Kumar: 15 Practical Examples of "dpkg commands" for Debian Based Distros,
[dpmb-github] Debian Package Management Book, GitHub-Repository,
[DraugerOS] Drauger OS,
[Drilling-APT-Pinning-LinuxUser] Thomas Drilling: Festgenagelt. Tricks zum Mischen von Debian-Releases, LinuxUser 06/2012, LinuxNewMedia AG, München, 2012, S. 35ff.,
[Drilling-Checkinstall-LinuxUser] Thomas Drilling: Gut geschnürt. Paketbau in Eigenregie mit Checkinstall, LinuxUser 06/2012, LinuxNewMedia AG, München, 2012, S. 38ff.,
[DysonOS] Dyson OS,
[Edubuntu] Edubuntu,
[Emmabuntus] Emmabuntüs,
[FAI-Bornemann-Karg] Steffen Bornemann, Christoph Karg: Blitzstart. Automatisches System-Deployment mit FAI, Linux-Magazin 01/09, S. 58ff,
[FAI-Cloud-Support] Ulrich Bantle: FAI 5.2 bringt Cloud-Support, Linux-Magazin,
[FAI-Projekt] FAI - Fully Automatic Installation,
[FHS-Linux-Foundation] Filesystem Hierarchy Standard (FHS), Linux Foundation,
[Finkproject] Fink-Projekt,
[Finnix] Finnix,
[Flatpak] Flatpak,
[foreman] Foreman,
[Foster-Johnson-RPM-Guide] Eric Foster-Johnson, Stuart Ellis und Ben Cotton: RPM Guide, 2005/2011, Fedora Project Contributors, Edition 0,
[FreeBSD] FreeBSD-Projekt,
[FreeCode] FreeCode,
[Freexian] Freexian,
[Freexian-ELTS] Debian Extended LTS by Freexian,
[gambaru-rc-alert] gambaru.de: Wie man veröffentlichungskritische Bugs in Debian beseitigt,
[gdebi] Gdebi,
[geoiptool] Geo IP Tool,
[GitHub] GitHub,
[github-issue] Issue auf GitHub,
[github-pull-request] Pull-Request mitsamt Patch auf GitHub,
[GNU-Linux-Distribution-Timeline] GNU Linux Distribution Timeline,
[GObject-Introspection] GObject Introspection Middleware,
[GoedlDebian] Robert Gödl: Debian GNU/Linux 12: Der umfassende Praxiseinstieg, mitp Professional, ISBN-13: 978-3747507698
[gr-non-free-firmware] General Resolution: non-free firmware,
[Graphviz] Graphviz — Graph Visualization Software,
[Grml] Grml,
[Gtkorphan] Gtkorphan, Webseite zum Programm,
[Hackerfunk] Hackerfunk Zürich, Folge 65, Fachliteratur Schreiben,
[Hertzog-Mas-Debian-Administrators-Handbook] Raphael Hertzog, Roland Mas: The Debian Administrator’s Handbook, 2012, ISBN 979-10-91414-00-5,
[Hertzog-Obsolete-Packages] Raphael Hertzog: Debian Cleanup Tip #2: Get rid of obsolete packages,
[Hofmann-Debtags-LinuxUser] Frank Hofmann: Dschungelführer. Pakete zielgenau finden mit Debtags, LinuxUser 06/2012, LinuxNewMedia AG, München, 2012, S. 22ff.,
[Hofmann-Debtags-Vortrag] Frank Hofmann: Debian-Pakete zielgenau finden mit Debtags, Vortrag im Rahmen des Linuxday Dornbirn, November 2013,
[Hofmann-Osterried-Alien-LinuxUser] Frank Hofmann, Thomas Osterried: Gestaltwandler. Programmpakete richtig konvertieren, LinuxUser 1/2010, LinuxNewMedia AG, München, 2010, S. 32ff.,
[Hofmann-Smartpm-LinuxUser] Frank Hofmann: Mit allen Extras. Debian-Pakete verwalten mit dem Smart Package Manager, LinuxUser 07/2013, LinuxNewMedia AG, München, 2013, S. 68ff.,
[Hofmann-Webseite] Frank Hofmanns Webseite,
[Hofmann-Winde-Aptsh-LinuxUser] Frank Hofmann, Thomas Winde: Zentraler Zugangspunkt. Komfortabel Pakete managen mit der Apt-Shell, LinuxUser 06/2012, LinuxNewMedia AG, München, 2012, S. 30ff.,
[Hurd] GNU Hurd Projekt,
[Huy-Tran-Apt-Mirror] Huy Tran: How to update and upgrade with fastest mirror from the command line,
[ipbrick] IPBRICK,
[ipcop] IPCop,
[ipfire] IPFire,
[ipkg] Itsy Package Management System (IPKG) bei Wikipedia,
[Java-Apt] Java Annotation Processing Tool,
[jumpstart] Jumpstart (Sun OS), Wikipedia,
[Jurzik-Debian-Handbuch] Heike Jurzik: Debian GNU/Linux: Das umfassende Handbuch, Verlag: Galileo Computing; 5. Auflage, 2013, ISBN-13: 978-3-8362-2661-5
[Kali-Linux] Kali Linux,
[Kemp-dh-make-perl] Steve Kemp: Building Debian packages of Perl modules,
[Kemp-dget] Steve Kemp: Downloading Debian source packages easily,
[Keryx] Keryx im Ubuntu Launchpad,
[kickstart-webseite] Kickstart,
[Knoppix] Knoppix,
[Kofler-Linux-2013] Michael Kofler: Linux 2013. Das Desktop- und Server-Handbuch für Ubuntu, Debian, CentOS und Co. (Open Source Library), Addison-Wesley Verlag, 2013, ISBN 978-3827332080, S. 480-490, S. 1112-1115
[Krafft-Debian-System] Martin F. Krafft: Das Debian-System. Konzepte und Methoden, Open Source Press München, 2006, deutsche Ausgabe, Erstauflage, S.
140 f.
[Krafft-Debian-System144] Ebd., S. 144 ff.
[Krafft-Debian-System137ff] Ebd., Kapitel 5, S. 137-294
[Kubuntu] Kubuntu,
[LambAptHTTPS] Chris Lamb: Why does APT not use HTTPS?,
[LernStick] LernStick, Fachhochschule Nordwestschweiz, Solothurn,
Trainings der Linux Foundation,
[libelektra] Libelektra,
[LiMux] LiMux — Linux in der Stadtverwaltung München,
[Lintian] Lintian-Projekt,
[LinuxHardware] LinuxHardware,
[LinuxMint] Linux Mint,
[LinuxMint-apt], LinuxMint: APT for Newbies,
[localepurge]
localepurge
, Projektseite im Linux Wiki,
[Loschwitz-Sourceformat] Martin Loschwitz: Zusammenpacken! Das neue Sourceformat für Debian-Pakete, Linux-Magazin 06/2011,
[lpic-101] Linux Professional Institute, Unterlagen für LPIC 101,
[lug.berlin] Das Berliner Community-Portal lug.berlin,
[LXC] Linux Containers (LXC),
[Maemo] Maemo Community,
[Mageia-urpmi]
urpmi
— Werkzeuge zur Paketverwaltung bei Mageia, Mageia Wiki,
[Mandriva-Wiki] Mandriva Control Center im Mandriva Wiki,
[Maassen-LPIC-1] Harald Maaßen: LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung, Rheinwerk Computing, Bonn, 5. Auflage, 2018, ISBN 978-3-8362-6375-7,
[mc] Midnight Commander,
[MeeGo] MeeGo,
[mime-applications-associations] MIME Application Associations,
[mime-applications-associations-default-applications] Default Applications,
[minidak]
minidak
[mintbackup] mintbackup,
[modalias] modalias im ArchWiki,
[MXLinux] MX Linux,
[Naumann-Abakus-Internet] Dr. Friedrich Naumann: Vom Abakus zum Internet: die Geschichte der Informatik. Darmstadt, Primus-Verlag, 2001, ISBN 3-89678-224-X
[Ncurses] Ncurses-Projektseite beim GNU-Projekt,
[Neo900] Neo900-Projekt,
[netselect-apt-ubuntu] Netselect-Apt und Ubuntu,
[NexentaOS-Illumian] Wikipedia-Eintrag zu Nexenta OS und Illumian,
[nixcraft-apt-get]
apt-get
-Spickzettel im Nixcraft-Blog,
[nixcraft-blog] Nixcraft-Blog,
[nixcraft-dpkg]
dpkg
-Spickzettel im Nixcraft-Blog,
[OpenContainer] Open Container Format (OCF),
[Openprinting] OpenPrinting,
[OpenMoko] OpenMoko-Projekt,
[openqrm] OpenQRM,
[OpenSolaris] Open Solaris, Wikipedia,
[opkg] OpenMoko Package Format,
[PackageKit] Webseite zu PackageKit,
[Pacman-Rosetta] Pacman Rosetta — Vergleich der Kommandozeilenparameter von
pacman
yum
apt-get
rug
zypper
und
emerge
, ArchLinux-Wiki,
[PCLinuxOS] PCLinuxOS,
[pfsense] pfSense,
[Piuparts] Piuparts (Package Installation, UPgrading And Removal Testing Suite),
[Pixar] Pixar Animation Studios,
[pkgs] Pkgs,
[Plura-lts] Michael Plura: Am Leben halten, ix 12/2014,
[proxyArch] Proxy-Einstellungen im Wiki zu Arch Linux,
[PureOS] PureOS,
[Purism] Purism,
[RaspberryPi] Webseite zur Hardwareplattform Raspberry Pi,
[RaspberryPiOS] Raspberry Pi OS,
[Raspbian] Debian für das Raspberry Pi,
[repology] Repology,
[ReproducibleBuilds] Reproducible Builds,
[RFC1928] RFC 1928: Standard For The Format Of Text Messages, IETF,
[RFC822] RFC 822: Standard For The Format Of Text Messages, IETF,
[Ritesh-apt-offline] Ritesh Sarraf: Offline Package Management for
APT,
[RM-software-center] Entfernung von Ubuntu Software Center aus Debian,
[RMLL] Rencontres Mondiales du Logiciel Libre,
[rpmfind] Rpmfind,
[rpmdrake]
rpmdrake
[rpmorphan-rpm]
rpmorphan
[rpmseek] Rpmseek,
[RPM-Canepa] Gabriel Cánepa: Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude and Zypper – Part 9,
[RPM-Gite] Vivek Gite: CentOS / RHEL: See Detailed History Of yum Commands,
[RPM-Salve] Ravi Salve: 20 Practical Examples of RPM Commands in Linux,
[RPM-Webseite] Dokumentation auf rpm.org,
[RPM-Verify] When Verification Fails — rpm -V Output,
[Schnober-Checkinstall-LinuxUser] Carsten Schnober: Wie am Schnürchen. Debian-Pakete bauen von einfach bis anspruchsvoll, LinuxUser 02/2008, LinuxNewMedia AG, München, 2008, S. 88ff.,
[screenshots.debian.net] Screenshot-Sammlung von Debian- und Ubuntu-Paketen,
[Sentinel4Mobile] Sentinel4Mobile Berlin, Werner Heuser,
[Siduction] Siduction, http:s//siduction.org/
[SingleClickInstall]
[Skolelinux] Skolelinux,
[Skype] Skype,
[Slax] Slax,
[SmartPM] Smart Package Manager, Projektseite,
Entfernung von SmartPM aus Debian,
[SOCKS] SOCKS-Proxy, Wikipedia,
[Software-Properties] Projekt Software Properties,
[Solaris] Solaris, Wikipedia,
[SourceForge] SourceForge,
[spacewalk] Spacewalk,
[Stackexchange-LTS] How to work around „Release file expired“
problem on a local mirror,
[stampedeLinux] Stampede Linux,
[Stapelberg-Debian-Repo] Michael Stapelberg: Kurz-Howto: Eigenes
Debian-Repository aufbauen,
[SteamOS] Steam OS,
[StormOS] StormOS, Wiki-Seite im Debian Derivative Census,
[Suter-apt-offline] Samuel Suter: apt offline benutzen,
[SWITCH] SWITCH, das Hochleistungsnetzwerk der Schweizer Hochschulen,
[sysgetGitHub] sysget auf GitHub,
[TAILS] The Amnesic Incognito Live System (TAILS),
[TinyCoreLinux] Tiny Core Linux,
[TorProject] Tor Project,
[ToyStory] Toy Story im Disney Wiki,
[Turnschuhnetzwerk], Turnschuhnetzwerk, Wikipedia,
[Ubuntu] Ubuntu Linux,
[UbuntuBSD] UbuntuBSD,
[Ubuntu-apturl] AptURL im Ubuntu Apps Directory,
[Ubuntu-Landscape] Ubuntu Landscape System Management,
[Ubuntu-Launchpad] Ubuntu Launchpad,
[Ubuntu-Mirrors] Official Archive Mirrors for Ubuntu,
[Ubuntu-One] Ubuntu One,
[Ubuntu-One-Wikipedia] Ubuntu One, Wikipedia-Eintrag,
[Ubuntu-Paket-apt-clone] Ubuntu-Paket
apt-clone
[Ubuntu-Paket-pacapt] Ubuntu-Paket
pacapt
[Ubuntu-Paket-software-center] Ubuntu-Paket
software-center
[Ubuntu-Paket-system-config-kickstart] Ubuntu-Paket
system-config-kickstart
[Ubuntu-Paket-ubumirror] Ubuntu-Paket
ubumirror
[Ubuntu-Paket-ubuntu-keyring] Ubuntu-Paket
ubuntu-keyring
[Ubuntu-Snappy] Ubuntu Package Format Snappy,
[Ubuntu-Snappy-Projekt] Ubuntu Package Format Snappy (Projektseite),
[Ubuntu-Software-Center] Ubuntu Software Center, Projektseite/Wiki,
[Ubuntu-Sources-List-Generator] Ubuntu Sources List Generator,
[Ubuntu-Wiki-Proxy] Ubuntu Wiki: Proxy Server,
[Ultimate-Debian-Database] Ultimate Debian Database,
[UCS] Univention Corporate Server (UCS),
[univention-errata] Aktualisierungen bei UCS,
[VirtualBox] VirtualBox,
[Vogt-apturl] Michael Vogt: apturl bei Ubuntu Users,
[Vogt-Apt-1.0] Michael Vogt: apt 1.0,
[Vogt-Apt-Mirror] Michael Vogt: The apt mirror method,
[Vogt-gdebi] Michael Vogt: Using gdebi to install build-dependencies,
[wajig-Webseite] Webseite des wajig-Projekts,
[Watson-App-Design] Colin Watson: App installer design: click
packages,
[Wheezy-Paketliste] Paketliste zu Debian
Wheezy
[Wizards-of-Foss] Wizards of FOSS, Berlin,
[Wizards-of-Foss-Blog] Blog der Wizards of FOSS,
[xfce] XFCE Desktop-Umgebung,
[xtronics-Wiki] Wiki bei xtronics,
[xubuntu-apt-offline] xubuntu Offline Documentation,
[YUM] Yellowdog Updater Modified (YUM), Projektseite,
[YUM-Salve] Ravi Salve: 20 Linux YUM (Yellowdog Updater Modified) Commands for Package Management,
[Zypper] Zypper, Projektseite,
Stichwortverzeichnis
Symbole
-,
Anzahl der Hops begrenzen
--add-architecture,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--all,
Veröffentlichungen
Dateien überprüfen mit debsums
Bereits installierte Pakete mit adequate prüfen
Ergänzende Bugreports mit apt-listchanges herausfiltern
Welche der von mir genutzten Pakete benötigen Hilfe?
--all-packages,
deborphan
--anypatch,
Fallstricke und Besonderheiten bei der Umwandlung
--arch,
Liste der Paketquellen mit netselect-apt generieren lassen
--audit,
Bestehende Konfiguration anwenden
--auto,
Pakete mit dpkg-split aufteilen
--autoclean-on-startup,
Automatisch und regelmäßig Aufräumen
--batch,
Konfiguration für dput
--bug-reports,
Benutzung im Detail
--bugs,
Bugreports mit apt-listbugs lesen
--bump,
Fallstricke und Besonderheiten bei der Umwandlung
--bundle,
Benutzung im Detail
--cdrom add,
Physische Installationsmedien mit apt-cdrom einbinden
--changed,
Dateien überprüfen mit debsums
--checkonly,
Mit debconf-set-selections
--checksig,
Paketsignatur überprüfen
--clean-on-startup,
Automatisch und regelmäßig Aufräumen
--color auto,
lintian verwenden
--color regular,
Nach Muster in einem Paket suchen
--config,
Konfigurationsdateien eines Pakets anzeigen
Dateien überprüfen mit debsums
Standardprogramm ändern
--config-file,
Konfiguration von APT anzeigen
--configure,
dpkg
Bestehende Konfiguration anwenden
--contents,
Untere Ebene
dpkg
Paketinhalte anzeigen
dpkg -c deb-Datei
Durchführung
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
--country,
Liste der Paketquellen mit netselect-apt generieren lassen
--debtags,
Release-kritische Fehler mit rc-alert finden
--default-key,
debsigs benutzen
--depotdir,
Pakete mit dpkg-split aufteilen
--description,
Fallstricke und Besonderheiten bei der Umwandlung
--destdir,
Ein Softwarepaket nur herunterladen
--discard,
Pakete mit dpkg-split aufteilen
--display,
Standardprogramme anzeigen
--display-experimental,
lintian verwenden
--display-format,
aptitude
--display-info,
lintian verwenden
--download-only install,
Paketdatei im lokalen Paketcache speichern
--empty,
Konfiguration von APT anzeigen
--erase,
Paket löschen / entfernen
--explain,
Recherche mit check-dfsg-status (vormals vrms)
--extract,
Mit dpkg die Installationsstruktur herausfinden
--field,
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
grep-available und grep-status
Suche mit grep-available und grep-status
Abhängigkeiten anzeigen
--find-config,
deborphan
--fix-broken,
Begutachtung
--fixperms,
Fallstricke und Besonderheiten bei der Umwandlung
--force,
debfoster
--force-help,
Aktionen mit dpkg erzwingen
--format,
Konfiguration von APT anzeigen
--freshen,
Bereits bestehende Softwarepakete erneuern
--frontend,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--ftp,
Liste der Paketquellen mit netselect-apt generieren lassen
--full,
Das Paket bauen
--generate,
Fallstricke und Besonderheiten bei der Umwandlung
--get-selections,
Mit dpkg
Standardprogramme anzeigen
Mit dpkg
--group-by,
Kommandozeile
--guess,
deborphan
--gui,
Smart Package Management (SmartPM)
--help,
Konfiguration von APT anzeigen
Empfehlungen mittels command-not-found
Software selbst übersetzen und als deb-Paket einspielen
Fallstricke und Besonderheiten bei der Umwandlung
Pakete mit dpkg-split aufteilen
--ignore-case,
grep-available und grep-status
Suche mit grep-available und grep-status
--ignore-default-rules,
debfoster
--include-dist-op,
Release-kritische Fehler mit rc-alert finden
--include-dists,
Release-kritische Fehler mit rc-alert finden
--info,
dpkg -I deb-Datei
Durchführung
lintian verwenden
Pakete mit dpkg-split aufteilen
Paketstatus anzeigen
--install,
Untere Ebene
Umgewandelte Pakete einspielen
Pakete umwandeln und einspielen
Verzeichnis mit Paketen
Neue Softwarepakete installieren
--install --nodeps,
Neue Softwarepakete installieren
--install-packages,
Benutzung im Detail
--install=no,
Software selbst übersetzen und als deb-Paket einspielen
--install=yes,
Software selbst übersetzen und als deb-Paket einspielen
--installer,
Konfiguration für alle Pakete auslesen
--invert-match,
grep-available und grep-status
Suche mit grep-available und grep-status
--join,
Pakete mit dpkg-split aufteilen
--keep-version,
Fallstricke und Besonderheiten bei der Umwandlung
--libdevel,
deborphan
--lines,
dpigs
--list,
dpkg
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
dpkg
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
Standardprogramme anzeigen
Mit dpkg
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
Alle installierten Pakete auflisten
Einzelpaket auflisten
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
--list-tasks,
tasksel
--listfiles,
Untere Ebene
dpkg
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
dpkg -L Paketname
Alle Dateien eines installierten Pakets anzeigen
--listq,
Pakete mit dpkg-split aufteilen
--load-avail,
Untere Ebene
--merge-avail,
Grundlegendes Vorgehen
--msdos,
Pakete mit dpkg-split aufteilen
--multiversion,
dpkg-scanpackages
--no-apt-file,
Empfehlungen mittels command-not-found
--no-download install,
Benötigte Pakete vorher explizit herunterladen
Neue Softwarepakete installieren
--no-download update,
Einen Eintrag auf syntaktische Korrektheit prüfen
--no-empty,
Konfiguration von APT anzeigen
--no-guess,
deborphan
--no-show-section,
deborphan
--nonfree,
Liste der Paketquellen mit netselect-apt generieren lassen
--nopatch,
Fallstricke und Besonderheiten bei der Umwandlung
--npquiet,
Pakete mit dpkg-split aufteilen
--old,
Welche der von mir genutzten Pakete benötigen Hilfe?
--option,
Konfiguration von APT anzeigen
--outfile,
Liste der Paketquellen mit netselect-apt generieren lassen
--output,
Pakete mit dpkg-split aufteilen
--output=Ausgabedatei,
Release-kritische Fehler mit popbugs finden
--partsize,
Pakete mit dpkg-split aufteilen
--patch,
Fallstricke und Besonderheiten bei der Umwandlung
--pedantic,
lintian verwenden
--pending,
Bestehende Konfiguration anwenden
--pin-priority,
Bugreports mit apt-listbugs lesen
--print-architecture,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--print-foreign-architectures,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--print-uris,
Offline-Verwaltung mit apt-get und wget
--purge,
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
--purge remove,
deborphan
Paket löschen / entfernen
--purge-unused,
APT und aptitude
--query,
Standardprogramme anzeigen
Einzelpaket auflisten
--query --configfiles,
Alle Konfigurationsdateien eines Pakets anzeigen
--query --docfiles,
Alle Dokumentationsdateien eines Pakets anzeigen
--query --file,
Paket identifizieren, aus dem eine Datei stammt
--query --info,
Paketstatus anzeigen
--query --info --package,
Paketstatus anzeigen
--query --list,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
--query --package,
Einzelpaket auflisten
--query --package --list,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
--quiet,
debfoster
Welche der von mir genutzten Pakete benötigen Hilfe?
Offline-Verwaltung mit apt-get und wget
--reinstall,
Pakete erneut installieren
Ein Softwarepaket erneut installieren
--remove,
Untere Ebene
Fall 1: Paket einfach löschen
Paket löschen / entfernen
--remove-architecture,
Multiarch einsetzen
--rename,
Physische Installationsmedien mit apt-cdrom einbinden
--requires,
Abhängigkeiten anzeigen
--resolve,
Ein Softwarepaket nur herunterladen
Abhängigkeiten anzeigen
--reverse,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--satisfy,
Cupt
--schedule-only,
Vormerkungen über die Kommandozeile durchführen
--scripts,
Fallstricke und Besonderheiten bei der Umwandlung
--search,
Untere Ebene
dpkg
Paket zu Datei finden
Suche in bereits installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
--set-selections,
Mit dpkg
--severity,
Bugreports mit apt-listbugs lesen
--shell,
Smart Package Management (SmartPM)
--show,
Ausgabe minimieren
--show-dependents,
debfoster
--show-depends,
debfoster
--show-downgrade,
Bugreports mit apt-listbugs lesen
--show-field,
grep-available und grep-status
Suche mit grep-available und grep-status
--show-keepers,
debfoster
--show-orphans,
debfoster
--show-priority,
deborphan
--show-section,
deborphan
--show-size,
deborphan
--show-summary why,
Warum ist ein Paket installiert
--showformat,
Ausgabe minimieren
--sign,
dpkg-sig verwenden
debsigs benutzen
--since,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--single,
Fallstricke und Besonderheiten bei der Umwandlung
--sources,
Liste der Paketquellen mit netselect-apt generieren lassen
--sparse,
Recherche mit check-dfsg-status (vormals vrms)
--split,
Pakete mit dpkg-split aufteilen
--stats,
Bugreports mit apt-listbugs lesen
--status,
Untere Ebene
dpkg
dpkg -s Paketname und dlocate -s Paketname
Konfigurationsdateien eines Pakets anzeigen
Einzelpaket auflisten
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
--tags,
Bugreports mit apt-listbugs lesen
--tags broken-symlink,
Bereits installierte Pakete mit adequate prüfen
--tags missing-copyright-file,
Bereits installierte Pakete mit adequate prüfen
--tags program-name-collision,
Bereits installierte Pakete mit adequate prüfen
--target,
Fallstricke und Besonderheiten bei der Umwandlung
--target-release,
Paket über die Angabe der Veröffentlichung austauschen
--task-desc,
tasksel
--task-packages,
tasksel
--test,
tasksel
Fallstricke und Besonderheiten bei der Umwandlung
--threads,
Benutzung im Detail
--to-deb,
Durchführung
--to-pkg,
Durchführung
--to-rpm,
Durchführung
deb-Pakete in rpm-Strukturen
--to-slp,
Durchführung
--to-tgz,
Durchführung
--type,
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
--type=debian,
Software selbst übersetzen und als deb-Paket einspielen
--type=rpm,
Software selbst übersetzen und als deb-Paket einspielen
--type=slackware,
Software selbst übersetzen und als deb-Paket einspielen
--unchecked,
Paket in das Repository hochladen
--update,
Benutzung im Detail
--update-avail,
Grundlegendes Vorgehen
--upgrade,
Benutzung im Detail
Bereits bestehende Softwarepakete erneuern
--verbose,
debfoster
Fallstricke und Besonderheiten bei der Umwandlung
Mit debconf-set-selections
lintian verwenden
Ergänzende Bugreports mit apt-listchanges herausfiltern
--verbose why,
Warum ist ein Paket installiert
--verify,
Dateien mit dpkg -V überprüfen
Die Komponenten des Pakets kryptographisch signieren
dpkg-sig verwenden
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
--verify --all,
Paket auf Veränderungen prüfen
--verify --package,
Paket auf Veränderungen prüfen
--verify-format,
Dateien mit dpkg -V überprüfen
--version,
Konfiguration von APT anzeigen
Fallstricke und Besonderheiten bei der Umwandlung
Pakete mit dpkg-split aufteilen
--veryverbose,
Fallstricke und Besonderheiten bei der Umwandlung
--which,
Ergänzende Bugreports mit apt-listchanges herausfiltern
-?,
Pakete mit dpkg-split aufteilen
-a,
Veröffentlichungen
Liste der Paketquellen mit netselect-apt generieren lassen
Bekannte Paketnamen auflisten
Einsatz von dglob
Dateien überprüfen mit debsums
Bestehende Konfiguration anwenden
debfoster
deborphan
Ergänzende Bugreports mit apt-listchanges herausfiltern
Welche der von mir genutzten Pakete benötigen Hilfe?
Pakete mit dpkg-split aufteilen
-af,
Paketinhalte anzeigen
Einsatz von dglob
-b,
Ausführbare Dateien anzeigen
Konfiguration für dput
-B,
Bugreports mit apt-listbugs lesen
-c,
Untere Ebene
Liste der Paketquellen mit netselect-apt generieren lassen
Daten im Paket
dpkg
Paketinhalte anzeigen
dpkg -c deb-Datei
Dateien überprüfen mit debsums
Konfiguration von APT anzeigen
Durchführung
Fallstricke und Besonderheiten bei der Umwandlung
Mit debconf-set-selections
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
-C,
Bestehende Konfiguration anwenden
-ce,
Dateien überprüfen mit debsums
-conf,
Konfigurationsdateien eines Pakets anzeigen
-d,
Recherche mit apt-rdepends
debfoster
Suche mittels debtags
Durchführung
Release-kritische Fehler mit rc-alert finden
Pakete mit dpkg-split aufteilen
-D,
Software selbst übersetzen und als deb-Paket einspielen
Bugreports mit apt-listbugs lesen
-d add,
Physische Installationsmedien mit apt-cdrom einbinden
-d install,
Paketdatei im lokalen Paketcache speichern
-du,
Installationsgröße eines Pakets
-e,
Recherche mit check-dfsg-status (vormals vrms)
Konfigurationsdateien eines Pakets anzeigen
Dateien überprüfen mit debsums
debfoster
Paket löschen / entfernen
-E,
lintian verwenden
-e --nodeps,
Paket löschen / entfernen
-f,
Liste der Paketquellen mit netselect-apt generieren lassen
Ausgabe minimieren
Statusdaten von dpkg
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Paketinhalte anzeigen
Einsatz von dglob
Manpages anzeigen
Manpages aus noch nicht installierten Paketen anzeigen
Begutachtung
debfoster
Aktionen mit apt erzwingen
Ergänzende Bugreports mit apt-listchanges herausfiltern
Abhängigkeiten anzeigen
-F,
dpkg -s Paketname und dlocate -s Paketname
aptitude
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
Suche mit grep-available und grep-status
Welche Pakete betreut ein Debian-Maintainer
Bereits bestehende Softwarepakete erneuern
Abhängigkeiten anzeigen
-F Package,
Ausgabe der Paketabhängigkeiten mit grep-status
-g,
Fallstricke und Besonderheiten bei der Umwandlung
-H,
dpigs
-h,
Statusdaten von dpkg
In Paketen blättern mittels dpkg-www
Konfiguration von APT anzeigen
Empfehlungen mittels command-not-found
Fallstricke und Besonderheiten bei der Umwandlung
-i,
Untere Ebene
grep-available und grep-status
Suche mit grep-available und grep-status
Nach Muster in einem Paket suchen
Wiederinstallieren bereits installierter Pakete
debfoster
Mittels dpkg und APT
Umgewandelte Pakete einspielen
Pakete umwandeln und einspielen
Verzeichnis mit Paketen
lintian verwenden
Neue Softwarepakete installieren
-I,
Einen geschützten Paketmirror abfragen
dpkg -I deb-Datei
lintian verwenden
Pakete mit dpkg-split aufteilen
Paketstatus anzeigen
-i --nodeps,
Neue Softwarepakete installieren
-ihv,
Paket austauschen
Neue Softwarepakete installieren
-j,
Pakete mit dpkg-split aufteilen
-k,
Liste der installierten Kernelpakete anzeigen
Die Komponenten des Pakets kryptographisch signieren
dpkg-sig verwenden
debsigs benutzen
Fallstricke und Besonderheiten bei der Umwandlung
-K,
Liste der installierten Kernelpakete anzeigen
Paketsignatur überprüfen
-L,
Debian-Architekturen
Untere Ebene
dpkg
In Paketen blättern mittels dpkg-www
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
dpkg -L Paketname
dlocate -L Paketname
Alle Dateien eines installierten Pakets anzeigen
-l,
Was ist Paketmanagement
Untere Ebene
dpkg
Bekannte Paketnamen auflisten
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
Vollständige Paketliste anzeigen
Liste anhand von Filtern einschränken
dpkg
In Paketen blättern mittels dpkg-www
Nach Muster in einem Paket suchen
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
Mit dpkg
Pakete mit dpkg-split aufteilen
Alle installierten Pakete auflisten
Einzelpaket auflisten
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
-ls,
Paketinhalte anzeigen
dlocate -ls Paketname
-lsbin,
Ausführbare Dateien anzeigen
-lsconf,
Konfigurationsdateien eines Pakets anzeigen
-lsman,
Manpages erstöbern
-m,
Manpages anzeigen
Manpages erstöbern
dpkg-scanpackages
-man,
Manpages anzeigen
Manpages erstöbern
-md5check,
Dateien paketbezogen mit dlocate überprüfen
Paket auf Veränderungen prüfen
-md5sum,
MD5-Summen von Dateien mit dlocate anzeigen
Paket auf Veränderungen prüfen
-n,
Liste der Paketquellen mit netselect-apt generieren lassen
Bekannte Paketnamen auflisten
dpigs
Suche mittels debtags
Empfehlungen mittels command-not-found
-n),
Bekannte Paketnamen auflisten
-o,
Liste der Paketquellen mit netselect-apt generieren lassen
Konfiguration von APT anzeigen
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Release-kritische Fehler mit popbugs finden
Release-kritische Fehler mit rc-alert finden
Welche der von mir genutzten Pakete benötigen Hilfe?
Pakete mit dpkg-split aufteilen
-o dir::cache::archives,
Offline-Verwaltung mit apt-get und wget
-P,
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
Fall 4: Paket samt Konfigurationsdateien deinstallieren
deborphan
Bugreports mit apt-listbugs lesen
Paket löschen / entfernen
Abhängigkeiten anzeigen
-p,
Manpages aus noch nicht installierten Paketen anzeigen
apt-show-source verwenden
Durchführung
-PX,
grep-available und grep-aptavail benutzen
-q,
debfoster
Welche der von mir genutzten Pakete benötigen Hilfe?
Offline-Verwaltung mit apt-get und wget
Einzelpaket auflisten
-Q,
Pakete mit dpkg-split aufteilen
-qa,
Alle installierten Pakete auflisten
Einzelpaket auflisten
-qa --last,
Alle installierten Pakete auflisten
-qc,
Alle Konfigurationsdateien eines Pakets anzeigen
-qd,
Alle Dokumentationsdateien eines Pakets anzeigen
-qf,
Paket identifizieren, aus dem eine Datei stammt
-qi,
Paketstatus anzeigen
-qip,
Paketstatus anzeigen
-ql,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
-qp,
Einzelpaket auflisten
-qpl,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
-qpR,
Abhängigkeiten anzeigen
-qq,
Offline-Verwaltung mit apt-get und wget
-qR,
Abhängigkeiten anzeigen
-qv,
debfoster
-r,
Untere Ebene
Physische Installationsmedien mit apt-cdrom einbinden
Recherche mit apt-rdepends
Fall 1: Paket einfach löschen
Durchführung
deb-Pakete in rpm-Strukturen
Paket löschen / entfernen
Abhängigkeiten anzeigen
-R,
Software selbst übersetzen und als deb-Paket einspielen
-s,
Untere Ebene
Liste der Paketquellen mit netselect-apt generieren lassen
dpkg
dpkg -s Paketname und dlocate -s Paketname
Recherche mit check-dfsg-status (vormals vrms)
grep-available und grep-aptavail benutzen
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
In Paketen blättern mittels dpkg-www
Suche mit grep-available und grep-status
Welche Pakete betreut ein Debian-Maintainer
Konfigurationsdateien eines Pakets anzeigen
debfoster
deborphan
Suche mittels debtags
Fallstricke und Besonderheiten bei der Umwandlung
Bugreports mit apt-listbugs lesen
Pakete mit dpkg-split aufteilen
Einzelpaket auflisten
Abhängigkeiten anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
-S,
Untere Ebene
dpkg
dpigs
grep-available und grep-status
In Paketen blättern mittels dpkg-www
Paket zu Datei finden
Suche in bereits installierten Paketen
Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
Software selbst übersetzen und als deb-Paket einspielen
Bugreports mit apt-listbugs lesen
Pakete mit dpkg-split aufteilen
Paket identifizieren, aus dem eine Datei stammt
-stdout,
In Paketen blättern mittels dpkg-www
-t,
Binärpakete
tasksel
Einbindung in den Paketbestand
Software selbst übersetzen und als deb-Paket einspielen
debsigs benutzen
Durchführung
-T,
Fallstricke und Besonderheiten bei der Umwandlung
Bugreports mit apt-listbugs lesen
-t install,
Paket über die Angabe der Veröffentlichung austauschen
-u,
Grundlegendes Vorgehen
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Paket in das Repository hochladen
-U,
Bereits bestehende Softwarepakete erneuern
-v,
Paketquellen nach Pingzeiten und Entfernung auswählen
grep-available und grep-status
Suche mit grep-available und grep-status
Suche in noch nicht installierten Paketen
Mit ar in seine Bestandteile zerlegen
debfoster
Konfiguration von APT anzeigen
Fallstricke und Besonderheiten bei der Umwandlung
Mit debconf-set-selections
lintian verwenden
Ergänzende Bugreports mit apt-listchanges herausfiltern
-V,
Dateien mit dpkg -V überprüfen
Fallstricke und Besonderheiten bei der Umwandlung
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
-v why,
Warum ist ein Paket installiert
-Va,
Paket auf Veränderungen prüfen
-Vp,
Paket auf Veränderungen prüfen
-vv,
Paketquellen nach Pingzeiten und Entfernung auswählen
-vvv,
Paketquellen nach Pingzeiten und Entfernung auswählen
Anzahl der Hops begrenzen
Einen geschützten Paketmirror abfragen
-vvvv,
Paketquellen nach Pingzeiten und Entfernung auswählen
-W,
Ausgabe minimieren
-Wf,
dpkg
-x,
Binärpakete
Mit ar in seine Bestandteile zerlegen
Mit dpkg die Installationsstruktur herausfinden
-X,
dpkg -s Paketname und dlocate -s Paketname
-Z,
Installationsgröße eines Pakets
-z,
deborphan
.dput.cf,
Konfiguration für dput
.mini-dinstall.conf,
Konfiguration für mini-dinstall
/etc/alternatives/,
Alternative Standard-Programme mit Debians Alternativen-System
/etc/approx/approx.conf,
Server
/etc/apt/apt.conf,
Konfiguration von APT
/etc/apt/apt.conf(.d) verstehen
Die bevorzugte Veröffentlichung für alle Pakete festlegen
Konfigurationsdateien und Einstellungen
Aptitude über HTTP-Proxy
PDiffs
/etc/apt/apt.conf.d/,
Konfiguration von APT
/etc/apt/apt.conf(.d) verstehen
/etc/apt/apt.conf.d/70debconf,
Konfigurationsdateien und Einstellungen
Aptitude über HTTP-Proxy
/etc/apt/listchanges.conf,
Konfiguration von APT
/etc/apt/preferences,
Konfiguration von APT
preferences bzw. preferences.d
Paketweise festlegen
/etc/apt/preferences.d/,
Konfiguration von APT
preferences bzw. preferences.d
Paketweise festlegen
/etc/apt/sources.list,
Benutzte Paketquellen
Format der Paketliste
Physische Installationsmedien mit apt-cdrom einbinden
Aus welchem Repo kommen die Pakete
Konfiguration von APT
Aufbau,
Format der Paketliste
Eintrag auf syntaktische Korrektheit prüfen,
Einen Eintrag auf syntaktische Korrektheit prüfen
Einträge für Deutschland,
Einträge für Deutschland
Einträge für externe Ressourcen,
Verzeichnis als Paketquelle
Einträge für lokale Ressourcen,
Verzeichnis als Paketquelle
Einträge für nicht-offizielle Pakete,
Einträge für zusätzliche, nicht-offizielle Pakete
Einträge für offizielle Pakete,
Beispieleinträge für offizielle Pakete
Einträge für Quellpakete,
Einträge für Quellpakete
Einträge für Sicherheitsaktualisierungen,
Einträge für Sicherheitsaktualisierungen
Einträge für Verzeichnisse,
Verzeichnis als Paketquelle
Felder eines Eintrags,
Format eines Eintrags
Format,
Format der Paketliste
Paketquelle,
Format der Paketliste
Paketquelle nachtragen,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Einbindung eines lokalen Paketmirrors
Signaturen,
Einträge für zusätzliche, nicht-offizielle Pakete
Wechsel der Veröffentlichung,
Beispieleinträge für offizielle Pakete
/etc/apt/sources.list.d/,
Benutzte Paketquellen
Einträge für zusätzliche, nicht-offizielle Pakete
Konfiguration von APT
Paketquelle nachtragen,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
/etc/apt/trusted.gpg,
Schlüsselverwaltung mit apt-key (Überblick)
Prüfung eines Paketes auf Unversehrtheit
Konfiguration von APT
/etc/apt/trusted.gpg.d,
Prüfung eines Paketes auf Unversehrtheit
/etc/apt/trusted.gpg.d/,
Konfiguration von APT
/etc/cron.daily/apt,
cron.daily/apt
/etc/debian_version,
Veröffentlichungen
/etc/default/apt-cacher,
apt-cacher
/etc/dpkg-www.conf,
In Paketen blättern mittels dpkg-www
/etc/dwww/dwww.conf,
In Paketen blättern mittels dpkg-www
/etc/locale.nopurge,
localepurge
/usr/share/doc/,
Dokumentation in /usr/share/doc/
/var/cache/apt/apt-file/,
Suche in noch nicht installierten Paketen
/var/cache/apt/archives/,
Format eines Eintrags
Hintergrundwissen
Dateien im Paketcache
Größe des Paketcaches
Weshalb aufräumen?
Paketdatei im lokalen Paketcache speichern
Wiederinstallieren bereits installierter Pakete
Cache-Verzeichnis auf separater Partition
/var/cache/apt/archives/lock/,
Dateien im Paketcache
/var/cache/apt/archives/partial/,
Hintergrundwissen
Dateien im Paketcache
Weshalb aufräumen?
Kommandos zum Aufräumen
Paketdatei im lokalen Paketcache speichern
/var/cache/debconf,
Konfiguration mit dpkg-reconfigure erneut durchführen
/var/lib/apt/extended_states,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
/var/lib/apt/lists/,
Lokale Paketliste reparieren
Weitere Metadaten
Suche in noch nicht installierten Paketen
/var/lib/aptitude/pkgstates,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Aptitude-spezifische Paketmarkierungen
/var/lib/debfoster/keepers,
debfoster
/var/lib/debtags/vocabulary,
Kurzinfo zum Debtags-Projekt
/var/lib/dpkg/arch,
Multiarch einsetzen
/var/lib/dpkg/arch-new,
Multiarch einsetzen
/var/lib/dpkg/available,
Ausgabe minimieren
/var/lib/dpkg/info,
Verschiedene Metriken
/var/lib/dpkg/status,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Ausgabe minimieren
Paketstatusdatenbank reparieren
/var/lib/dpkg/status-old,
Die Paketstatusdatenbank aus dem lokalen Backup wiederherstellen
/var/log/apt/history.log,
Statusdaten von apt
/var/log/dpkg.log,
Statusdaten von dpkg
~/.aptitude/config,
Konfigurationsdateien von aptitude
~n,
Bekannte Paketnamen auflisten
Abarbeitung bei der Aktualisierung,
Format der Paketliste
Abbildung,
Handhabung von geschützten Namen und Logos
Abfolge,
Unsere empfohlene Reihenfolge
Abgleich zwischen Paketversionen,
Ergänzende Bugreports mit apt-listchanges herausfiltern
Abgrenzung zum eigenen Paketmirror,
Abgrenzung zum Betreiben eines eigenen Paketmirrors
Abhängigkeiten,
Kann Paketmanagement Spaß machen?
Abhängigkeiten anzeigen,
Paketabhängigkeiten anzeigen
Abhängigkeiten anzeigen
Ablauf,
Kann Paketmanagement Spaß machen?
Abschalten der Gültigkeitsüberprüfung des Release Files
dauerhaft,
Dauerhaftes Abschalten der Gültigkeitsüberprüfung des Release Files
einmalig,
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Acquire::Check-Valid-Until,
Umgang mit LTS
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
add,
Physische Installationsmedien mit apt-cdrom einbinden
Unterkommandos von apt-key
apt-key und apt-mark
Prüfung eines Paketes auf Unversehrtheit
add-apt-repository,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Format der Paketliste
Einträge mit add-apt-repository im Griff behalten
Nutzung von PPAs,
Aufruf und Optionen
add-user-tag,
Aptitude-spezifische Paketmarkierungen
Adept,
Debtags-Werkzeuge
adept,
Debtags-Werkzeuge
adequate,
/etc/apt/apt.conf(.d) verstehen
Qualitätskontrolle
Bereits installierte Pakete mit adequate prüfen
--all,
Bereits installierte Pakete mit adequate prüfen
--tags broken-symlink,
Bereits installierte Pakete mit adequate prüfen
--tags missing-copyright-file,
Bereits installierte Pakete mit adequate prüfen
--tags program-name-collision,
Bereits installierte Pakete mit adequate prüfen
Paketname,
Bereits installierte Pakete mit adequate prüfen
administrative Benutzerrechte,
Vorkenntnisse
Administratorrechte-Umgebung,
Vorkenntnisse
adv,
apt-key und apt-mark
Advanced Packaging Tool,
Überblick
Aktivierung,
Welche Versionen gibt es als offizielle Backports?
aktualisierbare Pakete anzeigen,
Aktualisierbare Pakete anzeigen
apt benutzen
aptitude verwenden
Aktualisierbare Pakete anzeigen
aktualisieren,
Grundlegendes Vorgehen
Pakete aktualisieren
update
install
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Ausgewählte Pakete aktualisieren
Auf der Kommandozeile
Die lokale Paketliste aktualisieren
Bereits bestehende Softwarepakete erneuern
Aktualisierung,
Was ist Paketmanagement
Alias-Name,
Alias-Namen
Zusammenhang von Alias-Namen und Entwicklungsständen
alien,
Einführung
Voraussetzungen
--anypatch,
Fallstricke und Besonderheiten bei der Umwandlung
--bump,
Fallstricke und Besonderheiten bei der Umwandlung
--description,
Fallstricke und Besonderheiten bei der Umwandlung
--fixperms,
Fallstricke und Besonderheiten bei der Umwandlung
--generate,
Fallstricke und Besonderheiten bei der Umwandlung
--help,
Fallstricke und Besonderheiten bei der Umwandlung
--install,
Pakete umwandeln und einspielen
--keep-version,
Fallstricke und Besonderheiten bei der Umwandlung
--nopatch,
Fallstricke und Besonderheiten bei der Umwandlung
--patch,
Fallstricke und Besonderheiten bei der Umwandlung
--scripts,
Fallstricke und Besonderheiten bei der Umwandlung
--single,
Fallstricke und Besonderheiten bei der Umwandlung
--target,
Fallstricke und Besonderheiten bei der Umwandlung
--test,
Fallstricke und Besonderheiten bei der Umwandlung
--to-deb,
Durchführung
--to-pkg,
Durchführung
--to-rpm,
Durchführung
deb-Pakete in rpm-Strukturen
--to-slp,
Durchführung
--to-tgz,
Durchführung
--verbose,
Fallstricke und Besonderheiten bei der Umwandlung
--version,
Fallstricke und Besonderheiten bei der Umwandlung
--veryverbose,
Fallstricke und Besonderheiten bei der Umwandlung
-c,
Fallstricke und Besonderheiten bei der Umwandlung
-d,
Durchführung
-g,
Fallstricke und Besonderheiten bei der Umwandlung
-h,
Fallstricke und Besonderheiten bei der Umwandlung
-i,
Pakete umwandeln und einspielen
-k,
Fallstricke und Besonderheiten bei der Umwandlung
-p,
Durchführung
-r,
Durchführung
deb-Pakete in rpm-Strukturen
-s,
Fallstricke und Besonderheiten bei der Umwandlung
-t,
Durchführung
-T,
Fallstricke und Besonderheiten bei der Umwandlung
-v,
Fallstricke und Besonderheiten bei der Umwandlung
-V,
Fallstricke und Besonderheiten bei der Umwandlung
Fallen bei der Paketumwandlung,
Fallstricke und Besonderheiten bei der Umwandlung
Fallstricke,
Fallstricke und Besonderheiten bei der Umwandlung
FHS,
Fallstricke und Besonderheiten bei der Umwandlung
Fremdformat umwandeln und direkt installieren,
Pakete umwandeln und einspielen
Paketumwandlung durchführen,
Durchführung
umgewandeltes Fremdformat installieren,
Umgewandelte Pakete einspielen
Voraussetzungen zur Paketumwandlung,
Voraussetzungen
all,
Pakete für alle Architekturen
alle Aktionen bestätigen,
Vormerkungen simulieren
Anbindung an lintian,
GDebi
ändern,
Was passiert, wenn Paketmarkierungen geändert werden?
Format der Paketliste
Änderungen im Paketbestand,
Bestehende Vormerkungen anzeigen
Änderungen in der Paketauswahl,
Was passiert, wenn Paketmarkierungen geändert werden?
Änderungen nachlesen,
Das Änderungsprotokoll beziehen
Zwei Paketversionen miteinander vergleichen
Änderungsprotokoll,
Das Änderungsprotokoll beziehen
Android,
Varianten und Formate für Softwarepakete
anhand der Architektur,
Paketlisten und Muster
Suche über die Webseite des Debian-Projekts
Suche über apt-browse.org
Suche über apt-get.org
Paketsuchmaschinen
anhand der Linux-Distribution,
Paketsuchmaschinen
anhand der Lizenz,
Paket nach Lizenz finden
anhand der Paketkategorie,
Paketeigenschaften und Einordnung
anhand der Paketversion,
Synaptic
Suche über die Webseite des Debian-Projekts
anhand der Veröffentlichung,
Paketeigenschaften und Einordnung
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Suche über apt-get.org
anhand des Co-Maintainers,
Rückrichtung: Wer betreut ein bestimmtes Paket
anhand des Distributionsbereichs,
Suche über die Webseite von Debian-Derivaten
anhand des Maintainers,
Paketeigenschaften und Einordnung
Synaptic
Suche über die Webseite des Debian-Projekts
Paket nach Maintainer finden
Welche Pakete betreut ein Debian-Maintainer
Rückrichtung: Wer betreut ein bestimmtes Paket
anhand des Uploaders,
Welche Pakete betreut ein Debian-Maintainer
anhand Regulärer Ausdrücke,
Pakete über den Namen finden
anhand von Debtags,
Paketeigenschaften und Einordnung
Suche mit axi-cache
anhand von Kurzformen (URL),
Suche über die Webseite des Debian-Projekts
Anmerkungen,
Buchinfo
Annahmen,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Anpassung für Ubuntu,
Versionsnummer
Anwendungsfall,
Paketverwaltung hinter einem http-Proxy
Anzahl der Einträge,
Format der Paketliste
anzeigen,
Lesen und Anzeigen einer Markierung mit apt-mark
apache2,
In Paketen blättern mittels dpkg-www
API,
Webseite zum Projekt
apk,
Varianten und Formate für Softwarepakete
App Centre,
Univention Corporate Server (UCS)
apper,
PackageKit
appnr,
Appnr
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
approx,
Überblick
Approx
/etc/approx/approx.conf,
Server
Clientkonfiguration,
Client
Installation,
Setup und Installation
Serverkonfiguration,
Server
apropos,
Manpages anzeigen
Manpages erstöbern
apt,
Debians Paketsystem
Vom monolithischen Programm zu Programmkomponenten
Prioritätsstufe „wichtig“ (important)
Physische Installationsmedien mit apt-cdrom einbinden
Überblick
apt-cache show Paketname
apt-cache showpkg Paketname
Anfragen mit apt-mark
apt-mark benutzen
Mit apt stöbern
Suche mit apt-cache
Prüfung eines Paketes auf Unversehrtheit
Konfiguration von APT
Konfiguration von APT anzeigen
Mittels apt
Mit apt
Mit apt-get
Bugreports mit apt-listbugs lesen
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
--download-only install,
Paketdatei im lokalen Paketcache speichern
--no-download install,
Neue Softwarepakete installieren
--reinstall,
Pakete erneut installieren
-d install,
Paketdatei im lokalen Paketcache speichern
-f,
Aktionen mit apt erzwingen
aktualisierbare Pakete anzeigen,
apt benutzen
autoremove,
APT und aptitude
download,
Paketdatei im aktuellen Verzeichnis speichern
Ein Softwarepaket nur herunterladen
edit-sources,
Paketquellen eintragen und ändern
Weiterentwicklung von APT
full-upgrade,
Weiterentwicklung von APT
Pakete aktualisieren
dist-upgrade und full-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
install,
Weiterentwicklung von APT
Erweiterungen ab APT 1.1
install
Mittels apt
Neue Softwarepakete installieren
Bereits bestehende Softwarepakete erneuern
install --no-download,
Installation zwischengespeicherter Pakete aus dem Paketcache
installierte Pakete aus Debian Backports anzeigen,
Die installierten Pakete anzeigen
Konfiguration anzeigen,
Konfiguration von APT anzeigen
list,
Weiterentwicklung von APT
Einzelpaket auflisten
Verfügbare Pakete anzeigen
list --all-versions,
Mit apt stöbern
list --installed,
apt list --installed
Mit apt
Alle installierten Pakete auflisten
list --upgradable,
Grundlegendes Vorgehen
apt benutzen
Aktualisierbare Pakete anzeigen
lokales Paket installieren,
Mittels apt
Paketcache automatisch aufräumen,
Automatisch und regelmäßig Aufräumen
Paketcache regelmäßig aufräumen,
Automatisch und regelmäßig Aufräumen
purge,
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
reinstall,
Ein Softwarepaket erneut installieren
remove,
Fall 1: Paket einfach löschen
Paket löschen / entfernen
safe-upgrade,
Pakete aktualisieren
upgrade und safe-upgrade
Bereits bestehende Softwarepakete erneuern
search,
Weiterentwicklung von APT
-n,
Bekannte Paketnamen auflisten
-n),
Bekannte Paketnamen auflisten
show,
Weiterentwicklung von APT
Einzelpaket auflisten
update,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Einen Eintrag auf syntaktische Korrektheit prüfen
Grundlegendes Vorgehen
Weiterentwicklung von APT
Suche in noch nicht installierten Paketen
Pakete aktualisieren
update
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Offline-Verwaltung mit apt-get und wget
Die lokale Paketliste aktualisieren
upgrade,
Weiterentwicklung von APT
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Auf der Kommandozeile
upgrade) (((apt-get
-o dir::cache::archives,
Offline-Verwaltung mit apt-get und wget
APT,
Obere Ebene
Die apt-dpkg-Referenzliste
apt-doc — das Benutzerhandbuch zu APT
Der Debian-Spickzettel
Weitere Bücher
Zusammenfassung
libapt-pkg,
Überblick
Referenzliste,
Die apt-dpkg-Referenzliste
APT und aptitude,
APT und aptitude
apt-add-repository,
Einträge mit add-apt-repository im Griff behalten
APT-Alternativen,
Alternativen zu APT
apt-browse,
Daten im Paket
Suche über apt-browse.org
apt-browse.org,
Paketsuchmaschinen
apt-cache,
Komponenten und Funktionen
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
depebds --no-breaks,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends,
apt-cache
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit apt-cache
debfoster
Aktualisierung mit Wechsel der Veröffentlichung
Abhängigkeiten anzeigen
depends --important,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --installed,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-conflicts,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-depends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-enhances,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-pre-depends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-recommends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-replaces,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-suggests,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --recurse,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends -i,
Ausgabe der Paketabhängigkeiten mit apt-cache
dotty,
apt-cache
dump,
apt-cache
dumpavail,
apt-cache
gencaches,
apt-cache
madison,
apt-cache
apt-cache benutzen
pkgnames,
apt-cache
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
policy,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
apt-cache
Paketquellen untersuchen mit apt-cache policy
Informationen für ein bestimmtes Paket erhalten
rdepends,
apt-cache
Anzeige der umgekehrten Paketabhängigkeiten
Recherche mit apt-cache
debfoster
Abhängigkeiten anzeigen
search,
apt-cache
Suche mit apt-cache
Alle installierten Pakete auflisten
-n,
Bekannte Paketnamen auflisten
search --full,
Suche mit apt-cache
search --names-only,
APT und apt-cache
Alle installierten Pakete auflisten
search -f,
Suche mit apt-cache
search -n,
APT und apt-cache
Alle installierten Pakete auflisten
show,
apt-cache
apt-cache show Paketname
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit apt-cache
Suche mit apt-cache
Paketstatus anzeigen
showpkg,
Was ist Paketmanagement
apt-cache
apt-cache showpkg Paketname
Bestehende Paketversionen klären
showsrc,
apt-cache
apt-cache verwenden
stats,
apt-cache
Paketcache-Status
unmet,
apt-cache
Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
xvcg,
apt-cache
APT-Cache,
Begriff
Überblick
apt-cacher,
apt-cacher
/etc/default/apt-cacher,
apt-cacher
Konfiguration des Clients,
Client anpassen
Konfiguration des Servers,
Serverkonfiguration
apt-cacher-ng,
apt-cacher-ng
apt-cdrom,
Format der Paketliste
Verzeichnis als Paketquelle
Physische Installationsmedien mit apt-cdrom einbinden
Komponenten und Funktionen
Einbindung fester Installationsmedien
--cdrom add,
Physische Installationsmedien mit apt-cdrom einbinden
--rename,
Physische Installationsmedien mit apt-cdrom einbinden
-d add,
Physische Installationsmedien mit apt-cdrom einbinden
-r,
Physische Installationsmedien mit apt-cdrom einbinden
add,
Physische Installationsmedien mit apt-cdrom einbinden
ident,
Physische Installationsmedien mit apt-cdrom einbinden
ISO-Images,
Physische Installationsmedien mit apt-cdrom einbinden
apt-cdrom-setup,
Physische Installationsmedien mit apt-cdrom einbinden
apt-clone,
Paketkonfiguration sichern
Mit apt-clone
Mit apt-clone
clone,
Mit apt-clone
info,
Mit apt-clone
restore,
Mit apt-clone
restore-new-distro,
Mit apt-clone
apt-config,
Komponenten und Funktionen
--config-file,
Konfiguration von APT anzeigen
--empty,
Konfiguration von APT anzeigen
--format,
Konfiguration von APT anzeigen
--help,
Konfiguration von APT anzeigen
--no-empty,
Konfiguration von APT anzeigen
--option,
Konfiguration von APT anzeigen
--version,
Konfiguration von APT anzeigen
-c,
Konfiguration von APT anzeigen
-h,
Konfiguration von APT anzeigen
-o,
Konfiguration von APT anzeigen
-v,
Konfiguration von APT anzeigen
dump,
Größe des Paketcaches festlegen
Konfiguration von APT anzeigen
shell,
Konfiguration von APT anzeigen
apt-dater,
apt-dater
apt-doc,
Vom monolithischen Programm zu Programmkomponenten
apt-cache benutzen
rmadison einsetzen
Dokumentation in /usr/share/doc/
apt-doc — das Benutzerhandbuch zu APT
apt-dpkg-ref,
Die apt-dpkg-Referenzliste
apt-dselect,
apt-doc — das Benutzerhandbuch zu APT
apt-file,
Paket zu Datei finden
Suche in noch nicht installierten Paketen
Empfehlungen mittels command-not-found
-v,
Suche in noch nicht installierten Paketen
find,
Suche in noch nicht installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
list,
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
apt-file show Paketname und apt-file list Paketname
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
search,
Paket zu Datei finden
Suche in noch nicht installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
show,
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
apt-file show Paketname und apt-file list Paketname
Alle Dateien eines installierten Pakets anzeigen
Strukturdatenbank aktualisieren,
Suche in noch nicht installierten Paketen
update,
Suche in noch nicht installierten Paketen
apt-get,
Komponenten und Funktionen
APT-Spickzettel von Nixcraft
Pacman Rosetta
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
--download-only install,
Paketdatei im lokalen Paketcache speichern
--no-download install,
Benötigte Pakete vorher explizit herunterladen
Neue Softwarepakete installieren
--no-download update,
Einen Eintrag auf syntaktische Korrektheit prüfen
--print-uris,
Offline-Verwaltung mit apt-get und wget
--purge remove,
deborphan
Paket löschen / entfernen
--quiet,
Offline-Verwaltung mit apt-get und wget
--target-release,
Paket über die Angabe der Veröffentlichung austauschen
-d install,
Paketdatei im lokalen Paketcache speichern
-o,
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
-q,
Offline-Verwaltung mit apt-get und wget
-qq,
Offline-Verwaltung mit apt-get und wget
-t,
Einbindung in den Paketbestand
-t install,
Paket über die Angabe der Veröffentlichung austauschen
Acquire::Check-Valid-Until,
Umgang mit LTS
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
autoclean,
apt-get
Kommandos zum Aufräumen
autoremove,
apt-get
APT und aptitude
Unsere empfohlene Reihenfolge
build-dep,
apt-get
changelog,
Das Änderungsprotokoll beziehen
check,
apt-get
Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
clean,
apt-get
Kommandos zum Aufräumen
dist-upgrade,
apt-get
Pakete aktualisieren
dist-upgrade und full-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
download,
apt-get
Paketdatei im aktuellen Verzeichnis speichern
Benötigte Pakete vorher explizit herunterladen
dselect-upgrade,
apt-get
indextargets,
Einen Eintrag auf syntaktische Korrektheit prüfen
install,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
apt-get
Paketlisten und Muster
Durchführung
Erweiterungen ab APT 1.1
install
Paket über die Angabe der Versionsnummer austauschen
Mit apt-get
Mit apt-get
Neue Softwarepakete installieren
Bereits bestehende Softwarepakete erneuern
install --dry-run,
Vorbereitungen
install --fix-broken,
Paket austauschen
Mittels dpkg und APT
Umgewandelte Pakete einspielen
install --just-print,
Vorbereitungen
install --no-act,
Vorbereitungen
install --no-download,
Installation zwischengespeicherter Pakete aus dem Paketcache
install --recon,
Vorbereitungen
install --reinstall,
Wiederinstallieren bereits installierter Pakete
Paket über die Angabe der Versionsnummer austauschen
Ein Softwarepaket erneut installieren
install --simulate,
Vorbereitungen
install -f,
Paket austauschen
Mittels dpkg und APT
Umgewandelte Pakete einspielen
install -t,
Aktualisierung mit Wechsel der Veröffentlichung
purge,
apt-get
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
reinstall,
Ein Softwarepaket erneut installieren
remove,
apt-get
Fall 1: Paket einfach löschen
Paket löschen / entfernen
remove --force-remove-essential,
Markierung „essentiell“ (essential)
remove --purge,
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
source,
Source-Pakete (dsc und weitere Dateien)
apt-get
Sourcepakete beziehen
update,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Einen Eintrag auf syntaktische Korrektheit prüfen
Grundlegendes Vorgehen
Lokale Paketliste reparieren
apt-get
Suche in noch nicht installierten Paketen
Pakete aktualisieren
update
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Mit aptitude Vormerkungen machen
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Offline-Verwaltung mit apt-get und wget
Die lokale Paketliste aktualisieren
upgrade,
apt-get
Pakete aktualisieren
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Auf der Kommandozeile
Offline-Verwaltung mit apt-get und wget
Bereits bestehende Softwarepakete erneuern
upgrade --show-upgraded,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade --simulate,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade -s,
apt-get verwenden
upgrade -u,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade -u -s,
Aktualisierbare Pakete anzeigen
apt-get update,
Die Paketstatusdatenbanken von APT und aptitude
apt-get.org,
Paketsuchmaschinen
APT-Hooks,
APT-Hooks
apt-key,
Komponenten und Funktionen
Prüfung eines Paketes auf Unversehrtheit
add,
Unterkommandos von apt-key
apt-key und apt-mark
Prüfung eines Paketes auf Unversehrtheit
adv,
apt-key und apt-mark
del,
Unterkommandos von apt-key
apt-key und apt-mark
export,
Unterkommandos von apt-key
apt-key und apt-mark
exportall,
Unterkommandos von apt-key
apt-key und apt-mark
finger,
Unterkommandos von apt-key
apt-key und apt-mark
list,
Unterkommandos von apt-key
apt-key und apt-mark
net-update,
Unterkommandos von apt-key
apt-key und apt-mark
Schlüsselverwaltung,
Schlüsselverwaltung mit apt-key (Überblick)
update,
Unterkommandos von apt-key
apt-key und apt-mark
APT-Konfiguration
/etc/apt/apt.conf,
Die bevorzugte Veröffentlichung für alle Pakete festlegen
APT::Compressor,
/etc/apt/apt.conf(.d) verstehen
APT::Default-Release,
Die bevorzugte Veröffentlichung für alle Pakete festlegen
APT::Install-Recommends,
/etc/apt/apt.conf(.d) verstehen
APT::Install-Suggests,
/etc/apt/apt.conf(.d) verstehen
APT::NeverAutoRemove,
/etc/apt/apt.conf(.d) verstehen
APT::Periodic,
/etc/apt/apt.conf(.d) verstehen
Dpkg::Progress-Fancy,
/etc/apt/apt.conf(.d) verstehen
apt-listbugs,
Unsere empfohlene Reihenfolge
Qualitätskontrolle
Hintergrundwissen
Bugreports mit apt-listbugs lesen
--bugs,
Bugreports mit apt-listbugs lesen
--pin-priority,
Bugreports mit apt-listbugs lesen
--severity,
Bugreports mit apt-listbugs lesen
--show-downgrade,
Bugreports mit apt-listbugs lesen
--stats,
Bugreports mit apt-listbugs lesen
--tags,
Bugreports mit apt-listbugs lesen
-B,
Bugreports mit apt-listbugs lesen
-D,
Bugreports mit apt-listbugs lesen
-P,
Bugreports mit apt-listbugs lesen
-s,
Bugreports mit apt-listbugs lesen
-S,
Bugreports mit apt-listbugs lesen
-T,
Bugreports mit apt-listbugs lesen
apt,
Bugreports mit apt-listbugs lesen
Fehlerberichte filtern,
Bugreports mit apt-listbugs lesen
Fehlerberichte sortieren,
Bugreports mit apt-listbugs lesen
list,
Bugreports mit apt-listbugs lesen
rss,
Bugreports mit apt-listbugs lesen
apt-listchanges,
Konfiguration von APT
Qualitätskontrolle
Ergänzende Bugreports mit apt-listchanges herausfiltern
--all,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--frontend,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--reverse,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--since,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--verbose,
Ergänzende Bugreports mit apt-listchanges herausfiltern
--which,
Ergänzende Bugreports mit apt-listchanges herausfiltern
-a,
Ergänzende Bugreports mit apt-listchanges herausfiltern
-f,
Ergänzende Bugreports mit apt-listchanges herausfiltern
-v,
Ergänzende Bugreports mit apt-listchanges herausfiltern
apt-mark,
Komponenten und Funktionen
auto,
apt-key und apt-mark
automatic,
Setzen und Entfernen einer Markierung mit apt-mark
hold,
Setzen und Entfernen einer Markierung mit apt-mark
Anfragen mit apt-mark
Mit apt-mark
install,
Setzen und Entfernen einer Markierung mit apt-mark
manual,
Setzen und Entfernen einer Markierung mit apt-mark
apt-key und apt-mark
purge,
Setzen und Entfernen einer Markierung mit apt-mark
remove,
Setzen und Entfernen einer Markierung mit apt-mark
showauto,
Lesen und Anzeigen einer Markierung mit apt-mark
apt-key und apt-mark
Anfragen mit apt-mark
apt-mark benutzen
showhold,
Lesen und Anzeigen einer Markierung mit apt-mark
Anfragen mit apt-mark
Mit apt-mark
showinstall,
Lesen und Anzeigen einer Markierung mit apt-mark
showmanual,
Lesen und Anzeigen einer Markierung mit apt-mark
apt-key und apt-mark
Anfragen mit apt-mark
showpurge,
Lesen und Anzeigen einer Markierung mit apt-mark
showremove,
Lesen und Anzeigen einer Markierung mit apt-mark
unhold,
Setzen und Entfernen einer Markierung mit apt-mark
Anfragen mit apt-mark
Mit apt-mark
apt-mirror,
apt-mirror
APT-Nachfolger
APT2,
Weiterentwicklung von APT
Cupt,
Alternativen zu APT
apt-offline,
Strategien
Projektidee
--bug-reports,
Benutzung im Detail
--bundle,
Benutzung im Detail
--install-packages,
Benutzung im Detail
--threads,
Benutzung im Detail
--update,
Benutzung im Detail
--upgrade,
Benutzung im Detail
get,
Benutzung im Detail
install,
Benutzung im Detail
set,
Benutzung im Detail
apt-offline-gui,
Projektidee
APT-Pinning
/etc/apt/preferences,
preferences bzw. preferences.d
Paketweise festlegen
/etc/apt/preferences.d/,
preferences bzw. preferences.d
Paketweise festlegen
Priorität eines Eintrags,
Paketquellen untersuchen mit apt-cache policy
preferences bzw. preferences.d
Paketweise festlegen
Target Release,
Die bevorzugte Veröffentlichung für alle Pakete festlegen
apt-rdepends,
Statusdaten von apt
Die Abhängigkeiten eines Pakets auflisten
Recherche mit apt-rdepends
Anzeige der umgekehrten Paketabhängigkeiten
Recherche mit apt-rdepends
Abhängigkeiten anzeigen
-d,
Recherche mit apt-rdepends
-r,
Recherche mit apt-rdepends
Abhängigkeiten anzeigen
APT-Repository,
Begriff und Hintergrund
Eigenes APT-Repository anlegen
reprepro
mini-dinstall
eigenes erstellen,
Eigenes APT-Repository anlegen
reprepro
mini-dinstall
apt-rpm,
deb-Pakete in rpm-Strukturen
apt-show-source,
apt-show-source verwenden
-p,
apt-show-source verwenden
apt-show-versions,
apt-show-versions verwenden
Bestehende Paketversionen klären
apt-transport-https,
Vom monolithischen Programm zu Programmkomponenten
dpkg-scanpackages
apt-utils,
Vom monolithischen Programm zu Programmkomponenten
APT-Vorgänger
dselect,
Alternativen zu APT
apt-xapian-index,
Suche mit axi-cache
APT2,
Weiterentwicklung von APT
apt4rpm,
deb-Pakete in rpm-Strukturen
APT::Cache-Grow,
Größe des Paketcaches festlegen
APT::Cache-Limit,
Größe des Paketcaches festlegen
APT::Cache-Start,
Größe des Paketcaches festlegen
APT::Compressor,
/etc/apt/apt.conf(.d) verstehen
APT::Default-Release,
Die bevorzugte Veröffentlichung für alle Pakete festlegen
APT::Install-Recommends,
/etc/apt/apt.conf(.d) verstehen
APT::Install-Suggests,
/etc/apt/apt.conf(.d) verstehen
APT::NeverAutoRemove,
/etc/apt/apt.conf(.d) verstehen
APT::Periodic,
/etc/apt/apt.conf(.d) verstehen
aptik,
Aptik
aptik-gtk,
Aptik
aptitude,
Dokumentation zu aptitude
Dokumentation deb vs. rpm
Debians Paketsystem
Obere Ebene
Alternativen zu APT
tasksel
aptitude
aptitude show Paketname
Recherche auf der Kommandozeile
Installationsgröße eines Pakets
Suche mit Hilfe von aptitude
Anmerkungen
Handbuch zu aptitude
The Debian Administrator’s Handbook
Weitere Bücher
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
--autoclean-on-startup,
Automatisch und regelmäßig Aufräumen
--clean-on-startup,
Automatisch und regelmäßig Aufräumen
--display-format,
aptitude
--download-only install,
Paketdatei im lokalen Paketcache speichern
--fix-broken,
Begutachtung
--group-by,
Kommandozeile
--purge-unused,
APT und aptitude
--schedule-only,
Vormerkungen über die Kommandozeile durchführen
--show-summary why,
Warum ist ein Paket installiert
--verbose why,
Warum ist ein Paket installiert
-d install,
Paketdatei im lokalen Paketcache speichern
-F,
aptitude
-f,
Begutachtung
-u,
Grundlegendes Vorgehen
Empfohlene Schrittfolge zur Aktualisierung von Paketen
-v why,
Warum ist ein Paket installiert
-Z,
Installationsgröße eines Pakets
add-user-tag,
Aptitude-spezifische Paketmarkierungen
aktualisierbare Pakete anzeigen,
aptitude verwenden
alle Aktionen bestätigen,
Vormerkungen simulieren
Änderungen im Paketbestand,
Bestehende Vormerkungen anzeigen
aptitude::Theme,
Zwischen aptitude-Themes wechseln
Ausgabespalten festlegen,
aptitude Format Strings
autoclean,
Kommandos zum Aufräumen
Automatisch und regelmäßig Aufräumen
Bedienoberfläche,
Zusammenspiel von dpkg und APT
bestehende Vormerkungen anzeigen,
Bestehende Vormerkungen anzeigen
Breite der Ausgabe festlegen,
Für aptitude die Ausgabebreite festlegen
changelog,
Das Änderungsprotokoll beziehen
clean,
Kommandos zum Aufräumen
Automatisch und regelmäßig Aufräumen
die Ausgabe mit Platzhaltern anpassen,
aptitude Format Strings
dist-upgrade,
Anmerkungen
Auf der Kommandozeile
Dokumentation,
Dokumentation zu aptitude
Dokumentation deb vs. rpm
Dokumentation offline,
Dokumentation zu aptitude
Dokumentation online,
Dokumentation zu aptitude
Dokumentationspakete,
Dokumentation zu aptitude
download,
aptitude
Paketdatei im aktuellen Verzeichnis speichern
Ein Softwarepaket nur herunterladen
forget-new,
Aptitude-spezifische Paketmarkierungen
Format Strings,
aptitude
Welche Pakete betreut ein Debian-Maintainer
aptitude Format Strings
full-upgrade,
aptitude
Pakete aktualisieren
dist-upgrade und full-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Anmerkungen
Mit aptitude Vormerkungen machen
Auf der Kommandozeile
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
hold,
Setzen und Entfernen einer Markierung mit aptitude
Mit Aptitude
Mit Aptitude
install,
aptitude
Durchführung
install
Mit aptitude Vormerkungen machen
Vormerkungen ausführen
Auf der Kommandozeile
Neue Softwarepakete installieren
install --assume-yes,
Vormerkungen simulieren
install --simulate,
Vorbereitungen
Vormerkungen simulieren
install --y,
Vormerkungen simulieren
install -s,
Vorbereitungen
Vormerkungen simulieren
installierte Pakete aus Debian Backports anzeigen,
Die installierten Pakete anzeigen
interaktiver Abhängigkeitsauflöser,
aptitude
Kategoriebrowser,
aptitude
keep,
Mit Aptitude
Mit Aptitude
keep-all,
Vormerkungen wieder aufheben
Mit Aptitude
Mit Aptitude
lokale Konfigurationsdateien,
Konfigurationsdateien von aptitude
markauto,
Setzen und Entfernen einer Markierung mit aptitude
ncurses,
Zusammenspiel von dpkg und APT
Paketaktionen vormerken,
Vormerkungen über die Kommandozeile durchführen
Vormerkungen über die Textoberfläche durchführen
Paketcache automatisch aufräumen,
Empfehlungen zum Zeitpunkt des Aufräumens
purge,
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
reinstall,
aptitude
Pakete erneut installieren
Wiederinstallieren bereits installierter Pakete
Ein Softwarepaket erneut installieren
remove,
aptitude
Fall 1: Paket einfach löschen
Mit aptitude Vormerkungen machen
Paket löschen / entfernen
safe-upgrade,
aptitude
Pakete aktualisieren
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Auf der Kommandozeile
Bereits bestehende Softwarepakete erneuern
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
safe-upgrade --no-new-installs,
upgrade und safe-upgrade
search,
Recherche mit aptitude
aptitude
Suche mit Hilfe von aptitude
~n,
Bekannte Paketnamen auflisten
search !~akeep,
Bestehende Vormerkungen anzeigen
search --display-format,
aptitude Format Strings
search --sort,
Bei aptitude die Ausgabe sortieren
search --sort installsize,
aptitude
search --width,
Für aptitude die Ausgabebreite festlegen
search -F,
aptitude Format Strings
search -O,
Bei aptitude die Ausgabe sortieren
search -w,
Für aptitude die Ausgabebreite festlegen
search ?action,
Bestehende Vormerkungen anzeigen
search ?automatic,
Lesen und Anzeigen einer Markierung mit aptitude
aptitude benutzen
search ?config-files,
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
search ?depends,
Recherche mit aptitude
search ?essential,
Pakete nach Prioritäten finden
search ?installed,
Suche mit aptitude
aptitude Format Strings
Alle installierten Pakete auflisten
search ?new,
Neue Pakete anzeigen
search ?obsolete,
Recherche auf der Kommandozeile
search ?priority,
Pakete nach Prioritäten finden
search ?reverse-depends,
Ausgabe der Paketabhängigkeiten mit aptitude
search ?upgradable,
Setzen und Entfernen einer Markierung mit aptitude
aptitude verwenden
aptitude verwenden
Aktualisierbare Pakete anzeigen
search ?user-tag,
Aptitude-spezifische Paketmarkierungen
search ~a,
Bestehende Vormerkungen anzeigen
search ~c,
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
search ~D,
Recherche mit aptitude
search ~E,
Pakete nach Prioritäten finden
search ~i,
aptitude
Suche mit aptitude
aptitude
aptitude Format Strings
Alle installierten Pakete auflisten
search ~M,
Lesen und Anzeigen einer Markierung mit aptitude
aptitude benutzen
search ~m,
Welche Pakete betreut ein Debian-Maintainer
search ~N,
Neue Pakete anzeigen
search ~o,
Recherche auf der Kommandozeile
search ~p,
Pakete nach Prioritäten finden
search ~R,
Ausgabe der Paketabhängigkeiten mit aptitude
search ~U,
Setzen und Entfernen einer Markierung mit aptitude
aptitude verwenden
aptitude verwenden
Aktualisierbare Pakete anzeigen
show,
Lesen und Anzeigen einer Markierung mit aptitude
aptitude
aptitude show Paketname
Mit Aptitude
Einzelpaket auflisten
Paketstatus anzeigen
Sortierung der Ausgabe festlegen,
Bei aptitude die Ausgabe sortieren
Sortierung der Pakete nach Debtags,
aptitude
unhold,
Setzen und Entfernen einer Markierung mit aptitude
Mit Aptitude
unmarkauto,
Setzen und Entfernen einer Markierung mit aptitude
update,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Grundlegendes Vorgehen
aptitude
Pakete aktualisieren
update
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Mit aptitude Vormerkungen machen
Die lokale Paketliste aktualisieren
upgrade,
Auf der Kommandozeile
versions,
aptitude verwenden
Bestehende Paketversionen klären
Alle installierten Pakete auflisten
versions --group-ny,
aptitude verwenden
versions --show-package-names,
aptitude verwenden
Vormerkungen,
Mit aptitude Vormerkungen machen
Vormerkungen ausführen,
Vormerkungen ausführen
Vormerkungen simulieren,
Vormerkungen simulieren
why,
aptitude
Warum ist ein Paket installiert
why-not,
aptitude
Warum ist ein Paket installiert
Aptitude,
Zusammenfassung
Aptitude::UI::Default-Package-View,
Textoberfläche
Auflistung der Pakete umsortieren,
Kommandozeile
Aussehen der Textoberfläche ändern,
Textoberfläche
aptitude update,
Die Paketstatusdatenbanken von APT und aptitude
aptitude-common,
aptitude
aptitude-doc,
Dokumentation in /usr/share/doc/
aptitude-doc-en,
Handbuch zu aptitude
aptitude-doc-es,
Paketname
aptitude-doc-fr,
Handbuch zu aptitude
aptitude-Handbuch,
Handbuch zu aptitude
aptitude::AutoClean-After-Update,
Paketverwaltung passend konfigurieren
aptitude::Theme,
Zwischen aptitude-Themes wechseln
Aptitude::UI::Default-Package-View,
Textoberfläche
Aptosid,
Live-CD
apturl,
Appnr
Communtu
Webbasierte Installation von Paketen mit apturl
ar,
Mit ar in seine Bestandteile zerlegen
-t,
Binärpakete
-v,
Mit ar in seine Bestandteile zerlegen
-x,
Binärpakete
Mit ar in seine Bestandteile zerlegen
ara,
Welche Pakete betreut ein Debian-Maintainer
Debtags-Werkzeuge
Graphische Programme
Ara,
Debtags-Werkzeuge
Arbeitsweise,
lintian verwenden
Architektur,
Architektur oder Plattform
all,
Pakete für alle Architekturen
architekturunabhängig,
Pakete für alle Architekturen
Multiarch,
Multiarch einsetzen
Architekturen,
Was ist Debian?
Debian-Architekturen
Debian-Ports-Projekt
Pakete für alle Architekturen
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Bevor es Multiarch gab
Architekturen, deren Unterstützung vorgesehen ist
architekturunabhängig,
Pakete für alle Architekturen
Armbian,
Embedded-Geräte
Asciidoc,
Technische Basis
auf Aktualität prüfen,
Aktualität des Mirrors überprüfen
auf Echtheit überprüfen,
Einträge für zusätzliche, nicht-offizielle Pakete
Einträge mit add-apt-repository im Griff behalten
auf unerwünschte Veränderungen prüfen,
Paket auf unerwünschte Veränderungen prüfen
auf Veränderungen prüfen,
Die Inhalte eines bereits installierten Paketes überprüfen
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
auf Vertrauenswürdigkeit prüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Paketsignatur überprüfen
Aufbau,
Zielgruppe und Lernziele
Aufbau und Struktur einer Paketquelle
Format der Paketliste
Suche mittels debtags
Aufgaben,
Sortierung der Pakete nach Verwendungszweck
Einführung
Aufgabenverteilung,
Aufgaben, Sinn und Zweck des Frontends
aufheben,
Setzen und Entfernen einer Markierung mit aptitude
auflisten,
Daten im Paket
Die Abhängigkeiten eines Pakets auflisten
Abhängigkeiten anzeigen
Auflistung,
Was ist Paketmanagement
Auflistung der installierten Pakete,
Was ist Paketmanagement
Auflistung der Pakete umsortieren,
Kommandozeile
Auflistung einschränken,
Ausgabe der Paketabhängigkeiten mit apt-cache
Auflösung von Paketabhängigkeiten,
Was ist Paketmanagement
Auflösung von Paketaktualisierung,
Was ist Paketmanagement
aufräumen,
Weshalb aufräumen?
aufsetzen,
Paketquellen
Einen eigenen APT-Mirror aufsetzen
Ausfallsicherheit im Netzwerk,
Vor- und Nachteile
Ausfallsicherung,
Benutzte Paketquellen
ausführbare Dateien,
Ausführbare Dateien anzeigen
Ausgabe anhand von Filtern einschränken,
Liste anhand von Filtern einschränken
Ausgabeformate,
Technische Basis
Online-Fassung
Ausgabespalten festlegen,
aptitude Format Strings
auskommentieren,
Format der Paketliste
auslesen,
Die bestehende Paketkonfiguration auslesen
Ausnahmen,
Zusammenhang von Alias-Namen und Entwicklungsständen
Aussehen der Textoberfläche ändern,
Textoberfläche
Auswahl,
Paketquellen
Benutzte Paketquellen
Am besten erreichbaren Paketmirror finden
Auswahl anhand der Veröffentlichung,
Paket über die Angabe der Veröffentlichung austauschen
Auswerten der Logdateien,
Liste der zuletzt installierten Pakete anzeigen
Auswertung,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Auswirkungen,
Lokale Paketmarkierungen
auto,
Setzen und Entfernen einer Markierung mit apt-mark
apt-key und apt-mark
autoclean,
apt-get
Kommandos zum Aufräumen
Automatisch und regelmäßig Aufräumen
automatic,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit aptitude
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
Automatisch installierte Pakete anzeigen
apt-mark benutzen
aptitude benutzen
aptitude Format Strings
Automatische Installation fehlender Software,
Fehlendes sofort installieren
automatisierte Aktualisierung,
Format der Paketliste
Automatisierte Installation
Preseeding,
Mit debconf-get-selections
Mit debconf-set-selections
autoremove,
apt-get
APT und aptitude
Unsere empfohlene Reihenfolge
awk,
Bekannte Paketnamen auflisten
Offline-Verwaltung mit apt-get und wget
Backend,
GDebi
Backport,
Versionsnummer
backports.debian.org,
Gegenüberstellung der verschiedenen Lösungsansätze
backports.org,
Gegenüberstellung der verschiedenen Lösungsansätze
BackTrack,
Live-CD
base-files,
apt-show-versions verwenden
rmadison einsetzen
Basisformat,
Konzepte und Ideen dahinter
Bausteine,
Kann Paketmanagement Spaß machen?
Baustellenstatus,
Baustellenstatus
Bedarf,
Debian Backports
Bedarf an Speicherplatz,
Vor- und Nachteile
Bedienoberfläche,
Zusammenspiel von dpkg und APT
Begriff,
Was ist Paketmanagement
Distributionsbereiche
Lokale Paketmarkierungen
Hintergrundwissen
bei Bedarf hinzfügen,
Fehlende Pakete bei Bedarf hinzufügen
bei Debian,
Suche über die Webseite des Debian-Projekts
bei Ubuntu,
Suche über die Webseite von Debian-Derivaten
bekannte Pakete auflisten,
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
belegter Speicherplatz,
Größe des Paketcaches
benennen,
Metapakete bauen
Benennung,
Veröffentlichungen
Benennung einer Paketdatei,
Benennung einer Paketdatei
Benutzerhandbuch zu APT,
apt-doc — das Benutzerhandbuch zu APT
Benutzerschnittstelle,
Frontends für das Paketmanagement
Für die Kommandozeile
ncurses-basierte Programme
GUI zur Paketverwaltung
Webbasierte Programme
bereitstellen,
Eigenes APT-Repository anlegen
Verzeichnis mit Paketen
dpkg-scanpackages
reprepro
mini-dinstall
Beschreibung,
Sortierung der Pakete nach Verwendungszweck
Paketmirror bei Debian
Bestandteile,
Generell: 2 Ebenen
Daten im Paket
Mit ar in seine Bestandteile zerlegen
lintian verstehen
bestehende Installation sichern,
Paketkonfiguration sichern
bestehende Konfiguration anzeigen,
Pakete konfigurieren
Bestehende Konfiguration eines Pakets anzeigen
bestehende Vormerkungen anzeigen,
Bestehende Vormerkungen anzeigen
bestimmte Version,
Pakete downgraden
Paket über die Angabe der Versionsnummer austauschen
bestimmte Version installieren,
Pakete downgraden
Paket über die Angabe der Versionsnummer austauschen
Paket über die Angabe der Veröffentlichung austauschen
Betriebssystem,
Was ist Debian?
Einstieg
Betriebssystemkern,
Debian-Architekturen
Bezug eines Softwarepaketes,
Begriff
biarch,
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Bibliothek
libapt-inst,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-inst
libapt-pkg,
Zusammenspiel von dpkg und APT
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg
libapt-pkg-doc,
Vom monolithischen Programm zu Programmkomponenten
libapt-pkg-perl,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg-perl
python-apt,
Bibliothek python-apt
Suche über apt-browse.org
Binärpaket,
Debian-Pakete (Varianten)
Binärpakete (deb)
Format eines Eintrags
Einträge für Deutschland
Binärpakete
Sourcepakete beziehen
Pakete aus zusätzlichen Quellen ergänzen
lintian verwenden
BinNMU,
Versionsnummer
Bo,
Alias-Namen
Bookworm,
Alias-Namen
Bordmittel,
Kann Paketmanagement Spaß machen?
Breite der Ausgabe festlegen,
Für aptitude die Ausgabebreite festlegen
Bruce Perens,
Alias-Namen
BSD,
Anstatt Linux
Buch
administrative Benutzerrechte,
Vorkenntnisse
Anmerkungen,
Buchinfo
Asciidoc,
Technische Basis
Aufbau,
Zielgruppe und Lernziele
Ausgabeformate,
Technische Basis
Online-Fassung
Baustellenstatus,
Baustellenstatus
Creative Commons,
Quellcode und Lizenz
Danksagung,
Danksagung
Englischkenntnisse,
Vorkenntnisse
Errata,
Buchinfo
Fragen,
Buchinfo
graphische Werkzeuge,
Vorkenntnisse
Kommandozeile,
Vorkenntnisse
Lernziele,
Und das können Sie nach der Lektüre …
Linux-Zertifizierung,
Und das können Sie nach der Lektüre …
Lizenz,
Quellcode und Lizenz
Lokalisierung der Ausgaben,
Vorkenntnisse
Mitmachen,
Technische Basis
Quellcode und Lizenz
Online-Fassung,
Online-Fassung
Quellcode,
Quellcode und Lizenz
Repository auf Github,
Technische Basis
Online-Fassung
Quellcode und Lizenz
Shell,
Vorkenntnisse
Technische Basis,
Technische Basis
Webseite dazu,
Buchinfo
Wie das Buch gepflegt wird,
Organisatorisch
Zielgruppe,
Zielgruppe und Lernziele
Bugreport,
Pseudopakete im Debian Bug Tracking System
Hintergrundwissen
build-dep,
apt-get
Bullseye,
Alias-Namen
Buster,
Alias-Namen
Buzz,
Alias-Namen
Cache,
Begriff
Cache-Grow,
Schalter zur Steuerung des Cache-Verhaltens
Cache-Limit,
Schalter zur Steuerung des Cache-Verhaltens
Cache-Start,
Schalter zur Steuerung des Cache-Verhaltens
Caching Proxy,
Varianten
cat,
Auf der Kommandozeile
CD,
Begriff und Hintergrund
changelog,
Das Änderungsprotokoll beziehen
Changelog anzeigen,
Das Änderungsprotokoll beziehen
check,
apt-get
Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
check-dfsg-status,
Einordnung der Distributionsbereiche in Debian
Recherche mit check-dfsg-status (vormals vrms)
check-support-status,
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
--list,
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
--type,
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
check-update,
Aktualisierbare Pakete anzeigen
checkinstall,
Software selbst übersetzen und als deb-Paket einspielen
--help,
Software selbst übersetzen und als deb-Paket einspielen
--install=no,
Software selbst übersetzen und als deb-Paket einspielen
--install=yes,
Software selbst übersetzen und als deb-Paket einspielen
--type=debian,
Software selbst übersetzen und als deb-Paket einspielen
--type=rpm,
Software selbst übersetzen und als deb-Paket einspielen
--type=slackware,
Software selbst übersetzen und als deb-Paket einspielen
-D,
Software selbst übersetzen und als deb-Paket einspielen
-R,
Software selbst übersetzen und als deb-Paket einspielen
-S,
Software selbst übersetzen und als deb-Paket einspielen
-t,
Software selbst übersetzen und als deb-Paket einspielen
Debian-spezifische Schalter,
Software selbst übersetzen und als deb-Paket einspielen
chroot-Umgebung,
Vorkenntnisse
clean,
apt-get
Kommandos zum Aufräumen
Automatisch und regelmäßig Aufräumen
Click-Pakete,
Nachbauten und Derivate
Clientkonfiguration,
Client
clone,
Mit apt-clone
cobbler,
Einstieg
command-not-found,
PackageKit
Empfehlungen mittels command-not-found
apt-file,
Empfehlungen mittels command-not-found
Communtu,
Übergangspakete, Metapakete und Tasks
Communtu
Conffiles,
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Configuration Registry,
Univention Corporate Server (UCS)
console-apt,
Debians Paketsystem
Containerformat
Docker,
Varianten und Formate für Softwarepakete
Flatpak,
Varianten und Formate für Softwarepakete
Linux Containers,
Varianten und Formate für Softwarepakete
LXC,
Varianten und Formate für Softwarepakete
OpenContainers,
Varianten und Formate für Softwarepakete
Snappy,
Varianten und Formate für Softwarepakete
VirtualBox,
Varianten und Formate für Softwarepakete
contrib,
Distributionsbereiche
coreutils,
Zusammenspiel von dpkg und APT
Prioritätsstufe „erforderlich“ (required)
Markierung „essentiell“ (essential)
Creative Commons,
Quellcode und Lizenz
Cupt,
Alternativen zu APT
Cupt
Debdelta,
Cupt
multiarch,
Cupt
cupt,
Cupt
--satisfy,
Cupt
reinstall,
Pakete erneut installieren
Wiederinstallieren bereits installierter Pakete
curses-apt-key,
Alternative Benutzerschnittstellen zur APT-Schlüsselverwaltung
Früher im Buch erwähnte Werkzeuge
cut,
Bekannte Paketnamen auflisten
Damn Small Linux (DSL),
Minimalsysteme
Dandified YUM (DNF),
Zusammenfassung
Danksagung,
Danksagung
daptup,
Grundlegendes Vorgehen
Darstellung im Terminal,
Lesen und Anzeigen einer Markierung mit aptitude
Darstellung in aptitude,
Lesen und Anzeigen einer Markierung mit aptitude
Dateien auf Integrität prüfen,
Dateien überprüfen mit debsums
Dateien im Paketcache,
Dateien im Paketcache
Daten,
Generell: 2 Ebenen
Daten im Paket
Mit ar in seine Bestandteile zerlegen
dauerhaft,
Dauerhaftes Abschalten der Gültigkeitsüberprüfung des Release Files
dctrl-tools,
dpkg -s Paketname und dlocate -s Paketname
grep-available und grep-aptavail benutzen
dpigs
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
In Paketen blättern mittels dpkg-www
Suche mit grep-available und grep-status
Welche Pakete betreut ein Debian-Maintainer
Einsatz von dglob
Debtags-Werkzeuge
Suche mittels debtags
dd-list,
Rückrichtung: Wer betreut ein bestimmtes Paket
deb,
Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement
Varianten und Formate für Softwarepakete
deb-gview,
Daten im Paket
deb-Paketformat,
Debians Paketsystem
Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement
Bestandteile,
Generell: 2 Ebenen
Daten im Paket
Mit ar in seine Bestandteile zerlegen
Daten,
Generell: 2 Ebenen
Daten im Paket
Mit ar in seine Bestandteile zerlegen
lokal auspacken,
Mit dpkg die Installationsstruktur herausfinden
Metainformationen,
Generell: 2 Ebenen
Mit ar in seine Bestandteile zerlegen
debarchiver,
debarchiver
debconf,
Wiederinstallieren vollständig entfernter Pakete
Bestehende Konfiguration eines Pakets anzeigen
Konfiguration für alle Pakete auslesen
Konfiguration mit dpkg-reconfigure erneut durchführen
Paketkonfiguration sichern
DebConf,
Kurzinfo zum Debtags-Projekt
debconf-get-selections,
Konfiguration für alle Pakete auslesen
Konfiguration mit dpkg-reconfigure erneut durchführen
Paketkonfiguration sichern
Mit debconf-get-selections
--installer,
Konfiguration für alle Pakete auslesen
debconf-set-selections,
Konfiguration für alle Pakete auslesen
Paketkonfiguration sichern
--checkonly,
Mit debconf-set-selections
--verbose,
Mit debconf-set-selections
-c,
Mit debconf-set-selections
-v,
Mit debconf-set-selections
debconf-show,
Bestehende Konfiguration eines Pakets anzeigen
debconf-utils,
Konfiguration für alle Pakete auslesen
Paketkonfiguration sichern
Mit debconf-get-selections
Mit debconf-set-selections
Debdelta,
Cupt
debdelta,
debdelta
debdelta-upgrade,
debdelta
debfoster,
Umgang mit Waisen
debfoster
--force,
debfoster
--ignore-default-rules,
debfoster
--quiet,
debfoster
--show-dependents,
debfoster
--show-depends,
debfoster
--show-keepers,
debfoster
--show-orphans,
debfoster
--verbose,
debfoster
-a,
debfoster
-d,
debfoster
-e,
debfoster
-f,
debfoster
-i,
debfoster
-q,
debfoster
-qv,
debfoster
-s,
debfoster
-v,
debfoster
/var/lib/debfoster/keepers,
debfoster
debget,
Manpages aus noch nicht installierten Paketen anzeigen
Paketdatei im aktuellen Verzeichnis speichern
debhelper,
Voraussetzungen
Debian,
Vom tar.gz zur Linux-Distribution
Debians Paketsystem
Schlüsselverwaltung mit apt-key (Überblick)
Architekturen,
Was ist Debian?
Debian-Architekturen
Debian-Ports-Projekt
Pakete für alle Architekturen
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Bevor es Multiarch gab
Architekturen, deren Unterstützung vorgesehen ist
architekturunabhängig,
Pakete für alle Architekturen
Betriebssystem,
Was ist Debian?
Betriebssystemkern,
Debian-Architekturen
Debian Archive,
Zusammenhang von Alias-Namen und Entwicklungsständen
Debian Developer,
Was ist Debian?
Debian Free Software Guidelines (DFSG),
Was ist Debian?
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
Debian Quality Assurance Team,
Verbreitungsgrad von Paketen
Debian-Archive-Keyring,
Prüfung eines Paketes auf Unversehrtheit
Debian-Gesellschaftervertrag,
Einordnung der Distributionsbereiche in Debian
Derivate,
Kann Paketmanagement Spaß machen?
Was ist Debian?
Distribution spiegeln,
apt-mirror
Distributionsbereiche,
Was ist Debian?
Distributionsbestandteile,
Was ist Debian?
Dokumentation,
Kann Paketmanagement Spaß machen?
Einsatzbereich,
Was ist Debian?
Einsatzzweck,
Was ist Debian?
Entwicklungsziel,
Was ist Debian?
Entwicklungszweige,
Kann Paketmanagement Spaß machen?
Was ist Debian?
Gesellschaftsvertrag,
Was ist Debian?
Hardware,
Debian-Architekturen
Installationsmedien,
Paketquellen
Installationsvarianten,
Paketquellen
Keyring,
Prüfung eines Paketes auf Unversehrtheit
Lizenzen,
Kann Paketmanagement Spaß machen?
multiarch,
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Bevor es Multiarch gab
Netzwerkinstallation,
Paketquellen
Paketbezug,
Paketquellen
Paketmaintainer,
Und das können Sie nach der Lektüre …
Paketquelle,
Paketquellen
Plattformen,
Debian-Architekturen
Plattformunterstützung,
Was ist Debian?
Porters,
Debian-Architekturen
Ports,
Debian-Architekturen
Debian-Ports-Projekt
Einen eigenen APT-Mirror aufsetzen
Architekturen, deren Unterstützung vorgesehen ist
Ports-Projekt,
Debian-Ports-Projekt
Projekt,
Was ist Debian?
Projektfinanzierung,
Was ist Debian?
Projektstruktur,
Was ist Debian?
Projektziel,
Was ist Debian?
Qualitätssicherung,
Verbreitungsgrad von Paketen
Reproducible Builds,
Zwei Paketversionen miteinander vergleichen
Softwareauswahl,
Was ist Debian?
Umgang mit Aktualisierungen,
Backports
Varianten,
Was ist Debian?
Veröffentlichungszyklus,
Kann Paketmanagement Spaß machen?
Vertrauenskette,
Prüfung eines Paketes auf Unversehrtheit
Zielgruppe,
Was ist Debian?
Debian Administrator’s Handbook,
The Debian Administrator’s Handbook
Debian Archive,
Zusammenhang von Alias-Namen und Entwicklungsständen
Debian Archive Kit (dak),
mini-dinstall
Einen eigenen APT-Mirror aufsetzen
Debian Backports,
Was ist Paketmanagement
Bedeutung der verschiedenen Entwicklungsstände
Backports
Gegenüberstellung der verschiedenen Lösungsansätze
Welche der von mir genutzten Pakete benötigen Hilfe?
Aktivierung,
Welche Versionen gibt es als offizielle Backports?
Bedarf,
Debian Backports
Dokumentation,
Die installierten Pakete anzeigen
Einbindung in Debian 8 Jessie,
Welche Versionen gibt es als offizielle Backports?
Einbindung in Debian 9 Stretch,
Welche Versionen gibt es als offizielle Backports?
installierte Pakete anzeigen,
Einbindung in den Paketbestand
Die installierten Pakete anzeigen
Paketbezug,
Einbindung in den Paketbestand
Pakete,
Debian Backports
Pflege,
Debian Backports
Pinning,
Einbindung in den Paketbestand
Ubuntu,
Weiterführende Dokumentation
Versionen,
Welche Pakete gibt es als offiziellen Backport?
Debian BTS,
Pseudopakete im Debian Bug Tracking System
Lesen und Anzeigen einer Markierung mit aptitude
Hintergrundwissen
Bugreports mit apt-listbugs lesen
Release-kritische Fehler mit popbugs finden
Release-kritische Fehler mit rc-alert finden
Debian Bug Tracking System,
Lesen und Anzeigen einer Markierung mit aptitude
Hintergrundwissen
Debian Developer,
Was ist Debian?
Debian Fasttrack,
Backports
Debian Free Software Guidelines (DFSG),
Was ist Debian?
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
Debian GNU/Hurd,
Anstatt Linux
Debian GNU/kFreeBSD,
Anstatt Linux
Debian Live System,
Live-CD
Debian Policy Violations,
lintian verstehen
Debian Popularity Contest,
Verbreitungsgrad von Paketen
Verschiedene Metriken
Debian Pure Blends,
Communtu
Debian Quality Assurance Team,
Verbreitungsgrad von Paketen
Debian Security Team,
Einträge für Sicherheitsaktualisierungen
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
Debian Snapshots
Paketarchiv,
Bestehende Paketversionen klären
Debian Social Contract,
Einordnung der Distributionsbereiche in Debian
Debian Source Control,
Source-Pakete (dsc und weitere Dateien)
Debian Sources List Generator,
Format der Paketliste
Debian und Ubuntu Sources List Generator
debian-archive-keyring,
Zusammenspiel von dpkg und APT
Prioritätsstufe „wichtig“ (important)
Schlüsselverwaltung mit apt-key (Überblick)
Prüfung eines Paketes auf Unversehrtheit
Debian-Archive-Keyring,
Prüfung eines Paketes auf Unversehrtheit
Debian-Gesellschaftervertrag,
Einordnung der Distributionsbereiche in Debian
debian-goodies,
Bekannte Paketnamen auflisten
dpigs
Einsatz von dglob
Nach Muster in einem Paket suchen
Manpages anzeigen
Manpages aus noch nicht installierten Paketen anzeigen
Liste der zuletzt geänderten Abhängigkeiten
Man- und Infopages
Release-kritische Fehler mit popbugs finden
debian-handbook,
The Debian Administrator’s Handbook
Debian-Installer,
Konfiguration für alle Pakete auslesen
Debian-Ports-Projekt,
Schlüsselverwaltung mit apt-key (Überblick)
Einen eigenen APT-Mirror aufsetzen
Debian-Release-Team,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
debian-security-support,
Qualitätskontrolle
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
Debian-spezifische Schalter,
Software selbst übersetzen und als deb-Paket einspielen
Debian-Spickzettel,
Der Debian-Spickzettel
DebianEdu/Skolelinux,
Schlüsselverwaltung mit apt-key (Überblick)
Bildung
Debianpaket
adept,
Debtags-Werkzeuge
adequate,
/etc/apt/apt.conf(.d) verstehen
Qualitätskontrolle
Bereits installierte Pakete mit adequate prüfen
alien,
Einführung
Voraussetzungen
apache2,
In Paketen blättern mittels dpkg-www
apper,
PackageKit
approx,
Überblick
apt,
Vom monolithischen Programm zu Programmkomponenten
Prioritätsstufe „wichtig“ (important)
Physische Installationsmedien mit apt-cdrom einbinden
Überblick
apt-cache show Paketname
apt-cache showpkg Paketname
Anfragen mit apt-mark
apt-mark benutzen
Mit apt stöbern
Suche mit apt-cache
Prüfung eines Paketes auf Unversehrtheit
Konfiguration von APT
Konfiguration von APT anzeigen
Mittels apt
Mit apt
Mit apt-get
apt-cacher,
apt-cacher
apt-cacher-ng,
apt-cacher-ng
apt-cdrom,
Einbindung fester Installationsmedien
apt-cdrom-setup,
Physische Installationsmedien mit apt-cdrom einbinden
apt-clone,
Paketkonfiguration sichern
Mit apt-clone
Mit apt-clone
apt-dater,
apt-dater
apt-doc,
Vom monolithischen Programm zu Programmkomponenten
apt-cache benutzen
rmadison einsetzen
Dokumentation in /usr/share/doc/
apt-doc — das Benutzerhandbuch zu APT
apt-dpkg-ref,
Die apt-dpkg-Referenzliste
apt-file,
Paket zu Datei finden
Suche in noch nicht installierten Paketen
apt-listbugs,
Qualitätskontrolle
Bugreports mit apt-listbugs lesen
apt-listchanges,
Konfiguration von APT
Qualitätskontrolle
Ergänzende Bugreports mit apt-listchanges herausfiltern
apt-mirror,
apt-mirror
apt-offline,
Strategien
Projektidee
apt-offline-gui,
Projektidee
apt-rdepends,
Statusdaten von apt
Die Abhängigkeiten eines Pakets auflisten
Recherche mit apt-rdepends
Anzeige der umgekehrten Paketabhängigkeiten
Recherche mit apt-rdepends
apt-show-source,
apt-show-source verwenden
apt-show-versions,
apt-show-versions verwenden
apt-transport-https,
Vom monolithischen Programm zu Programmkomponenten
dpkg-scanpackages
apt-utils,
Vom monolithischen Programm zu Programmkomponenten
apt-xapian-index,
Suche mit axi-cache
aptitude,
aptitude
aptitude show Paketname
Installationsgröße eines Pakets
Suche mit Hilfe von aptitude
aptitude-common,
aptitude
aptitude-doc,
Dokumentation in /usr/share/doc/
aptitude-doc-en,
Handbuch zu aptitude
aptitude-doc-es,
Paketname
aptitude-doc-fr,
Handbuch zu aptitude
ara,
Debtags-Werkzeuge
Graphische Programme
base-files,
apt-show-versions verwenden
rmadison einsetzen
check-dfsg-status,
Einordnung der Distributionsbereiche in Debian
Recherche mit check-dfsg-status (vormals vrms)
checkinstall,
Software selbst übersetzen und als deb-Paket einspielen
command-not-found,
PackageKit
Empfehlungen mittels command-not-found
coreutils,
Zusammenspiel von dpkg und APT
Prioritätsstufe „erforderlich“ (required)
Markierung „essentiell“ (essential)
cupt,
Cupt
daptup,
Grundlegendes Vorgehen
dctrl-tools,
dpkg -s Paketname und dlocate -s Paketname
grep-available und grep-aptavail benutzen
dpigs
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
In Paketen blättern mittels dpkg-www
Suche mit grep-available und grep-status
Welche Pakete betreut ein Debian-Maintainer
Einsatz von dglob
Debtags-Werkzeuge
Suche mittels debtags
deb-gview,
Daten im Paket
debarchiver,
debarchiver
debconf,
Wiederinstallieren vollständig entfernter Pakete
Bestehende Konfiguration eines Pakets anzeigen
Konfiguration für alle Pakete auslesen
Konfiguration mit dpkg-reconfigure erneut durchführen
Paketkonfiguration sichern
debconf-utils,
Konfiguration für alle Pakete auslesen
Paketkonfiguration sichern
Mit debconf-get-selections
Mit debconf-set-selections
debdelta,
debdelta
debfoster,
debfoster
debhelper,
Voraussetzungen
debian-archive-keyring,
Zusammenspiel von dpkg und APT
Prioritätsstufe „wichtig“ (important)
Schlüsselverwaltung mit apt-key (Überblick)
Prüfung eines Paketes auf Unversehrtheit
debian-goodies,
Bekannte Paketnamen auflisten
dpigs
Einsatz von dglob
Nach Muster in einem Paket suchen
Manpages anzeigen
Manpages aus noch nicht installierten Paketen anzeigen
Liste der zuletzt geänderten Abhängigkeiten
Man- und Infopages
Release-kritische Fehler mit popbugs finden
debian-handbook,
The Debian Administrator’s Handbook
debian-security-support,
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
debmirror,
debmirror
deborphan,
deborphan
Orphaner und Editkeep
debsums,
Die Inhalte eines bereits installierten Paketes überprüfen
Dateien überprüfen mit debsums
Paket auf Veränderungen prüfen
debtags,
Kurzinfo zum Debtags-Projekt
Webseite zum Projekt
Debtags-Werkzeuge
debtree,
Zusammenspiel von dpkg und APT
devscripts,
rmadison einsetzen
Rückrichtung: Wer betreut ein bestimmtes Paket
Zwei Paketversionen miteinander vergleichen
Sourcepakete beziehen
Release-kritische Fehler mit rc-alert finden
dh-make-perl,
Software selbst übersetzen und als deb-Paket einspielen
diffoscope,
Zwei Paketversionen miteinander vergleichen
Die Inhalte eines bereits installierten Paketes überprüfen
dlocate,
dpkg -s Paketname und dlocate -s Paketname
Liste der installierten Kernelpakete anzeigen
Installationsgröße eines Pakets
Paket zu Datei finden
Manpages anzeigen
Die Inhalte eines bereits installierten Paketes überprüfen
MD5-Summen von Dateien mit dlocate anzeigen
Dateien paketbezogen mit dlocate überprüfen
Paket auf Veränderungen prüfen
docker,
Varianten und Formate für Softwarepakete
dphys-config,
Metapakete bauen
dphys-swapfile,
Metapakete bauen
dpkg,
Prioritätsstufe „erforderlich“ (required)
dpkg
dpkg
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Die Inhalte eines bereits installierten Paketes überprüfen
Dateien mit dpkg -V überprüfen
Wiederinstallieren vollständig entfernter Pakete
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Bestehende Konfiguration anwenden
Konfiguration mit dpkg-reconfigure erneut durchführen
Voraussetzungen
Paketkonfiguration sichern
Mit dpkg
Pakete mit dpkg-split aufteilen
dpkg-awk,
Ausgabe minimieren
dpkg-dev,
Source-Pakete (dsc und weitere Dateien)
Voraussetzungen
dpkg-scanpackages
dpkg-repack,
Mit apt-clone
dpkg-sig,
Nur ein Einzelpaket kryptographisch prüfen
Mehrere Pakete prüfen
dpkg-sig verwenden
dpkg-www,
Daten im Paket
In Paketen blättern mittels dpkg-www
dput,
mini-dinstall
dput-ng,
mini-dinstall
equivs,
Vorbereitungen
flatpak,
Varianten und Formate für Softwarepakete
ftp.debian.org,
Pseudopakete im Debian Bug Tracking System
galternatives,
Alternative Standard-Programme mit Debians Alternativen-System
gcc,
Voraussetzungen
gdebi,
GDebi
Mittels gdebi
gdebi-core,
GDebi
gdebi-kde,
GDebi
general,
Pseudopakete im Debian Bug Tracking System
gnome-packagekit,
PackageKit
gnupg,
Zusammenspiel von dpkg und APT
Prioritätsstufe „wichtig“ (important)
goplay,
Debtags-Werkzeuge
Graphische Programme
graphviz,
Recherche mit apt-rdepends
gtkorphan,
gtkorphan
gzip,
Statusdaten von dpkg
how-can-i-help,
Qualitätskontrolle
Welche der von mir genutzten Pakete benötigen Hilfe?
htop,
apt-cache showpkg Paketname
In Paketen blättern mittels dpkg-www
ia32-libs,
Bevor es Multiarch gab
iceweasel,
Paketname
init,
Prioritätsstufe „erforderlich“ (required)
Markierung „essentiell“ (essential)
isenkram,
Neue Hardware
isenkram-cli,
Neue Hardware
less,
Prioritätsstufe „erforderlich“ (required)
libapt-inst2.0,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-inst
libapt-pkg,
Überblick
libapt-pkg-dev,
Vom monolithischen Programm zu Programmkomponenten
libapt-pkg-doc,
Vom monolithischen Programm zu Programmkomponenten
Paket libapt-pkg-doc
libapt-pkg-perl,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg-perl
libapt-pkg5.0,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg
libc6,
Prioritätsstufe „erforderlich“ (required)
libreoffice-calc,
Paketname
libreoffice-writer,
Paketname
libxml2,
Paketname
libxml2-utils,
Paketname
libxslt1-dev,
Paketname
lintian,
GDebi
Qualitätskontrolle
lintian verstehen
localepurge,
localepurge
lsb-release,
Veröffentlichungen
lxc,
Varianten und Formate für Softwarepakete
make,
Voraussetzungen
mc,
apt-show-versions verwenden
Metapakete bauen
mc-data,
Metapakete bauen
mini-dinstall,
mini-dinstall
muon,
Muon
PackageKit
nala,
Nala
netselect,
Am besten erreichbaren Paketmirror finden
netselect-apt,
Am besten erreichbaren Paketmirror finden
nginx,
Verbreitungsgrad von Paketen
In Paketen blättern mittels dpkg-www
oci-image-tool,
Varianten und Formate für Softwarepakete
openvpn,
apt-cache showpkg Paketname
Bestehende Paketversionen klären
Paket über die Angabe der Versionsnummer austauschen
Paket über die Angabe der Veröffentlichung austauschen
packagekit-backend-aptcc,
PackageKit
packagekit-backend-smart,
PackageKit
packagekit-command-not-found,
PackageKit
Fehlendes sofort installieren
packagesearch,
Debtags-Werkzeuge
perl,
Voraussetzungen
perl-base,
Prioritätsstufe „standard“ (standard)
pforth,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
piuparts,
Qualitätskontrolle
popbugs,
Qualitätskontrolle
popularity-contest,
Verbreitungsgrad von Paketen
procps,
Prioritätsstufe „wichtig“ (important)
python-apt,
Bibliothek python-apt
Suche über apt-browse.org
python-pkg-resources,
Lesen und Anzeigen einer Markierung mit aptitude
python-software-common,
Einträge mit add-apt-repository im Griff behalten
python-software-properties,
Einträge mit add-apt-repository im Griff behalten
python-wxversion,
Keryx
rc-alert,
Qualitätskontrolle
reportbug,
Prioritätsstufe „standard“ (standard)
Hintergrundwissen
reprepro,
reprepro
rpm,
Voraussetzungen
rpmlint,
lintian verstehen
samba-common,
Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
sensible-utils,
Alternative Standard-Programme mit Debians Alternativen-System
skype,
Einordnung der Distributionsbereiche in Debian
smartpm,
Smart Package Management (SmartPM)
software-properties-common,
Einträge mit add-apt-repository im Griff behalten
synaptic,
Daten im Paket
Synaptic
In Paketen blättern mittels dpkg-www
tasksel,
Übergangspakete, Metapakete und Tasks
tasksel
tasksel-data,
tasksel
tzdata,
Bestehende Konfiguration eines Pakets anzeigen
Konfiguration mit dpkg-reconfigure erneut durchführen
util-linux,
Ausführbare Dateien anzeigen
Manpages anzeigen
vnstat,
Binärpakete (deb)
vrms,
Einordnung der Distributionsbereiche in Debian
Recherche mit check-dfsg-status (vormals vrms)
wajig,
wajig
whatmaps,
/etc/apt/apt.conf(.d) verstehen
wireshark,
Setzen und Entfernen einer Markierung mit aptitude
Statusdaten von apt
wireshark-common,
Paketname
wnpp,
Pseudopakete im Debian Bug Tracking System
www.debian.org,
Pseudopakete im Debian Bug Tracking System
xpdf,
apt-show-versions verwenden
xsnow,
Pakete mit dpkg-split aufteilen
xz-utils,
Zusammenspiel von dpkg und APT
yum,
Voraussetzungen
zerlegen,
Pakete mit dpkg-split aufteilen
zerlegtes Paket wieder zusammenfügen,
Pakete mit dpkg-split aufteilen
zshdb,
Setzen und Entfernen einer Markierung mit aptitude
zutils,
Statusdaten von dpkg
Debianpaket signieren,
Die Komponenten des Pakets kryptographisch signieren
Debians Alternativen-System,
Alternative Standard-Programme mit Debians Alternativen-System
Prioritäten,
Alternative Standard-Programme mit Debians Alternativen-System
debman,
Man- und Infopages
-f,
Manpages anzeigen
Manpages aus noch nicht installierten Paketen anzeigen
-p,
Manpages aus noch nicht installierten Paketen anzeigen
debmany,
Manpages aus noch nicht installierten Paketen anzeigen
Man- und Infopages
debmirror,
debmirror
deborphan,
Umgang mit Waisen
deborphan
Orphaner und Editkeep
--all-packages,
deborphan
--find-config,
deborphan
--guess,
deborphan
--libdevel,
deborphan
--no-guess,
deborphan
--no-show-section,
deborphan
--show-priority,
deborphan
--show-section,
deborphan
--show-size,
deborphan
-a,
deborphan
-P,
deborphan
-s,
deborphan
-z,
deborphan
Ratemodus,
deborphan
debpatch,
debdelta
debsign
-k,
Die Komponenten des Pakets kryptographisch signieren
debsigs
--default-key,
debsigs benutzen
--sign,
debsigs benutzen
-k,
debsigs benutzen
-t,
debsigs benutzen
debsum,
localepurge
debsums,
Die Inhalte eines bereits installierten Paketes überprüfen
Dateien überprüfen mit debsums
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
--all,
Dateien überprüfen mit debsums
--changed,
Dateien überprüfen mit debsums
--config,
Konfigurationsdateien eines Pakets anzeigen
Dateien überprüfen mit debsums
-a,
Dateien überprüfen mit debsums
-c,
Dateien überprüfen mit debsums
-ce,
Dateien überprüfen mit debsums
-e,
Konfigurationsdateien eines Pakets anzeigen
Dateien überprüfen mit debsums
Debtags,
Sortierung der Pakete nach Verwendungszweck
Kurzinfo zum Debtags-Projekt
Release-kritische Fehler mit rc-alert finden
/var/lib/debtags/vocabulary,
Kurzinfo zum Debtags-Projekt
API,
Webseite zum Projekt
Debtags Editor,
Webseite zum Projekt
Debtags-Werkzeuge
Dokumentation,
Webseite zum Projekt
Enrico Zini,
Kurzinfo zum Debtags-Projekt
Facetten,
Kurzinfo zum Debtags-Projekt
Informationen zu Schlagworte anzeigen,
Informationen zu Schlagworten anzeigen
Integration in die Paketmanager,
Kurzinfo zum Debtags-Projekt
Klassifikationsschema,
Kurzinfo zum Debtags-Projekt
paketbezogene Suche,
Webseite zum Projekt
Projektseite,
Webseite zum Projekt
Recherche anhand der Schlagworte,
Webseite zum Projekt
Schlagworte,
Kurzinfo zum Debtags-Projekt
Schlagworte aktualisieren,
Debtags-Werkzeuge
Schlagworte anzeigen,
Debtags-Werkzeuge
Auf der Kommandozeile
Alle verfügbaren Schlagworte anzeigen
Schlagworte in aptitude anzeigen,
Integration in aptitude
Schnittstellen,
Debtags-Werkzeuge
Statistik,
Webseite zum Projekt
Suche anhand von Schlagworten,
Debtags-Werkzeuge
Auf der Kommandozeile
Vokabular,
Webseite zum Projekt
debtags,
Kurzinfo zum Debtags-Projekt
Webseite zum Projekt
Debtags-Werkzeuge
cat,
Auf der Kommandozeile
diff,
Schlagworte bearbeiten
grep,
Suche mittels debtags
grep --facets,
Auf der Kommandozeile
Suche mittels debtags
grep --invert,
Suche mittels debtags
grep -i,
Suche mittels debtags
grep -names,
Suche mittels debtags
search,
Suche mittels debtags
show,
Auf der Kommandozeile
submit,
Schlagworte bearbeiten
tag,
Auf der Kommandozeile
tag add,
Schlagworte bearbeiten
tag rm,
Schlagworte bearbeiten
tagcat,
Alle verfügbaren Schlagworte anzeigen
tagsearch,
Informationen zu Schlagworten anzeigen
tagshow,
Informationen zu Schlagworten anzeigen
update,
Schlagworte bearbeiten
Debtags Browser,
Suche über den Webbrowser
Debtags Cloud,
Suche über den Webbrowser
Debtags Editor,
Webseite zum Projekt
Debtags-Werkzeuge
Suche über den Webbrowser
Pakete um Schlagworte ergänzen
Debtags-Eintrag
Aufbau,
Suche mittels debtags
debtags-fetch,
Debtags-Werkzeuge
Schlagworte bearbeiten
debtags-submit-patch,
Debtags-Werkzeuge
Schlagworte bearbeiten
debtree,
Zusammenspiel von dpkg und APT
DebWRT,
Embedded-Geräte
Deepin,
Desktop
degrep,
Nach Muster in einem Paket suchen
deinstallieren,
Pakete deinstallieren
Paket löschen / entfernen
del,
Unterkommandos von apt-key
apt-key und apt-mark
depebds --no-breaks,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends,
apt-cache
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit apt-cache
debfoster
Aktualisierung mit Wechsel der Veröffentlichung
Abhängigkeiten anzeigen
depends --important,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --installed,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-conflicts,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-depends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-enhances,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-pre-depends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-recommends,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-replaces,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --no-suggests,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends --recurse,
Ausgabe der Paketabhängigkeiten mit apt-cache
depends -i,
Ausgabe der Paketabhängigkeiten mit apt-cache
deplist,
Abhängigkeiten anzeigen
Derivate,
Kann Paketmanagement Spaß machen?
Was ist Debian?
des gesamten Systems überprüfen,
Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
detail,
wajig
devscripts,
rmadison einsetzen
Rückrichtung: Wer betreut ein bestimmtes Paket
Zwei Paketversionen miteinander vergleichen
Sourcepakete beziehen
Release-kritische Fehler mit rc-alert finden
dfgrep,
Nach Muster in einem Paket suchen
DFSG,
Was ist Debian?
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
dg,
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
dget,
Paketdatei im aktuellen Verzeichnis speichern
Sourcepakete beziehen
dglob,
Bekannte Paketnamen auflisten
-a,
Bekannte Paketnamen auflisten
Einsatz von dglob
-af,
Paketinhalte anzeigen
Einsatz von dglob
-f,
Paketinhalte anzeigen
Einsatz von dglob
dgrep,
Nach Muster in einem Paket suchen
--color regular,
Nach Muster in einem Paket suchen
-i,
Nach Muster in einem Paket suchen
-l,
Nach Muster in einem Paket suchen
dh-make-perl,
Software selbst übersetzen und als deb-Paket einspielen
die Ausgabe mit Platzhaltern anpassen,
aptitude Format Strings
die bestehende Konfiguration verwenden,
Bestehende Konfiguration anwenden
diff,
Schlagworte bearbeiten
diffoscope,
Zwei Paketversionen miteinander vergleichen
Die Inhalte eines bereits installierten Paketes überprüfen
DilOS,
Anstatt Linux
dist-upgrade,
apt-get
Pakete aktualisieren
dist-upgrade und full-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Anmerkungen
Auf der Kommandozeile
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
Distribution aktualisieren,
dist-upgrade und full-upgrade
Abfolge,
Unsere empfohlene Reihenfolge
Release Notes,
Unsere empfohlene Reihenfolge
Veröffentlichungshinweise,
Unsere empfohlene Reihenfolge
Distribution spiegeln,
apt-mirror
Distributionsbereiche,
Was ist Debian?
Sortierung der Pakete nach Verwendungszweck
Begriff,
Distributionsbereiche
contrib,
Distributionsbereiche
Einordnung anhand der Lizenzen,
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
Hintergrund der Einteilung,
Hintergrund der Einteilung in Distributionsbereiche
main,
Distributionsbereiche
main (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
multiverse (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
non-free,
Distributionsbereiche
non-free-firmware,
Distributionsbereiche
Paketverteilung anhand der Lizenzen,
Softwareverteilung
partner (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
restricted (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
universe (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
Unterteilung bei Debian,
Distributionsbereiche
Unterteilung bei Ubuntu,
Einordnung der Distributionsbereiche bei anderen Distributionen
Zuordnung,
Distributionsbereiche
Distributionsbestandteile,
Was ist Debian?
Distributionswechsel
aptitude,
Anmerkungen
Release Notes,
Unsere empfohlene Reihenfolge
Veröffentlichungshinweise,
Unsere empfohlene Reihenfolge
Distributor,
Vom tar.gz zur Linux-Distribution
dlocate,
dpkg -s Paketname und dlocate -s Paketname
Liste der installierten Kernelpakete anzeigen
Installationsgröße eines Pakets
Paket zu Datei finden
Suche in bereits installierten Paketen
Manpages anzeigen
Die Inhalte eines bereits installierten Paketes überprüfen
MD5-Summen von Dateien mit dlocate anzeigen
Dateien paketbezogen mit dlocate überprüfen
Paket auf Veränderungen prüfen
-conf,
Konfigurationsdateien eines Pakets anzeigen
-du,
Installationsgröße eines Pakets
-k,
Liste der installierten Kernelpakete anzeigen
-K,
Liste der installierten Kernelpakete anzeigen
-L,
dlocate -L Paketname
-ls,
Paketinhalte anzeigen
dlocate -ls Paketname
-lsbin,
Ausführbare Dateien anzeigen
-lsconf,
Konfigurationsdateien eines Pakets anzeigen
-lsman,
Manpages erstöbern
-man,
Manpages anzeigen
Manpages erstöbern
-md5check,
Dateien paketbezogen mit dlocate überprüfen
Paket auf Veränderungen prüfen
-md5sum,
MD5-Summen von Dateien mit dlocate anzeigen
Paket auf Veränderungen prüfen
-s,
dpkg -s Paketname und dlocate -s Paketname
-S,
Paket zu Datei finden
Suche in bereits installierten Paketen
DNF,
Zusammenfassung
dnf
dg,
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
downgrade,
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
erase,
Paket löschen / entfernen
group install,
Neue Softwarepakete installieren
group list,
Verfügbare Pakete anzeigen
group remove,
Paket löschen / entfernen
history,
Transaktionshistorie anzeigen
history list all,
Transaktionshistorie anzeigen
info,
Einzelpaket auflisten
install,
Neue Softwarepakete installieren
list,
Einzelpaket auflisten
list available,
Verfügbare Pakete anzeigen
list installed,
Alle installierten Pakete auflisten
Einzelpaket auflisten
list upgrades,
Aktualisierbare Pakete anzeigen
provides,
Paket identifizieren, aus dem eine Datei stammt
remove,
Paket löschen / entfernen
repoquery -l,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
repository-packages list --available,
Verfügbare Pakete anzeigen
update,
Bereits bestehende Softwarepakete erneuern
upgrade,
Bereits bestehende Softwarepakete erneuern
Docker,
Varianten und Formate für Softwarepakete
docker,
Varianten und Formate für Softwarepakete
Dokumentation,
Kann Paketmanagement Spaß machen?
Dokumentation zu aptitude
Dokumentation deb vs. rpm
Handhabung von geschützten Namen und Logos
Weitere Bücher
Webseite zum Projekt
Die installierten Pakete anzeigen
/usr/share/doc/,
Dokumentation in /usr/share/doc/
apt-get,
APT-Spickzettel von Nixcraft
aptitude,
Dokumentation zu aptitude
Dokumentation deb vs. rpm
Benutzerhandbuch zu APT,
apt-doc — das Benutzerhandbuch zu APT
dpkg,
APT-Spickzettel von Nixcraft
Infopages,
Manpages anzeigen
Man- und Infopages
installierter Pakete,
Manpages aus noch nicht installierten Paketen anzeigen
manpages,
Manpages anzeigen
Manpages erstöbern
Manpages,
Man- und Infopages
Manpages installierter Pakete anzeigen,
Manpages aus noch nicht installierten Paketen anzeigen
Manpages nicht installierter Pakete anzeigen,
Manpages aus noch nicht installierten Paketen anzeigen
nicht installierter Pakete,
Manpages aus noch nicht installierten Paketen anzeigen
offline,
Man- und Infopages
Die apt-dpkg-Referenzliste
apt-doc — das Benutzerhandbuch zu APT
Der Debian-Spickzettel
Handbuch zu aptitude
The Debian Administrator’s Handbook
Weitere Bücher
online,
APT-Spickzettel von Nixcraft
Pacman Rosetta
Handbuch zu aptitude
The Debian Administrator’s Handbook
Weitere Bücher
Dokumentation offline,
Dokumentation zu aptitude
Dokumentation online,
Dokumentation zu aptitude
Dokumentationsdateien anzeigen,
Alle Dokumentationsdateien eines Pakets anzeigen
Dokumentationsdateien auflisten,
Alle Dokumentationsdateien eines Pakets anzeigen
Dokumentationspakete,
Dokumentation zu aptitude
dot,
Zusammenspiel von dpkg und APT
dotty,
apt-cache
Recherche mit apt-rdepends
Downgrade,
Was ist Paketmanagement
downgrade,
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
downgraden,
Pakete downgraden
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
download,
apt-get
aptitude
Paketdatei im aktuellen Verzeichnis speichern
Benötigte Pakete vorher explizit herunterladen
Ein Softwarepaket nur herunterladen
dphys-config,
Metapakete bauen
dphys-swapfile,
Metapakete bauen
dpigs,
dpigs
--lines,
dpigs
-H,
dpigs
-n,
dpigs
-S,
dpigs
dpkg,
Debians Paketsystem
Untere Ebene
Prioritätsstufe „erforderlich“ (required)
dpkg
dpkg
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Die Inhalte eines bereits installierten Paketes überprüfen
Dateien mit dpkg -V überprüfen
Wiederinstallieren vollständig entfernter Pakete
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Bestehende Konfiguration anwenden
Konfiguration mit dpkg-reconfigure erneut durchführen
Die apt-dpkg-Referenzliste
Der Debian-Spickzettel
APT-Spickzettel von Nixcraft
Pacman Rosetta
The Debian Administrator’s Handbook
Weitere Bücher
Voraussetzungen
Paketkonfiguration sichern
Mit dpkg
Pakete mit dpkg-split aufteilen
Zusammenfassung
--add-architecture,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--audit,
Bestehende Konfiguration anwenden
--configure,
dpkg
Bestehende Konfiguration anwenden
--contents,
Untere Ebene
dpkg
Paketinhalte anzeigen
dpkg -c deb-Datei
Durchführung
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
--extract,
Mit dpkg die Installationsstruktur herausfinden
--field,
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Abhängigkeiten anzeigen
--force-help,
Aktionen mit dpkg erzwingen
--get-selections,
Mit dpkg
Mit dpkg
--info,
dpkg -I deb-Datei
Durchführung
Paketstatus anzeigen
--install,
Untere Ebene
Umgewandelte Pakete einspielen
Verzeichnis mit Paketen
--list,
dpkg
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
dpkg
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
Mit dpkg
Alle installierten Pakete auflisten
Einzelpaket auflisten
--listfiles,
Untere Ebene
dpkg
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
dpkg -L Paketname
Alle Dateien eines installierten Pakets anzeigen
--load-avail,
Untere Ebene
--merge-avail,
Grundlegendes Vorgehen
--pending,
Bestehende Konfiguration anwenden
--print-architecture,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--print-foreign-architectures,
Multiarch einsetzen
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
--purge,
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
--remove,
Untere Ebene
Fall 1: Paket einfach löschen
Paket löschen / entfernen
--remove-architecture,
Multiarch einsetzen
--search,
Untere Ebene
dpkg
Paket zu Datei finden
Suche in bereits installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
--set-selections,
Mit dpkg
--status,
Untere Ebene
dpkg
dpkg -s Paketname und dlocate -s Paketname
Konfigurationsdateien eines Pakets anzeigen
Einzelpaket auflisten
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
--update-avail,
Grundlegendes Vorgehen
--verify,
Dateien mit dpkg -V überprüfen
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
--verify-format,
Dateien mit dpkg -V überprüfen
-a,
Bestehende Konfiguration anwenden
-c,
Untere Ebene
dpkg
Paketinhalte anzeigen
dpkg -c deb-Datei
Durchführung
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
-C,
Bestehende Konfiguration anwenden
-f,
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Abhängigkeiten anzeigen
-i,
Untere Ebene
Wiederinstallieren bereits installierter Pakete
Mittels dpkg und APT
Umgewandelte Pakete einspielen
Verzeichnis mit Paketen
-I,
dpkg -I deb-Datei
Paketstatus anzeigen
-ihv,
Paket austauschen
-l,
Was ist Paketmanagement
Untere Ebene
dpkg
Bekannte Paketnamen auflisten
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
Vollständige Paketliste anzeigen
Liste anhand von Filtern einschränken
dpkg
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
Mit dpkg
Alle installierten Pakete auflisten
Einzelpaket auflisten
-L,
Untere Ebene
dpkg
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
dpkg -L Paketname
Alle Dateien eines installierten Pakets anzeigen
-P,
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
-r,
Untere Ebene
Fall 1: Paket einfach löschen
Paket löschen / entfernen
-s,
Untere Ebene
dpkg
dpkg -s Paketname und dlocate -s Paketname
grep-available und grep-aptavail benutzen
Konfigurationsdateien eines Pakets anzeigen
Einzelpaket auflisten
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
-S,
Untere Ebene
dpkg
Paket zu Datei finden
Suche in bereits installierten Paketen
Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
Paket identifizieren, aus dem eine Datei stammt
-V,
Dateien mit dpkg -V überprüfen
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
-x,
Mit dpkg die Installationsstruktur herausfinden
/var/lib/dpkg/arch,
Multiarch einsetzen
/var/lib/dpkg/arch-new,
Multiarch einsetzen
/var/lib/dpkg/available,
Ausgabe minimieren
/var/lib/dpkg/status,
Ausgabe minimieren
installierte Pakete aus Debian Backports anzeigen,
Einbindung in den Paketbestand
Paketliste anhand von Filtern einschränken,
Liste anhand von Filtern einschränken
Referenzliste,
Die apt-dpkg-Referenzliste
vollständige Paketliste anzeigen,
Vollständige Paketliste anzeigen
dpkg-architecture
-L,
Debian-Architekturen
dpkg-awk,
Ausgabe minimieren
dpkg-deb,
Untere Ebene
--contents,
Paketinhalte anzeigen
dpkg -c deb-Datei
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
--extract,
Mit dpkg die Installationsstruktur herausfinden
--field,
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Abhängigkeiten anzeigen
--info,
dpkg -I deb-Datei
Paketstatus anzeigen
-c,
Daten im Paket
Paketinhalte anzeigen
dpkg -c deb-Datei
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
-f,
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit dpkg-deb
Abhängigkeiten anzeigen
-I,
dpkg -I deb-Datei
Paketstatus anzeigen
-x,
Mit dpkg die Installationsstruktur herausfinden
dpkg-dev,
Source-Pakete (dsc und weitere Dateien)
Voraussetzungen
dpkg-scanpackages
dpkg-query,
Untere Ebene
--list,
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
--listfiles,
Paketinhalte anzeigen
dpkg -L Paketname
Alle Dateien eines installierten Pakets anzeigen
--search,
Paket zu Datei finden
Suche in bereits installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
--show,
Ausgabe minimieren
--showformat,
Ausgabe minimieren
--status,
dpkg -s Paketname und dlocate -s Paketname
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
-f,
Ausgabe minimieren
-l,
Paketstatus erfragen
dpkg -l Paketname (Langform --list)
In Paketen blättern mittels dpkg-www
-L,
In Paketen blättern mittels dpkg-www
Paketinhalte anzeigen
dpkg -L Paketname
Alle Dateien eines installierten Pakets anzeigen
-s,
dpkg -s Paketname und dlocate -s Paketname
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Paketstatus anzeigen
-S,
In Paketen blättern mittels dpkg-www
Paket zu Datei finden
Suche in bereits installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
-W,
Ausgabe minimieren
-Wf,
dpkg
dpkg-reconfigure,
Wiederinstallieren vollständig entfernter Pakete
Bestehende Konfiguration anwenden
Konfiguration mit dpkg-reconfigure erneut durchführen
dpkg-repack,
Mit apt-clone
dpkg-scanpackages,
dpkg-scanpackages
--multiversion,
dpkg-scanpackages
-m,
dpkg-scanpackages
dpkg-sig,
Nur ein Einzelpaket kryptographisch prüfen
Mehrere Pakete prüfen
dpkg-sig verwenden
--sign,
dpkg-sig verwenden
--verify,
dpkg-sig verwenden
Paketsignatur überprüfen
-k,
dpkg-sig verwenden
dpkg-source,
Source-Pakete (dsc und weitere Dateien)
dpkg-split,
Pakete mit dpkg-split aufteilen
--auto,
Pakete mit dpkg-split aufteilen
--depotdir,
Pakete mit dpkg-split aufteilen
--discard,
Pakete mit dpkg-split aufteilen
--help,
Pakete mit dpkg-split aufteilen
--info,
Pakete mit dpkg-split aufteilen
--join,
Pakete mit dpkg-split aufteilen
--listq,
Pakete mit dpkg-split aufteilen
--msdos,
Pakete mit dpkg-split aufteilen
--npquiet,
Pakete mit dpkg-split aufteilen
--output,
Pakete mit dpkg-split aufteilen
--partsize,
Pakete mit dpkg-split aufteilen
--split,
Pakete mit dpkg-split aufteilen
--version,
Pakete mit dpkg-split aufteilen
-?,
Pakete mit dpkg-split aufteilen
-a,
Pakete mit dpkg-split aufteilen
-d,
Pakete mit dpkg-split aufteilen
-I,
Pakete mit dpkg-split aufteilen
-j,
Pakete mit dpkg-split aufteilen
-l,
Pakete mit dpkg-split aufteilen
-o,
Pakete mit dpkg-split aufteilen
-Q,
Pakete mit dpkg-split aufteilen
-S,
Pakete mit dpkg-split aufteilen
-s,
Pakete mit dpkg-split aufteilen
dpkg-www,
Daten im Paket
In Paketen blättern mittels dpkg-www
-h,
In Paketen blättern mittels dpkg-www
-s,
In Paketen blättern mittels dpkg-www
-stdout,
In Paketen blättern mittels dpkg-www
/etc/dpkg-www.conf,
In Paketen blättern mittels dpkg-www
/etc/dwww/dwww.conf,
In Paketen blättern mittels dpkg-www
Webserver Apache,
In Paketen blättern mittels dpkg-www
Webserver Nginx,
In Paketen blättern mittels dpkg-www
Dpkg::Progress-Fancy,
/etc/apt/apt.conf(.d) verstehen
dput,
mini-dinstall
--unchecked,
Paket in das Repository hochladen
-u,
Paket in das Repository hochladen
.dput.cf,
Konfiguration für dput
Konfiguration,
Konfiguration für dput
dput-ng,
mini-dinstall
Drauger OS,
Spieleplattform
dsc,
Source-Pakete (dsc und weitere Dateien)
dselect,
Debians Paketsystem
Alternativen zu APT
apt-doc — das Benutzerhandbuch zu APT
dselect-upgrade,
apt-get
Dummypaket,
Übergangs- und Metapakete
dump,
apt-cache
Größe des Paketcaches festlegen
Konfiguration von APT anzeigen
dumpavail,
apt-cache
DVD,
Begriff und Hintergrund
Dyson OS,
Anstatt Linux
dzgrep,
Nach Muster in einem Paket suchen
Ebenen,
Aufgaben, Sinn und Zweck des Frontends
Ebenenmodell,
Ebenen
edit-sources,
Paketquellen eintragen und ändern
Weiterentwicklung von APT
editkeep,
Umgang mit Waisen
Orphaner und Editkeep
Edubuntu,
Bildung
Effing Package Management (FPM,
Zusammenfassung
egrep,
Bekannte Paketnamen auflisten
eigenes erstellen,
Eigenes APT-Repository anlegen
reprepro
mini-dinstall
Einbindung in Debian 8 Jessie,
Welche Versionen gibt es als offizielle Backports?
Einbindung in Debian 9 Stretch,
Welche Versionen gibt es als offizielle Backports?
einmalig,
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Einordnung anhand der Lizenzen,
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
Einsatzbereich,
Was ist Debian?
Einsatzzweck,
Was ist Debian?
Eintrag auf syntaktische Korrektheit prüfen,
Einen Eintrag auf syntaktische Korrektheit prüfen
Einträge für Deutschland,
Einträge für Deutschland
Einträge für externe Ressourcen,
Verzeichnis als Paketquelle
Einträge für lokale Ressourcen,
Verzeichnis als Paketquelle
Einträge für nicht-offizielle Pakete,
Einträge für zusätzliche, nicht-offizielle Pakete
Einträge für offizielle Pakete,
Beispieleinträge für offizielle Pakete
Einträge für Quellpakete,
Einträge für Quellpakete
Einträge für Sicherheitsaktualisierungen,
Einträge für Sicherheitsaktualisierungen
Einträge für Verzeichnisse,
Verzeichnis als Paketquelle
Einzelpaket aktualisieren,
Ausgewählte Pakete aktualisieren
Auf der Kommandozeile
ELTS,
Extended Long Term Support (ELTS)
Umgang mit LTS
Dienstleister zur Pflege veralteter LTS-Installationen
emerge,
Untere Ebene
Pacman Rosetta
Emmabuntüs,
Desktop
Empfehlung für die Auswahl,
Geeigneten Paketmirror auswählen
Englischkenntnisse,
Vorkenntnisse
Enrico Zini,
Kurzinfo zum Debtags-Projekt
Verwendetes Vokabular bearbeiten und erweitern
Informationen zu Schlagworten anzeigen
entfernen,
Format der Paketliste
Pakete deinstallieren
Paket löschen / entfernen
Entwicklung,
Vom tar.gz zur Linux-Distribution
Entwicklungsstand,
Bedeutung der verschiedenen Entwicklungsstände
Weiterführende Dokumentation
Umgang mit LTS
Entwicklungsziel,
Was ist Debian?
Entwicklungszweige,
Kann Paketmanagement Spaß machen?
Was ist Debian?
Epoche,
Versionsnummer
equery,
Untere Ebene
equivs,
Vorbereitungen
equivs-build
--full,
Das Paket bauen
erase,
Paket löschen / entfernen
ergänzen,
Einträge mit add-apt-repository im Griff behalten
erneut installieren,
Pakete erneut installieren
Paket über die Angabe der Versionsnummer austauschen
Ein Softwarepaket erneut installieren
erneut installieren und Konfiguration beibehalten,
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
erneut konfigurieren,
Pakete konfigurieren
Bestehende Konfiguration anwenden
Konfiguration mit dpkg-reconfigure erneut durchführen
Errata,
Buchinfo
erstellen,
Metapakete bauen
Erweiterte Langzeitunterstützung,
Extended Long Term Support (ELTS)
erzwingen,
Paketoperationen erzwingen
essentiell,
Zusammenspiel von dpkg und APT
Markierung „essentiell“ (essential)
Ausführbare Dateien anzeigen
aptitude Format Strings
Etch,
Alias-Namen
experimental,
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
explizit entfernen,
Was passiert, wenn Paketmarkierungen geändert werden?
explizit setzen,
Was passiert, wenn Paketmarkierungen geändert werden?
export,
Unterkommandos von apt-key
apt-key und apt-mark
exportall,
Unterkommandos von apt-key
apt-key und apt-mark
Extended LTS,
Extended Long Term Support (ELTS)
Umgang mit LTS
Dienstleister zur Pflege veralteter LTS-Installationen
extern,
Begriff und Hintergrund
extra,
Prioritätsstufe „extra“ (extra)
Facetten,
Kurzinfo zum Debtags-Projekt
FAI,
Einstieg
Fallen bei der Paketumwandlung,
Fallstricke und Besonderheiten bei der Umwandlung
Fallstricke,
Fallstricke und Besonderheiten bei der Umwandlung
Feature Freeze,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
Fedora
biarch,
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Fehler melden,
Pseudopakete im Debian Bug Tracking System
Fehlerberichte filtern,
Bugreports mit apt-listbugs lesen
Fehlerberichte sortieren,
Bugreports mit apt-listbugs lesen
Fehlerdatenbank,
Hintergrundwissen
Fehlermeldungen,
lintian verstehen
lintian verwenden
Felder eines Eintrags,
Format eines Eintrags
FHS,
Fallstricke und Besonderheiten bei der Umwandlung
file
UNIX-Kommando,
Binärpakete (deb)
Filesystem Hierarchy Standard (FHS),
Vorkenntnisse
Voraussetzungen
find,
Suche in noch nicht installierten Paketen
Paket identifizieren, aus dem eine Datei stammt
find-file,
wajig
finger,
Unterkommandos von apt-key
apt-key und apt-mark
Fingerabdruck anzeigen,
Unterkommandos von apt-key
Fink,
Anstatt Linux
Finnix,
Live-CD
Minimalsysteme
Firmware,
Handhabung von geschützten Namen und Logos
Flatpak,
Varianten und Formate für Softwarepakete
flatpak,
Varianten und Formate für Softwarepakete
forget-new,
Aptitude-spezifische Paketmarkierungen
Forky,
Alias-Namen
Format,
Format der Paketliste
Format Strings,
aptitude
Welche Pakete betreut ein Debian-Maintainer
aptitude Format Strings
FPM,
Zusammenfassung
Fragen,
Buchinfo
Free Software Foundation (FSF),
Einordnung der Distributionsbereiche in Debian
freedesktop.org,
Alternative Standard-Programme mit Debians Alternativen-System
Freexian,
Dienstleister zur Pflege veralteter LTS-Installationen
Freexian ELTS,
Dienstleister zur Pflege veralteter LTS-Installationen
frei,
Distributionsbereiche
Fremdformat umwandeln und direkt installieren,
Pakete umwandeln und einspielen
Fremdformate hinzufügen,
Einführung
Frontend,
Frontends für das Paketmanagement
Für die Kommandozeile
ncurses-basierte Programme
GUI zur Paketverwaltung
GDebi
Webbasierte Programme
ftp.debian.org,
Pseudopakete im Debian Bug Tracking System
full-upgrade,
Weiterentwicklung von APT
aptitude
Pakete aktualisieren
dist-upgrade und full-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Anmerkungen
Mit aptitude Vormerkungen machen
Auf der Kommandozeile
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
galternatives,
Alternative Standard-Programme mit Debians Alternativen-System
gcc,
Voraussetzungen
gdebi,
GDebi
Erweiterungen ab APT 1.1
Mittels gdebi
Anbindung an lintian,
GDebi
Backend,
GDebi
Frontend,
GDebi
gdebi-gtk,
GDebi
gdebi-kde,
GDebi
Paketcache aufräumen,
GDebi
gdebi-core,
GDebi
gdebi-gtk,
GDebi
gdebi-kde,
GDebi
gencaches,
apt-cache
general,
Pseudopakete im Debian Bug Tracking System
Gesellschaftsvertrag,
Was ist Debian?
gesicherte Konfiguration wieder einspielen,
Paketkonfiguration sichern
Eine gesicherte Paketkonfiguration wieder einspielen
get,
Benutzung im Detail
gjig,
wajig
gnome-packagekit,
PackageKit
gnupg,
Zusammenspiel von dpkg und APT
Prioritätsstufe „wichtig“ (important)
goadmin,
Debtags-Werkzeuge
golearn,
Debtags-Werkzeuge
gonet,
Debtags-Werkzeuge
gooffice,
Debtags-Werkzeuge
goplay,
Debtags-Werkzeuge
Graphische Programme
gosafe,
Debtags-Werkzeuge
goscience,
Debtags-Werkzeuge
goweb,
Debtags-Werkzeuge
gpg
--verify,
Die Komponenten des Pakets kryptographisch signieren
dpkg-sig verwenden
Paketsignatur überprüfen
Grafik,
Handhabung von geschützten Namen und Logos
graphisch darstellen,
Recherche mit apt-rdepends
graphische Werkzeuge,
Vorkenntnisse
Graphviz,
Zusammenspiel von dpkg und APT
graphviz,
Recherche mit apt-rdepends
grep,
Bekannte Paketnamen auflisten
Konfigurationsdateien eines Pakets anzeigen
Suche mittels debtags
grep --facets,
Auf der Kommandozeile
Suche mittels debtags
grep --invert,
Suche mittels debtags
grep -i,
Suche mittels debtags
grep -names,
Suche mittels debtags
grep-aptavail,
Die Abhängigkeiten eines Pakets auflisten
Einsatz von dglob
Debtags-Werkzeuge
-F,
Ausgabe der Paketabhängigkeiten mit grep-status
-F Package,
Ausgabe der Paketabhängigkeiten mit grep-status
-P,
Ausgabe der Paketabhängigkeiten mit grep-status
-PX,
grep-available und grep-aptavail benutzen
-s,
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available,
grep-available und grep-aptavail benutzen
Suche mit grep-available und grep-status
Debtags-Werkzeuge
--field,
grep-available und grep-status
Suche mit grep-available und grep-status
--ignore-case,
grep-available und grep-status
Suche mit grep-available und grep-status
-F,
grep-available und grep-status
Suche mit grep-available und grep-status
-i,
grep-available und grep-status
Suche mit grep-available und grep-status
-P,
grep-available und grep-status
-S,
grep-available und grep-status
grep-dctrl,
Welche Pakete betreut ein Debian-Maintainer
Debtags-Werkzeuge
-F,
Welche Pakete betreut ein Debian-Maintainer
-s,
Welche Pakete betreut ein Debian-Maintainer
grep-debtags,
Debtags-Werkzeuge
-d,
Suche mittels debtags
-n,
Suche mittels debtags
-s,
Suche mittels debtags
grep-status,
dpigs
Die Abhängigkeiten eines Pakets auflisten
grep-available und grep-status
Suche mit grep-available und grep-status
Debtags-Werkzeuge
--invert-match,
grep-available und grep-status
Suche mit grep-available und grep-status
--show-field,
grep-available und grep-status
Suche mit grep-available und grep-status
-F,
dpkg -s Paketname und dlocate -s Paketname
Ausgabe der Paketabhängigkeiten mit grep-status
Suche mit grep-available und grep-status
Abhängigkeiten anzeigen
-P,
Ausgabe der Paketabhängigkeiten mit grep-status
Abhängigkeiten anzeigen
-s,
Ausgabe der Paketabhängigkeiten mit grep-status
grep-available und grep-status
Suche mit grep-available und grep-status
Abhängigkeiten anzeigen
-v,
grep-available und grep-status
Suche mit grep-available und grep-status
-X,
dpkg -s Paketname und dlocate -s Paketname
Grml,
Live-CD
group install,
Neue Softwarepakete installieren
group list,
Verfügbare Pakete anzeigen
group remove,
Paket löschen / entfernen
groupinstall,
Neue Softwarepakete installieren
Größe festlegen,
Größe des Paketcaches festlegen
Grundwissen,
Grundlagenwissen für Administratoren
gtkorphan,
Umgang mit Waisen
gtkorphan
GUI,
Frontends für das Paketmanagement
GUI zur Paketverwaltung
gui-apt-key,
Alternative Benutzerschnittstellen zur APT-Schlüsselverwaltung
Früher im Buch erwähnte Werkzeuge
gzip,
Statusdaten von dpkg
Hamm,
Alias-Namen
Hardware,
Debian-Architekturen
Einstieg
Hardware provisioning,
Einstieg
Hierarchie,
Motivation
Zusammenfassung
Hintergrund,
Hintergrund
Hintergrund der Einteilung,
Hintergrund der Einteilung in Distributionsbereiche
Hinweis zu fehlender Software,
Empfehlungen mittels command-not-found
hinzufügen,
Format der Paketliste
history,
Transaktionshistorie anzeigen
history info,
Transaktionshistorie anzeigen
history list all,
Transaktionshistorie anzeigen
history package-list,
Transaktionshistorie anzeigen
history packages-list,
Transaktionshistorie anzeigen
history summary,
Transaktionshistorie anzeigen
hold,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit aptitude
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
Was passiert, wenn Paketmarkierungen geändert werden?
Setzen und Entfernen einer Markierung mit aptitude
Anfragen mit apt-mark
Ausgewählte Pakete nicht aktualisieren
Mit apt-mark
Mit Aptitude
Mit Aptitude
Software selbst übersetzen und als deb-Paket einspielen
how-can-i-help,
Qualitätskontrolle
Welche der von mir genutzten Pakete benötigen Hilfe?
--all,
Welche der von mir genutzten Pakete benötigen Hilfe?
--old,
Welche der von mir genutzten Pakete benötigen Hilfe?
--quiet,
Welche der von mir genutzten Pakete benötigen Hilfe?
-a,
Welche der von mir genutzten Pakete benötigen Hilfe?
-o,
Welche der von mir genutzten Pakete benötigen Hilfe?
-q,
Welche der von mir genutzten Pakete benötigen Hilfe?
htop,
apt-cache showpkg Paketname
In Paketen blättern mittels dpkg-www
Suche über die Webseite des Debian-Projekts
Hurd,
Anstatt Linux
ia32-libs,
Bevor es Multiarch gab
iceweasel,
Paketname
ICMP-Pakete vs. UDP-Pakete,
Einen geschützten Paketmirror abfragen
ident,
Physische Installationsmedien mit apt-cdrom einbinden
Illumian,
Anstatt Linux
important (wichtig),
Prioritätsstufe „wichtig“ (important)
in Anwendungen konfigurieren,
Einen Proxy in Anwendungen konfigurieren
indextargets,
Einen Eintrag auf syntaktische Korrektheit prüfen
info,
Mit apt-clone
Einzelpaket auflisten
Abhängigkeiten anzeigen
Paketstatus anzeigen
Infopages,
Manpages anzeigen
Man- und Infopages
Informationen anzeigen,
Unterkommandos von apt-key
Informationen zu Schlagworte anzeigen,
Informationen zu Schlagworten anzeigen
Inhalte anzeigen,
Paketinhalte anzeigen
Alle Dateien eines installierten Pakets anzeigen
init,
Prioritätsstufe „erforderlich“ (required)
Markierung „essentiell“ (essential)
install,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
apt-get
Weiterentwicklung von APT
wajig
tasksel
aptitude
Nala
Smart Package Management (SmartPM)
Paketlisten und Muster
Durchführung
Erweiterungen ab APT 1.1
install
Paket über die Angabe der Versionsnummer austauschen
Mit aptitude Vormerkungen machen
Vormerkungen ausführen
Mit apt-get
Auf der Kommandozeile
Mittels apt
Mit apt-get
Benutzung im Detail
Neue Softwarepakete installieren
Bereits bestehende Softwarepakete erneuern
install --assume-yes,
Vormerkungen simulieren
install --downloadonly,
Ein Softwarepaket nur herunterladen
install --dry-run,
Vorbereitungen
install --fix-broken,
Paket austauschen
Mittels dpkg und APT
Umgewandelte Pakete einspielen
install --just-print,
Vorbereitungen
install --no-act,
Vorbereitungen
install --no-download,
Installation zwischengespeicherter Pakete aus dem Paketcache
install --recon,
Vorbereitungen
install --reinstall,
Wiederinstallieren bereits installierter Pakete
Paket über die Angabe der Versionsnummer austauschen
Ein Softwarepaket erneut installieren
install --simulate,
Vorbereitungen
Vormerkungen simulieren
install --y,
Vormerkungen simulieren
install -f,
Paket austauschen
Mittels dpkg und APT
Umgewandelte Pakete einspielen
install -s,
Vorbereitungen
Vormerkungen simulieren
install -t,
Aktualisierung mit Wechsel der Veröffentlichung
Installation,
Setup und Installation
Installation aus dem Paketcache,
Installation zwischengespeicherter Pakete aus dem Paketcache
Installationsgröße anzeigen,
Installationsgröße eines Pakets
Installationsmedien,
Paketquellen
Installationsmedium einbinden,
Einbindung fester Installationsmedien
Installationsvarianten,
Paketquellen
installieren,
Pakete installieren
Verzeichnis mit Paketen
dpkg-scanpackages
Neue Softwarepakete installieren
installierte Pakete anzeigen,
Einbindung in den Paketbestand
Die installierten Pakete anzeigen
installierte Pakete aus Debian Backports anzeigen,
Einbindung in den Paketbestand
Die installierten Pakete anzeigen
installierter Pakete,
Manpages aus noch nicht installierten Paketen anzeigen
installiertes anzeigen,
Liste der installierten Pakete anzeigen und deuten
Alle installierten Pakete auflisten
Integration in die Paketmanager,
Kurzinfo zum Debtags-Projekt
Integration in tasksel,
Neue Hardware
interaktiver Abhängigkeitsauflöser,
aptitude
ipkg,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
isenkram,
Neue Hardware
Integration in tasksel,
Neue Hardware
isenkram-autoinstall-firmware,
Neue Hardware
isenkram-cli,
Neue Hardware
isenkram-lookup,
Neue Hardware
isenkram-pkginstall,
Neue Hardware
ISO-Images,
Physische Installationsmedien mit apt-cdrom einbinden
Jessie,
Alias-Namen
jumpstart,
Einstieg
Kali Linux,
Live-CD
Kategoriebrowser,
aptitude
keep,
Mit Aptitude
Mit Aptitude
keep-all,
Vormerkungen wieder aufheben
Mit Aptitude
Mit Aptitude
Keryx,
Strategien
Keryx
Keyring,
Prüfung eines Paketes auf Unversehrtheit
kickstart,
Einstieg
Klassifikationsschema,
Kurzinfo zum Debtags-Projekt
Klonen einer bestehenden Installation,
Paketkonfiguration sichern
Knoppix,
Live-CD
Kombination von Paketcache und eigenem Paketmirror,
Abgrenzung zum Betreiben eines eigenen Paketmirrors
Kommandozeile,
Vorkenntnisse
Frontends für das Paketmanagement
Für die Kommandozeile
Konfiguration,
Konfiguration für mini-dinstall
Konfiguration für dput
Konfiguration ändern,
Pakete konfigurieren
Konfiguration anzeigen,
Konfiguration von APT anzeigen
Konfiguration bei APT,
Konfigurationsdateien und Einstellungen
Konfiguration bei Aptitude,
Aptitude über HTTP-Proxy
Konfiguration bei Synaptic,
Konfigurationsdateien und Einstellungen
Konfiguration des Clients,
Client anpassen
Konfiguration des Servers,
Serverkonfiguration
Konfigurationsdatei,
Benutzte Paketquellen
/etc/alternatives/,
Alternative Standard-Programme mit Debians Alternativen-System
/etc/apt/apt.conf,
PDiffs
/etc/apt/sources.list,
Benutzte Paketquellen
/etc/apt/sources.list.d/,
Benutzte Paketquellen
/etc/locale.nopurge,
localepurge
/var/cache/debconf,
Konfiguration mit dpkg-reconfigure erneut durchführen
Konfigurationsdateien anzeigen,
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Konfigurationsdateien auflisten,
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Konfigurationsdateien löschen,
deborphan
Paket löschen / entfernen
Konfigurationsmanagement,
Einstieg
konfigurieren,
Pakete konfigurieren
Kubuntu,
Muon
PackageKit
Desktop
Kurzbezeichnung,
Sortierung der Pakete nach Verwendungszweck
landscape-client,
Ubuntu Landscape
landscape-client-ui,
Ubuntu Landscape
landscape-client-ui-install,
Ubuntu Landscape
landscape-common,
Ubuntu Landscape
Langzeitunterstützung,
Long Term Support (LTS)
Weiterführende Dokumentation
Umgang mit LTS
Leistungskriterien,
Am besten erreichbaren Paketmirror finden
netselect und netselect-apt
Lenny,
Alias-Namen
LernStick,
Bildung
Lernziele,
Und das können Sie nach der Lektüre …
less,
Prioritätsstufe „erforderlich“ (required)
libapt-inst,
Obere Ebene
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-inst
libapt-inst2.0,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-inst
libapt-pkg,
Obere Ebene
Zusammenspiel von dpkg und APT
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg
Überblick
libapt-pkg-dev,
Vom monolithischen Programm zu Programmkomponenten
libapt-pkg-doc,
Vom monolithischen Programm zu Programmkomponenten
Paket libapt-pkg-doc
libapt-pkg-perl,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg-perl
libapt-pkg5.0,
Vom monolithischen Programm zu Programmkomponenten
Bibliothek libapt-pkg
libc6,
Prioritätsstufe „erforderlich“ (required)
libelektra,
Zukunft von APT, dpkg und Freunden
libreoffice-calc,
Paketname
libreoffice-writer,
Paketname
libxml2,
Paketname
libxml2-utils,
Paketname
libxslt1-dev,
Paketname
LiMux,
Desktop
lintian,
GDebi
Qualitätskontrolle
lintian verstehen
Bereits installierte Pakete mit adequate prüfen
Hintergrundwissen
--color auto,
lintian verwenden
--display-experimental,
lintian verwenden
--display-info,
lintian verwenden
--info,
lintian verwenden
--pedantic,
lintian verwenden
--verbose,
lintian verwenden
-E,
lintian verwenden
-I,
lintian verwenden
-i,
lintian verwenden
-v,
lintian verwenden
Arbeitsweise,
lintian verwenden
Fehlermeldungen,
lintian verstehen
lintian verwenden
Tests,
lintian verstehen
lintian-info,
lintian verwenden
Linux Containers,
Varianten und Formate für Softwarepakete
Linux Mint,
Paketmirror für andere Distributionen
Suche über die Webseite von Debian-Derivaten
Desktop
Linux Mint Debian Edition (LMDE),
Desktop
Linux-Distribution
Debian,
Vom tar.gz zur Linux-Distribution
Debians Paketsystem
Distributor,
Vom tar.gz zur Linux-Distribution
Entwicklung,
Vom tar.gz zur Linux-Distribution
Paketabhängigkeiten,
Debians Paketsystem
Paketierung,
Vom tar.gz zur Linux-Distribution
Debians Paketsystem
Softwarestrukturen,
Vom tar.gz zur Linux-Distribution
Verwaltung,
Vom tar.gz zur Linux-Distribution
Linux-Zertifizierung,
Und das können Sie nach der Lektüre …
list,
Unterkommandos von apt-key
apt-key und apt-mark
Weiterentwicklung von APT
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
apt-file show Paketname und apt-file list Paketname
Bugreports mit apt-listbugs lesen
Alle installierten Pakete auflisten
Einzelpaket auflisten
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
Verfügbare Pakete anzeigen
list --all-versions,
Mit apt stöbern
list --available,
Verfügbare Pakete anzeigen
list --installed,
apt list --installed
Mit apt
Alle installierten Pakete auflisten
list --upgradable,
Grundlegendes Vorgehen
apt benutzen
Aktualisierbare Pakete anzeigen
list all,
Alle installierten Pakete auflisten
list available,
Alle installierten Pakete auflisten
Verfügbare Pakete anzeigen
list installed,
Alle installierten Pakete auflisten
Einzelpaket auflisten
list updates,
Alle installierten Pakete auflisten
list updates --all,
Aktualisierbare Pakete anzeigen
list upgrades,
Aktualisierbare Pakete anzeigen
list-orphans,
wajig
wajig
Liste der installieren Pakete ermitteln,
Die bestehende Paketkonfiguration auslesen
Liste der installierten Kernelpakete anzeigen,
Liste der installierten Kernelpakete anzeigen
listfiles,
wajig
Lizenz,
Quellcode und Lizenz
Lizenzen,
Kann Paketmanagement Spaß machen?
localepurge,
localepurge
localinstall,
deb-Pakete in rpm-Strukturen
Neue Softwarepakete installieren
Logdatei
/var/log/apt/history.log,
Statusdaten von apt
/var/log/dpkg.log,
Statusdaten von dpkg
logrotate,
Statusdaten von dpkg
Statusdaten von apt
lokal,
Begriff und Hintergrund
Eigenes APT-Repository anlegen
Verzeichnis mit Paketen
dpkg-scanpackages
reprepro
mini-dinstall
lokal auspacken,
Mit dpkg die Installationsstruktur herausfinden
lokale Konfigurationsdateien,
Konfigurationsdateien von aptitude
lokales Depot,
Hintergrundwissen
lokales Paket installieren,
Mittels apt
lokales Paketarchiv,
Einbindung fester Installationsmedien
Lokalisierung der Ausgaben,
Vorkenntnisse
löschen,
Format der Paketliste
Pakete deinstallieren
Paket löschen / entfernen
LPI,
Und das können Sie nach der Lektüre …
Grundwissen,
Grundlagenwissen für Administratoren
Material,
Grundlagenwissen für Administratoren
Vorbereitung,
Grundlagenwissen für Administratoren
Zertifizierung,
Grundlagenwissen für Administratoren
lsb-release,
Veröffentlichungen
lsb_release
--all,
Veröffentlichungen
-a,
Veröffentlichungen
LTS,
Long Term Support (LTS)
Weiterführende Dokumentation
Umgang mit LTS
LXC,
Varianten und Formate für Softwarepakete
lxc,
Varianten und Formate für Softwarepakete
madison,
apt-cache
apt-cache benutzen
Maemo,
Mobile Architekturen
main,
Distributionsbereiche
main (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
Maintainer-Skripte,
Varianten und Formate für Softwarepakete
postinst,
Generell: 2 Ebenen
Steuerdateien und Skripte
Durchführung
Bestehende Konfiguration anwenden
Hintergrund und Fragen zum Downgrade
Vor- und Nachteile
postrm,
Generell: 2 Ebenen
Steuerdateien und Skripte
Hintergrund und Fragen zum Downgrade
preinst,
Generell: 2 Ebenen
Steuerdateien und Skripte
Durchführung
Hintergrund und Fragen zum Downgrade
Vor- und Nachteile
prerm,
Generell: 2 Ebenen
Steuerdateien und Skripte
Hintergrund und Fragen zum Downgrade
make,
Voraussetzungen
manpages,
Manpages anzeigen
Manpages erstöbern
Manpages,
Man- und Infopages
Manpages installierter Pakete anzeigen,
Manpages aus noch nicht installierten Paketen anzeigen
Manpages nicht installierter Pakete anzeigen,
Manpages aus noch nicht installierten Paketen anzeigen
manual,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
apt-key und apt-mark
markauto,
Setzen und Entfernen einer Markierung mit aptitude
Material,
Grundlagenwissen für Administratoren
Max-Age,
Schalter zur Steuerung des Cache-Verhaltens
mc,
apt-show-versions verwenden
Metapakete bauen
mc-data,
Metapakete bauen
MD5-Summen aller Dateien anzeigen,
MD5-Summen von Dateien mit dlocate anzeigen
MD5-Summen aller Dateien überprüfen,
Dateien paketbezogen mit dlocate überprüfen
Dateien überprüfen mit debsums
Meego,
Mobile Architekturen
mehrere Pakete überprüfen,
Mehrere Pakete prüfen
Metadaten,
Binärpakete (deb)
Einführung
Metainformationen,
Generell: 2 Ebenen
Mit ar in seine Bestandteile zerlegen
Metapaket,
Übergangspakete, Metapakete und Tasks
Übergangs- und Metapakete
tasksel
Communtu
Metapakete bauen
benennen,
Metapakete bauen
erstellen,
Metapakete bauen
Tasks,
Übergangspakete, Metapakete und Tasks
Mikro-Binärpaket,
Übergangspakete, Metapakete und Tasks
Mikro-Binärpakete
udeb,
Mikro-Binärpakete
mini-dinstall,
mini-dinstall
--batch,
Konfiguration für dput
-b,
Konfiguration für dput
.mini-dinstall.conf,
Konfiguration für mini-dinstall
Konfiguration,
Konfiguration für mini-dinstall
minid-install,
Einen eigenen APT-Mirror aufsetzen
minidak,
Einen eigenen APT-Mirror aufsetzen
mintbackup,
Mintbackup
mischen,
Benutzte Paketquellen
Pakete aus zusätzlichen Quellen ergänzen
mit alien umwandeln,
Voraussetzungen
mit aptitude entfernen,
Setzen und Entfernen einer Markierung mit aptitude
mit aptitude setzen,
Setzen und Entfernen einer Markierung mit aptitude
mit wget benutzen,
Mittels wget
Mitmachen,
Technische Basis
Quellcode und Lizenz
mittels APT,
APT und apt-cache
Suche mit apt-cache
mittels apt-browse.org,
Daten im Paket
Suche über apt-browse.org
Paketsuchmaschinen
mittels apt-cache,
Paketnamen
APT und apt-cache
Suche mit apt-cache
mittels apt-get.org,
Suche über apt-get.org
Paketsuchmaschinen
mittels aptitude,
Paketnamen
aptitude
Welche Pakete betreut ein Debian-Maintainer
mittels axi-cache,
Suche mit axi-cache
mittels dd-list,
Rückrichtung: Wer betreut ein bestimmtes Paket
mittels dpkg,
Paketnamen
dpkg
Suche in bereits installierten Paketen
mittels dpkg-www,
In Paketen blättern mittels dpkg-www
mittels grep-available,
grep-available und grep-status
Suche mit grep-available und grep-status
mittels grep-dctrl,
Welche Pakete betreut ein Debian-Maintainer
mittels grep-status,
grep-available und grep-status
Suche mit grep-available und grep-status
mittels PackageKit,
Paketnamen
mittels Pkgs,
Paketsuchmaschinen
mittels Repology,
Paketsuchmaschinen
mittels Rpmfind,
Paketsuchmaschinen
mittels Rpmseek,
Paketsuchmaschinen
mittels SmartPM,
Paketnamen
SmartPM
mittels Synaptic,
Paketnamen
Synaptic
Welche Pakete betreut ein Debian-Maintainer
mittels Webbrowser,
Pakete ohne Paketmirror beziehen
Modularität,
Kann Paketmanagement Spaß machen?
multiarch,
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Bevor es Multiarch gab
Cupt
Paketlisten und Muster
Multiarch,
Multiarch einsetzen
Fall 5: Paket für eine ausgewählte Architektur entfernen
multiverse (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
Muon,
Debians Paketsystem
Obere Ebene
Werkzeuge, die verschiedene Paketformate unterstützen
Alternativen zu APT
Muon
PackageKit
muon,
Muon
PackageKit
Muster,
Mit apt-get
Mit aptitude
MX Linux,
Live-CD
nach Architektur filtern,
rmadison einsetzen
nach Binärpaketen,
Suche über die Webseite des Debian-Projekts
nach Paketen aus nicht-vertrauenswürdiger Quelle,
aptitude Format Strings
nach Prioritäten finden,
Pakete nach Prioritäten finden
nach Veröffentlichung filtern,
rmadison einsetzen
nala,
Nala
install,
Nala
purge,
Nala
remove,
Nala
remove --purge,
Nala
Namensschema,
Benennung einer Paketdatei
Paketmirror bei Debian
ncurses,
Zusammenspiel von dpkg und APT
Ncurses,
Zusammenspiel von dpkg und APT
net-update,
Unterkommandos von apt-key
apt-key und apt-mark
netselect,
Am besten erreichbaren Paketmirror finden
netselect und netselect-apt
-,
Anzahl der Hops begrenzen
-I,
Einen geschützten Paketmirror abfragen
-v,
Paketquellen nach Pingzeiten und Entfernung auswählen
-vv,
Paketquellen nach Pingzeiten und Entfernung auswählen
-vvv,
Paketquellen nach Pingzeiten und Entfernung auswählen
Anzahl der Hops begrenzen
Einen geschützten Paketmirror abfragen
-vvvv,
Paketquellen nach Pingzeiten und Entfernung auswählen
ICMP-Pakete vs. UDP-Pakete,
Einen geschützten Paketmirror abfragen
netselect-apt,
Am besten erreichbaren Paketmirror finden
netselect und netselect-apt
--arch,
Liste der Paketquellen mit netselect-apt generieren lassen
--country,
Liste der Paketquellen mit netselect-apt generieren lassen
--ftp,
Liste der Paketquellen mit netselect-apt generieren lassen
--nonfree,
Liste der Paketquellen mit netselect-apt generieren lassen
--outfile,
Liste der Paketquellen mit netselect-apt generieren lassen
--sources,
Liste der Paketquellen mit netselect-apt generieren lassen
-a,
Liste der Paketquellen mit netselect-apt generieren lassen
-c,
Liste der Paketquellen mit netselect-apt generieren lassen
-f,
Liste der Paketquellen mit netselect-apt generieren lassen
-n,
Liste der Paketquellen mit netselect-apt generieren lassen
-o,
Liste der Paketquellen mit netselect-apt generieren lassen
-s,
Liste der Paketquellen mit netselect-apt generieren lassen
netzbasierte Installation,
Geeigneten Paketmirror auswählen
Netzwerk,
Begriff und Hintergrund
Netzwerkinstallation,
Paketquellen
Netzwerklast,
Vor- und Nachteile
neue Pakete anzeigen,
Neue Pakete anzeigen
Nexenta OS,
Anstatt Linux
nginx,
Verbreitungsgrad von Paketen
In Paketen blättern mittels dpkg-www
nicht aktualisieren,
Ausgewählte Pakete nicht aktualisieren
nicht installierter Pakete,
Manpages aus noch nicht installierten Paketen anzeigen
nicht-offiziell,
Einträge für zusätzliche, nicht-offizielle Pakete
NMU,
Versionsnummer
No-Cache,
Schalter zur Steuerung des Cache-Verhaltens
No-Store,
Schalter zur Steuerung des Cache-Verhaltens
non-free,
Distributionsbereiche
non-free-firmware,
Distributionsbereiche
Nummerierung,
Alias-Namen
nur die Paketnamen ausgeben,
Ausgabe minimieren
nur herunterladen,
Paketdatei im aktuellen Verzeichnis speichern
Benötigte Pakete vorher explizit herunterladen
Ein Softwarepaket nur herunterladen
Nutzung von PPAs,
Aufruf und Optionen
Nutzungsgrad von Paketen,
Verbreitungsgrad von Paketen
obere Ebene,
Obere Ebene
oci-image-tool,
Varianten und Formate für Softwarepakete
öffentlich zugänglich machen,
Einen eigenen APT-Mirror aufsetzen
offizielle Liste (Debian),
Geeigneten Paketmirror auswählen
Paketmirror bei Debian
offizielle Liste (Ubuntu),
Paketmirror für andere Distributionen
offline,
Man- und Infopages
Die apt-dpkg-Referenzliste
apt-doc — das Benutzerhandbuch zu APT
Der Debian-Spickzettel
Handbuch zu aptitude
The Debian Administrator’s Handbook
Weitere Bücher
ohne Paketmirror,
Pakete ohne Paketmirror beziehen
oldoldstable,
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
Umgang mit LTS
oldstable,
Bedeutung der verschiedenen Entwicklungsstände
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
online,
APT-Spickzettel von Nixcraft
Pacman Rosetta
Handbuch zu aptitude
The Debian Administrator’s Handbook
Weitere Bücher
Online-Fassung,
Online-Fassung
OpenContainers,
Varianten und Formate für Softwarepakete
OpenMoko,
Varianten und Formate für Softwarepakete
PackageKit
Mobile Architekturen
openvpn,
apt-cache showpkg Paketname
Bestehende Paketversionen klären
Paket über die Angabe der Versionsnummer austauschen
Paket über die Angabe der Veröffentlichung austauschen
OpenWrt,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
opkg,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
Optimierungspotential,
Funktionsweise
optional,
Prioritätsstufe „optional“ (optional)
Organisation im Paketpool,
Organisation der Pakete im Paketpool
orphaner,
Umgang mit Waisen
Orphaner und Editkeep
orphans,
wajig
OS provisioning,
Einstieg
pacapt,
deb-Pakete in rpm-Strukturen
Package Installation UPgrading And Removal Testing Suite (Piuparts),
Qualitätskontrolle
PackageKit,
Debians Paketsystem
Obere Ebene
Werkzeuge, die verschiedene Paketformate unterstützen
PackageKit
Fehlendes sofort installieren
packagekit-backend-aptcc,
PackageKit
packagekit-backend-smart,
PackageKit
packagekit-command-not-found,
PackageKit
Fehlendes sofort installieren
PackageSearch,
Debians Paketsystem
Debtags-Werkzeuge
Graphische Programme
Graphische Programme
packagesearch,
Debtags-Werkzeuge
Pacman,
Untere Ebene
Pacman Rosetta
Paket
Abhängigkeiten anzeigen,
Paketabhängigkeiten anzeigen
Abhängigkeiten anzeigen
aktualisierbare Pakete anzeigen,
Aktualisierbare Pakete anzeigen
Aktualisierbare Pakete anzeigen
aktualisieren,
Pakete aktualisieren
install
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Ausgewählte Pakete aktualisieren
Auf der Kommandozeile
Bereits bestehende Softwarepakete erneuern
Änderungen nachlesen,
Das Änderungsprotokoll beziehen
Zwei Paketversionen miteinander vergleichen
Änderungsprotokoll,
Das Änderungsprotokoll beziehen
auf unerwünschte Veränderungen prüfen,
Paket auf unerwünschte Veränderungen prüfen
auf Veränderungen prüfen,
Die Inhalte eines bereits installierten Paketes überprüfen
Paketsignatur überprüfen
Paket auf Veränderungen prüfen
auf Vertrauenswürdigkeit prüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Paketsignatur überprüfen
bekannte Pakete auflisten,
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
bereitstellen,
Eigenes APT-Repository anlegen
Verzeichnis mit Paketen
dpkg-scanpackages
reprepro
mini-dinstall
bestehende Konfiguration anzeigen,
Pakete konfigurieren
Bestehende Konfiguration eines Pakets anzeigen
bestimmte Version installieren,
Pakete downgraden
Paket über die Angabe der Versionsnummer austauschen
Paket über die Angabe der Veröffentlichung austauschen
Changelog anzeigen,
Das Änderungsprotokoll beziehen
Dateien auf Integrität prüfen,
Dateien überprüfen mit debsums
deinstallieren,
Pakete deinstallieren
Paket löschen / entfernen
die bestehende Konfiguration verwenden,
Bestehende Konfiguration anwenden
Dokumentationsdateien anzeigen,
Alle Dokumentationsdateien eines Pakets anzeigen
Dokumentationsdateien auflisten,
Alle Dokumentationsdateien eines Pakets anzeigen
downgraden,
Pakete downgraden
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
Einzelpaket aktualisieren,
Ausgewählte Pakete aktualisieren
Auf der Kommandozeile
entfernen,
Pakete deinstallieren
Paket löschen / entfernen
erneut installieren,
Pakete erneut installieren
Paket über die Angabe der Versionsnummer austauschen
Ein Softwarepaket erneut installieren
erneut installieren und Konfiguration beibehalten,
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
erneut konfigurieren,
Pakete konfigurieren
Bestehende Konfiguration anwenden
Konfiguration mit dpkg-reconfigure erneut durchführen
Inhalte anzeigen,
Paketinhalte anzeigen
Alle Dateien eines installierten Pakets anzeigen
Installation aus dem Paketcache,
Installation zwischengespeicherter Pakete aus dem Paketcache
Installationsgröße anzeigen,
Installationsgröße eines Pakets
installieren,
Pakete installieren
Verzeichnis mit Paketen
dpkg-scanpackages
Neue Softwarepakete installieren
installiertes anzeigen,
Liste der installierten Pakete anzeigen und deuten
Alle installierten Pakete auflisten
Konfiguration ändern,
Pakete konfigurieren
Konfigurationsdateien anzeigen,
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Konfigurationsdateien auflisten,
Konfigurationsdateien eines Pakets anzeigen
Alle Konfigurationsdateien eines Pakets anzeigen
Konfigurationsdateien löschen,
deborphan
Paket löschen / entfernen
konfigurieren,
Pakete konfigurieren
Liste der installierten Kernelpakete anzeigen,
Liste der installierten Kernelpakete anzeigen
löschen,
Pakete deinstallieren
Paket löschen / entfernen
MD5-Summen aller Dateien anzeigen,
MD5-Summen von Dateien mit dlocate anzeigen
MD5-Summen aller Dateien überprüfen,
Dateien paketbezogen mit dlocate überprüfen
Dateien überprüfen mit debsums
mit alien umwandeln,
Voraussetzungen
nicht aktualisieren,
Ausgewählte Pakete nicht aktualisieren
nur herunterladen,
Paketdatei im aktuellen Verzeichnis speichern
Benötigte Pakete vorher explizit herunterladen
Ein Softwarepaket nur herunterladen
Paketpriorität,
Paket-Priorität und essentielle Pakete
Rückportierung,
Bedeutung der verschiedenen Entwicklungsstände
Backports
Debian Backports
Rückwärtsabhängigkeiten auflisten,
Anzeige der umgekehrten Paketabhängigkeiten
Abhängigkeiten anzeigen
Signatur mehrerer Pakete überprüfen,
Mehrere Pakete prüfen
Signatur überprüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Nur ein Einzelpaket kryptographisch prüfen
Paketsignatur überprüfen
Status anzeigen,
Paketstatus erfragen
Ausgabe von dpkg interpretieren
Alle installierten Pakete auflisten
Einzelpaket auflisten
Paketstatus anzeigen
Transaktionshistorie anzeigen,
Transaktionshistorie anzeigen
verfügbare Pakete anzeigen,
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
verfügbare Versionen anzeigen,
Aktualisierbare Pakete anzeigen
aptitude verwenden
Bestehende Paketversionen klären
verifizieren,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Die Inhalte eines bereits installierten Paketes überprüfen
Paketsignatur überprüfen
zu Datei finden,
Paket zu Datei finden
Paket identifizieren, aus dem eine Datei stammt
Zustand anzeigen,
Ausgabe von dpkg interpretieren
Alle installierten Pakete auflisten
Einzelpaket auflisten
Zwei Paketversionen miteinander vergleichen,
Zwei Paketversionen miteinander vergleichen
Paket installieren,
Platte läuft voll
Auswahl anhand der Veröffentlichung,
Paket über die Angabe der Veröffentlichung austauschen
Auswerten der Logdateien,
Liste der zuletzt installierten Pakete anzeigen
bestimmte Version,
Pakete downgraden
Paket über die Angabe der Versionsnummer austauschen
ohne Paketmirror,
Pakete ohne Paketmirror beziehen
über den Webbrowser,
Pakete ohne Paketmirror beziehen
Sinn und Zweck
zuletzt installierte Pakete anzeigen,
Liste der zuletzt installierten Pakete anzeigen
Paketabhängigkeiten,
Debians Paketsystem
auflisten,
Die Abhängigkeiten eines Pakets auflisten
Abhängigkeiten anzeigen
Auflistung,
Was ist Paketmanagement
Auflistung einschränken,
Ausgabe der Paketabhängigkeiten mit apt-cache
des gesamten Systems überprüfen,
Prüfen, ob die Abhängigkeiten des gesamten Systems erfüllt sind
graphisch darstellen,
Recherche mit apt-rdepends
Rückwärtsabhängigkeiten auflisten,
Anzeige der umgekehrten Paketabhängigkeiten
Abhängigkeiten anzeigen
unerfüllte Abhängigkeiten auflisten,
Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
verstehen,
Paketabhängigkeiten anzeigen
zählen,
Paketcache-Status
Paketaktionen
Muster,
Mit apt-get
Mit aptitude
Paketliste,
Mit apt-get
Mit aptitude
vormerken,
Vormerkungen über die Kommandozeile durchführen
Vormerkungen über die Textoberfläche durchführen
Paketaktionen vormerken,
Vormerkungen über die Kommandozeile durchführen
Vormerkungen über die Textoberfläche durchführen
Paketarchiv,
Bestehende Paketversionen klären
Paketauswahl,
Was ist Paketmanagement
Paketbeschreibung,
Was ist Paketmanagement
Vom monolithischen Programm zu Programmkomponenten
Basisformat,
Konzepte und Ideen dahinter
Debtags,
Kurzinfo zum Debtags-Projekt
Schlüsselworte für Binärpakete,
Binärpakete
Software selbst übersetzen und als deb-Paket einspielen
Schlüsselworte für Sourcepakete,
Sourcepakete
paketbezogene Suche,
Webseite zum Projekt
Paketbezug,
Paketquellen
Einbindung in den Paketbestand
Paketcache,
Was ist Paketmanagement
Installation zwischengespeicherter Pakete aus dem Paketcache
Überblick
Cache-Verzeichnis auf separater Partition
Platte läuft voll
/var/cache/apt/archives/,
Hintergrundwissen
Dateien im Paketcache
Größe des Paketcaches
Weshalb aufräumen?
Paketdatei im lokalen Paketcache speichern
Wiederinstallieren bereits installierter Pakete
/var/cache/apt/archives/lock/,
Dateien im Paketcache
/var/cache/apt/archives/partial/,
Hintergrundwissen
Dateien im Paketcache
Weshalb aufräumen?
Kommandos zum Aufräumen
Paketdatei im lokalen Paketcache speichern
Abgrenzung zum eigenen Paketmirror,
Abgrenzung zum Betreiben eines eigenen Paketmirrors
APT-Cache,
Begriff
apt-cacher,
apt-cacher
apt-cacher-ng,
apt-cacher-ng
aptitude::AutoClean-After-Update,
Paketverwaltung passend konfigurieren
aufräumen,
Weshalb aufräumen?
Ausfallsicherheit im Netzwerk,
Vor- und Nachteile
Bedarf an Speicherplatz,
Vor- und Nachteile
Begriff,
Hintergrundwissen
belegter Speicherplatz,
Größe des Paketcaches
Bezug eines Softwarepaketes,
Begriff
Cache,
Begriff
Dateien im Paketcache,
Dateien im Paketcache
Größe festlegen,
Größe des Paketcaches festlegen
Kombination von Paketcache und eigenem Paketmirror,
Abgrenzung zum Betreiben eines eigenen Paketmirrors
lokales Depot,
Hintergrundwissen
Netzwerklast,
Vor- und Nachteile
Optimierungspotential,
Funktionsweise
Status anzeigen,
Paketcache-Status
Verfallsdatum gecachter Pakete,
Vor- und Nachteile
Vor- und Nachteile,
Vor- und Nachteile
Zustand anzeigen,
Paketcache-Status
Paketcache aufräumen,
GDebi
Paketcache automatisch aufräumen,
Empfehlungen zum Zeitpunkt des Aufräumens
Automatisch und regelmäßig Aufräumen
Paketcache regelmäßig aufräumen,
Automatisch und regelmäßig Aufräumen
Pakete,
Debian Backports
nach Prioritäten finden,
Pakete nach Prioritäten finden
neue Pakete anzeigen,
Neue Pakete anzeigen
Pakete aktualisieren
aktualisierbare Pakete anzeigen,
Aktualisierbare Pakete anzeigen
Aktualisierbare Pakete anzeigen
Simulation,
apt-get verwenden
Aktualisierbare Pakete anzeigen
verfügbare Versionen anzeigen,
Aktualisierbare Pakete anzeigen
aptitude verwenden
Bestehende Paketversionen klären
Paketflags
automatic,
Automatisch installierte Pakete anzeigen
apt-mark benutzen
aptitude benutzen
hold,
Ausgewählte Pakete nicht aktualisieren
Software selbst übersetzen und als deb-Paket einspielen
Paketformat
apk,
Varianten und Formate für Softwarepakete
Click-Pakete,
Nachbauten und Derivate
deb,
Welche UNIX-artigen Betriebssysteme verwenden das Paketformat und das APT-Paketmanagement
Varianten und Formate für Softwarepakete
ipkg,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
opkg,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
pkg,
Varianten und Formate für Softwarepakete
rpm,
Varianten und Formate für Softwarepakete
Snappy,
Nachbauten und Derivate
tar.gz,
Varianten und Formate für Softwarepakete
tar.xz,
Varianten und Formate für Softwarepakete
Paketgruppe,
Übergangspakete, Metapakete und Tasks
Paketierung,
Vom tar.gz zur Linux-Distribution
Debians Paketsystem
Paketinhalt
auflisten,
Daten im Paket
ausführbare Dateien,
Ausführbare Dateien anzeigen
Bestandteile,
lintian verstehen
Metadaten,
Binärpakete (deb)
Einführung
Paketinterna abfragen,
Bibliothek libapt-inst
Paketkategorie,
Vom monolithischen Programm zu Programmkomponenten
Beschreibung,
Sortierung der Pakete nach Verwendungszweck
Kurzbezeichnung,
Sortierung der Pakete nach Verwendungszweck
Überblick,
Sortierung der Pakete nach Verwendungszweck
Zuordnung,
Sortierung der Pakete nach Verwendungszweck
Einführung
Paketklassifikation,
Einführung
Kurzinfo zum Debtags-Projekt
Paketkombinationen,
Übergangspakete, Metapakete und Tasks
Paketkonfiguration,
Was ist Paketmanagement
auslesen,
Die bestehende Paketkonfiguration auslesen
bestehende Installation sichern,
Paketkonfiguration sichern
debconf-get-selections,
Konfiguration für alle Pakete auslesen
Paketkonfiguration sichern
debconf-set-selections,
Konfiguration für alle Pakete auslesen
Paketkonfiguration sichern
Debian-Installer,
Konfiguration für alle Pakete auslesen
gesicherte Konfiguration wieder einspielen,
Paketkonfiguration sichern
Eine gesicherte Paketkonfiguration wieder einspielen
Klonen einer bestehenden Installation,
Paketkonfiguration sichern
Liste der installieren Pakete ermitteln,
Die bestehende Paketkonfiguration auslesen
Paketliste,
Mit apt-get
Mit aptitude
/var/lib/apt/lists/,
Lokale Paketliste reparieren
aktualisieren,
Grundlegendes Vorgehen
Pakete aktualisieren
update
Die lokale Paketliste aktualisieren
Ausgabe anhand von Filtern einschränken,
Liste anhand von Filtern einschränken
nur die Paketnamen ausgeben,
Ausgabe minimieren
reparieren,
Lokale Paketliste reparieren
verstehen,
Ausgabe von dpkg interpretieren
Paketkonfiguration sichern
vollständig ausgeben,
Liste der installierten Pakete anzeigen und deuten
vollständige Paketliste anzeigen,
Vollständige Paketliste anzeigen
Paketliste anhand von Filtern einschränken,
Liste anhand von Filtern einschränken
Paketmaintainer,
Und das können Sie nach der Lektüre …
Was ist Paketmanagement
Aufgaben,
Sortierung der Pakete nach Verwendungszweck
Einführung
Paketmanagement
Auflistung der installierten Pakete,
Was ist Paketmanagement
Auflösung von Paketabhängigkeiten,
Was ist Paketmanagement
Auflösung von Paketaktualisierung,
Was ist Paketmanagement
Begriff,
Was ist Paketmanagement
Paketauswahl,
Was ist Paketmanagement
Paketkonfiguration,
Was ist Paketmanagement
Paketmaintainer,
Was ist Paketmanagement
Paketstatus,
Was ist Paketmanagement
Paketmarkierungen
/var/lib/apt/extended_states,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
/var/lib/aptitude/pkgstates,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Aptitude-spezifische Paketmarkierungen
/var/lib/dpkg/status,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
ändern,
Was passiert, wenn Paketmarkierungen geändert werden?
Änderungen in der Paketauswahl,
Was passiert, wenn Paketmarkierungen geändert werden?
Annahmen,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
anzeigen,
Lesen und Anzeigen einer Markierung mit apt-mark
aufheben,
Setzen und Entfernen einer Markierung mit aptitude
Auswertung,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Auswirkungen,
Lokale Paketmarkierungen
auto,
Setzen und Entfernen einer Markierung mit apt-mark
automatic,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit aptitude
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
aptitude Format Strings
Begriff,
Lokale Paketmarkierungen
Darstellung im Terminal,
Lesen und Anzeigen einer Markierung mit aptitude
Darstellung in aptitude,
Lesen und Anzeigen einer Markierung mit aptitude
essentiell,
Zusammenspiel von dpkg und APT
Markierung „essentiell“ (essential)
Ausführbare Dateien anzeigen
aptitude Format Strings
explizit entfernen,
Was passiert, wenn Paketmarkierungen geändert werden?
explizit setzen,
Was passiert, wenn Paketmarkierungen geändert werden?
hold,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit aptitude
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
Was passiert, wenn Paketmarkierungen geändert werden?
install,
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
manual,
Paketmarkierungen, die von verschiedenen Programmen genutzt werden
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
mit aptitude entfernen,
Setzen und Entfernen einer Markierung mit aptitude
mit aptitude setzen,
Setzen und Entfernen einer Markierung mit aptitude
purge,
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
remove,
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
Seiteneffekte,
Was passiert, wenn Paketmarkierungen geändert werden?
setzen,
Setzen und Entfernen einer Markierung mit apt-mark
unhold,
Setzen und Entfernen einer Markierung mit apt-mark
Was passiert, wenn Paketmarkierungen geändert werden?
Paketmirror,
Begriff und Hintergrund
Geeigneten Paketmirror auswählen
Begriff
Einbindung eines lokalen Paketmirrors
Abgleich zwischen Paketversionen,
Ergänzende Bugreports mit apt-listchanges herausfiltern
auf Aktualität prüfen,
Aktualität des Mirrors überprüfen
aufsetzen,
Paketquellen
Einen eigenen APT-Mirror aufsetzen
Auswahl,
Paketquellen
Am besten erreichbaren Paketmirror finden
Beschreibung,
Paketmirror bei Debian
Empfehlung für die Auswahl,
Geeigneten Paketmirror auswählen
Leistungskriterien,
Am besten erreichbaren Paketmirror finden
netselect und netselect-apt
Linux Mint,
Paketmirror für andere Distributionen
Namensschema,
Paketmirror bei Debian
öffentlich zugänglich machen,
Einen eigenen APT-Mirror aufsetzen
offizielle Liste (Debian),
Geeigneten Paketmirror auswählen
Paketmirror bei Debian
offizielle Liste (Ubuntu),
Paketmirror für andere Distributionen
Paketspiegel,
Begriff und Hintergrund
Paketsuchmaschinen,
Paketsuchmaschinen
primäre (Debian),
Paketmirror bei Debian
sekundäre (Debian),
Paketmirror bei Debian
Softwareempfehlungen,
Einen eigenen APT-Mirror aufsetzen
spiegeln,
Einen eigenen APT-Mirror aufsetzen
apt-mirror
Unterschied zu Paketcache,
Einen eigenen APT-Mirror aufsetzen
Varianten,
Einen eigenen APT-Mirror aufsetzen
Paketmuster,
Paketlisten und Muster
Paketname,
Vom monolithischen Programm zu Programmkomponenten
Bereits installierte Pakete mit adequate prüfen
Anpassung für Ubuntu,
Versionsnummer
Architektur,
Architektur oder Plattform
Backport,
Versionsnummer
BinNMU,
Versionsnummer
Epoche,
Versionsnummer
Namensschema,
Benennung einer Paketdatei
NMU,
Versionsnummer
Präfix,
Paketname
Software,
Paketname
Suffix,
Paketname
Versionsnummer
Versionsnummer,
Versionsnummer
Versionsverlauf,
Versionsnummer
Paketoperationen
erzwingen,
Paketoperationen erzwingen
Paketpflege,
Varianten und Formate für Softwarepakete
Paketpriorität,
Paket-Priorität und essentielle Pakete
extra,
Prioritätsstufe „extra“ (extra)
important (wichtig),
Prioritätsstufe „wichtig“ (important)
optional,
Prioritätsstufe „optional“ (optional)
required (erforderlich),
Prioritätsstufe „erforderlich“ (required)
standard,
Prioritätsstufe „standard“ (standard)
Überblick,
Paket-Priorität und essentielle Pakete
Paketprioritäten,
Pakete nach Prioritäten finden
Paketproxy
approx,
Überblick
apt-cacher,
apt-cacher
apt-cacher-ng,
apt-cacher-ng
Paketqualität,
Verbreitungsgrad von Paketen
Paketquelle,
Paketquellen
Begriff und Hintergrund
Format der Paketliste
Abarbeitung bei der Aktualisierung,
Format der Paketliste
ändern,
Format der Paketliste
Anzahl der Einträge,
Format der Paketliste
APT-Repository,
Begriff und Hintergrund
Eigenes APT-Repository anlegen
reprepro
mini-dinstall
auf Echtheit überprüfen,
Einträge für zusätzliche, nicht-offizielle Pakete
Einträge mit add-apt-repository im Griff behalten
Aufbau,
Aufbau und Struktur einer Paketquelle
Ausfallsicherung,
Benutzte Paketquellen
auskommentieren,
Format der Paketliste
Auswahl,
Benutzte Paketquellen
automatisierte Aktualisierung,
Format der Paketliste
CD,
Begriff und Hintergrund
DVD,
Begriff und Hintergrund
entfernen,
Format der Paketliste
ergänzen,
Einträge mit add-apt-repository im Griff behalten
extern,
Begriff und Hintergrund
Format,
Format der Paketliste
hinzufügen,
Format der Paketliste
Installationsmedium einbinden,
Einbindung fester Installationsmedien
Konfigurationsdatei,
Benutzte Paketquellen
lokal,
Begriff und Hintergrund
Eigenes APT-Repository anlegen
Verzeichnis mit Paketen
dpkg-scanpackages
reprepro
mini-dinstall
lokales Paketarchiv,
Einbindung fester Installationsmedien
löschen,
Format der Paketliste
mischen,
Benutzte Paketquellen
Pakete aus zusätzlichen Quellen ergänzen
Netzwerk,
Begriff und Hintergrund
nicht-offiziell,
Einträge für zusätzliche, nicht-offizielle Pakete
primäre,
Benutzte Paketquellen
Repository,
Begriff und Hintergrund
Security Updates,
Einträge für Sicherheitsaktualisierungen
Einträge für Deutschland
separate Einträge,
Einträge für zusätzliche, nicht-offizielle Pakete
Sicherheitsaktualisierungen,
Einträge für Sicherheitsaktualisierungen
Einträge für Deutschland
Speicherkarte,
Begriff und Hintergrund
USB-Stick,
Begriff und Hintergrund
Versionskonflikte,
Einbindung fester Installationsmedien
Paketquelle ändern,
Paketquellen eintragen und ändern
Paketquelle eintragen,
Paketquellen eintragen und ändern
Paketquelle nachtragen,
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Einbindung eines lokalen Paketmirrors
Paketsignatur
mehrere Pakete überprüfen,
Mehrere Pakete prüfen
überprüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Nur ein Einzelpaket kryptographisch prüfen
Paketsignatur überprüfen
Paketsignaturen,
Prüfung eines Paketes auf Unversehrtheit
Auflistung,
Was ist Paketmanagement
Paketspiegel,
Begriff und Hintergrund
Einen eigenen APT-Mirror aufsetzen
Paketmirror,
Begriff und Hintergrund
Paketstatus,
Was ist Paketmanagement
Ausgabe von dpkg interpretieren
deborphan
Alle installierten Pakete auflisten
Einzelpaket auflisten
Paketstatus anzeigen,
Paketstatus erfragen
Paketstatus anzeigen
Paketstatusdatenbank
/var/lib/dpkg/status,
Paketstatusdatenbank reparieren
/var/lib/dpkg/status-old,
Die Paketstatusdatenbank aus dem lokalen Backup wiederherstellen
apt-get update,
Die Paketstatusdatenbanken von APT und aptitude
aptitude update,
Die Paketstatusdatenbanken von APT und aptitude
Paketsuche,
Paketquellen
Einführung
Über den Webbrowser
anhand der Architektur,
Paketlisten und Muster
Suche über die Webseite des Debian-Projekts
Suche über apt-browse.org
Suche über apt-get.org
Paketsuchmaschinen
anhand der Linux-Distribution,
Paketsuchmaschinen
anhand der Lizenz,
Paket nach Lizenz finden
anhand der Paketkategorie,
Paketeigenschaften und Einordnung
anhand der Paketversion,
Synaptic
Suche über die Webseite des Debian-Projekts
anhand der Veröffentlichung,
Paketeigenschaften und Einordnung
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Suche über apt-get.org
anhand des Co-Maintainers,
Rückrichtung: Wer betreut ein bestimmtes Paket
anhand des Distributionsbereichs,
Suche über die Webseite von Debian-Derivaten
anhand des Maintainers,
Paketeigenschaften und Einordnung
Synaptic
Suche über die Webseite des Debian-Projekts
Paket nach Maintainer finden
Welche Pakete betreut ein Debian-Maintainer
Rückrichtung: Wer betreut ein bestimmtes Paket
anhand des Uploaders,
Welche Pakete betreut ein Debian-Maintainer
anhand Regulärer Ausdrücke,
Pakete über den Namen finden
anhand von Debtags,
Paketeigenschaften und Einordnung
Suche mit axi-cache
anhand von Kurzformen (URL),
Suche über die Webseite des Debian-Projekts
bei Debian,
Suche über die Webseite des Debian-Projekts
bei Ubuntu,
Suche über die Webseite von Debian-Derivaten
Linux Mint,
Suche über die Webseite von Debian-Derivaten
mittels APT,
APT und apt-cache
Suche mit apt-cache
mittels apt-browse.org,
Daten im Paket
Suche über apt-browse.org
Paketsuchmaschinen
mittels apt-cache,
Paketnamen
APT und apt-cache
Suche mit apt-cache
mittels apt-get.org,
Suche über apt-get.org
Paketsuchmaschinen
mittels aptitude,
Paketnamen
aptitude
Welche Pakete betreut ein Debian-Maintainer
mittels axi-cache,
Suche mit axi-cache
mittels dd-list,
Rückrichtung: Wer betreut ein bestimmtes Paket
mittels dpkg,
Paketnamen
dpkg
Suche in bereits installierten Paketen
mittels dpkg-www,
In Paketen blättern mittels dpkg-www
mittels grep-available,
grep-available und grep-status
Suche mit grep-available und grep-status
mittels grep-dctrl,
Welche Pakete betreut ein Debian-Maintainer
mittels grep-status,
grep-available und grep-status
Suche mit grep-available und grep-status
mittels PackageKit,
Paketnamen
mittels Pkgs,
Paketsuchmaschinen
mittels Repology,
Paketsuchmaschinen
mittels Rpmfind,
Paketsuchmaschinen
mittels Rpmseek,
Paketsuchmaschinen
mittels SmartPM,
Paketnamen
SmartPM
mittels Synaptic,
Paketnamen
Synaptic
Welche Pakete betreut ein Debian-Maintainer
mittels Webbrowser,
Pakete ohne Paketmirror beziehen
multiarch,
Paketlisten und Muster
nach Binärpaketen,
Suche über die Webseite des Debian-Projekts
nach Paketen aus nicht-vertrauenswürdiger Quelle,
aptitude Format Strings
über das Paketformat,
Paketsuchmaschinen
über den Paketinhalt,
Paketeigenschaften und Einordnung
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
über den Paketnamen,
Paketnamen
Daten im Paket
Pakete über den Namen finden
APT und apt-cache
aptitude
Synaptic
SmartPM
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Suche über apt-get.org
Paketsuchmaschinen
über die Paketabhängigkeiten,
Paketsuchmaschinen
über die Paketbeschreibung,
aptitude
grep-available und grep-status
Synaptic
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Paketsuchmaschinen
Pakete über die Paketbeschreibung finden
Suche mit apt-cache
Suche mit Hilfe von aptitude
Suche mit grep-available und grep-status
über die Paketliste,
dpkg
Synaptic
Suche über die Webseite des Debian-Projekts
über ein Fragment des Paketnamens,
Paketnamen
Paketsuchmaschinen
über ein Suchmuster,
aptitude
grep-available und grep-status
Synaptic
SmartPM
über ein Textfragment,
aptitude
Synaptic
SmartPM
Suche über die Webseite des Debian-Projekts
Suche über apt-browse.org
Suche über apt-get.org
über packages.debian.org,
Suche über die Webseite des Debian-Projekts
über packages.linuxmint.com,
Suche über die Webseite von Debian-Derivaten
über packages.ubuntu.com,
Suche über die Webseite von Debian-Derivaten
Paketsuchmaschinen,
Paketsuchmaschinen
apt-browse.org,
Paketsuchmaschinen
apt-get.org,
Paketsuchmaschinen
pkgs,
Paketsuchmaschinen
repology,
Paketsuchmaschinen
rpmfind,
Paketsuchmaschinen
rpmseek,
Paketsuchmaschinen
Paketumwandlung durchführen,
Durchführung
Paketvalidierung
debian-archive-keyring,
Zusammenspiel von dpkg und APT
gnupg,
Zusammenspiel von dpkg und APT
lintian,
lintian verstehen
rpmlint,
lintian verstehen
Paketvarianten
Binärpaket,
Debian-Pakete (Varianten)
Binärpakete (deb)
Format eines Eintrags
Einträge für Deutschland
Binärpakete
Sourcepakete beziehen
Pakete aus zusätzlichen Quellen ergänzen
lintian verwenden
Dummypaket,
Übergangs- und Metapakete
Metapaket,
Übergangspakete, Metapakete und Tasks
Übergangs- und Metapakete
Communtu
Metapakete bauen
Mikro-Binärpaket,
Übergangspakete, Metapakete und Tasks
Mikro-Binärpakete
Pseudopakete,
Pseudopakete im Debian Bug Tracking System
Quellpaket,
Einträge für Quellpakete
Sourcepaket,
Debian-Pakete (Varianten)
Source-Pakete (dsc und weitere Dateien)
Format eines Eintrags
Einträge für Quellpakete
Einträge für Deutschland
Source-Pakete
Sourcepakete beziehen
apt-cache verwenden
apt-show-source verwenden
Software selbst übersetzen und einspielen
lintian verwenden
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
Tasks,
Übergangspakete, Metapakete und Tasks
Transitionspaket,
Übergangs- und Metapakete
Übergangspaket,
Übergangspakete, Metapakete und Tasks
Prioritätsstufe „extra“ (extra)
Übergangs- und Metapakete
virtuelles Paket,
Virtuelle Pakete
Paketcache-Status
Paketversion anzeigen,
aptitude verwenden
apt-cache benutzen
rmadison einsetzen
nach Architektur filtern,
rmadison einsetzen
nach Veröffentlichung filtern,
rmadison einsetzen
verfügbare Pakete,
aptitude Format Strings
Paketverteilung anhand der Lizenzen,
Softwareverteilung
Paketverwaltung
Aufgabenverteilung,
Aufgaben, Sinn und Zweck des Frontends
Benutzerschnittstelle,
Frontends für das Paketmanagement
Für die Kommandozeile
ncurses-basierte Programme
GUI zur Paketverwaltung
Webbasierte Programme
Ebenen,
Aufgaben, Sinn und Zweck des Frontends
Frontend,
Frontends für das Paketmanagement
Für die Kommandozeile
ncurses-basierte Programme
GUI zur Paketverwaltung
Webbasierte Programme
GUI,
Frontends für das Paketmanagement
GUI zur Paketverwaltung
Kommandozeile,
Frontends für das Paketmanagement
Für die Kommandozeile
TUI,
Frontends für das Paketmanagement
ncurses-basierte Programme
WUI,
Pakete ohne Paketmirror beziehen
Frontends für das Paketmanagement
Webbasierte Programme
Paketwaise,
Umgang mit Waisen
Paketzustand,
Ausgabe von dpkg interpretieren
Alle installierten Pakete auflisten
Einzelpaket auflisten
partner (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
Patches,
Bedeutung der verschiedenen Entwicklungsstände
PDiffs,
PDiffs
perl,
Voraussetzungen
perl-base,
Prioritätsstufe „standard“ (standard)
Perl-Modul Dpkg::Arch,
Debian-Architekturen
Pflege,
Debian Backports
pforth,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
Pinning,
Einbindung in den Paketbestand
piuparts,
Qualitätskontrolle
Pixar,
Alias-Namen
pkcon,
Fehlendes sofort installieren
pkg,
Varianten und Formate für Softwarepakete
pkgnames,
apt-cache
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
pkgs,
Paketsuchmaschinen
pkmon,
Fehlendes sofort installieren
Platte läuft voll
Paket installieren,
Platte läuft voll
Paketcache,
Platte läuft voll
Plattformen,
Debian-Architekturen
Plattformunterstützung,
Was ist Debian?
Platzhalter,
Bekannte Paketnamen auflisten
policy,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
apt-cache
Paketquellen untersuchen mit apt-cache policy
Informationen für ein bestimmtes Paket erhalten
popbugs,
Qualitätskontrolle
Hintergrundwissen
Release-kritische Fehler mit popbugs finden
Release-kritische Fehler mit rc-alert finden
--output=Ausgabedatei,
Release-kritische Fehler mit popbugs finden
-o,
Release-kritische Fehler mit popbugs finden
Popcon,
Verbreitungsgrad von Paketen
Verschiedene Metriken
popcon,
Release-kritische Fehler mit popbugs finden
popularity-contest,
Verbreitungsgrad von Paketen
Porters,
Debian-Architekturen
Ports,
Debian-Architekturen
Debian-Ports-Projekt
Einen eigenen APT-Mirror aufsetzen
Architekturen, deren Unterstützung vorgesehen ist
Ports-Projekt,
Debian-Ports-Projekt
postinst,
Generell: 2 Ebenen
Steuerdateien und Skripte
Durchführung
Bestehende Konfiguration anwenden
Hintergrund und Fragen zum Downgrade
Vor- und Nachteile
postrm,
Generell: 2 Ebenen
Steuerdateien und Skripte
Hintergrund und Fragen zum Downgrade
Potato,
Alias-Namen
Präfix,
Paketname
preinst,
Generell: 2 Ebenen
Steuerdateien und Skripte
Durchführung
Hintergrund und Fragen zum Downgrade
Vor- und Nachteile
prerm,
Generell: 2 Ebenen
Steuerdateien und Skripte
Hintergrund und Fragen zum Downgrade
Preseeding,
Mit debconf-get-selections
Mit debconf-set-selections
Einstieg
primäre,
Benutzte Paketquellen
primäre (Debian),
Paketmirror bei Debian
Priorität eines Eintrags,
Paketquellen untersuchen mit apt-cache policy
preferences bzw. preferences.d
Paketweise festlegen
Prioritäten,
Alternative Standard-Programme mit Debians Alternativen-System
procps,
Prioritätsstufe „wichtig“ (important)
Projekt,
Was ist Debian?
Projektfinanzierung,
Was ist Debian?
Projektseite,
Webseite zum Projekt
Projektstruktur,
Was ist Debian?
Projektziel,
Was ist Debian?
provides,
Paket identifizieren, aus dem eine Datei stammt
Provisioning,
Einstieg
Betriebssystem,
Einstieg
Hardware,
Einstieg
Rechnerklasse,
Einstieg
Proxy
Anwendungsfall,
Paketverwaltung hinter einem http-Proxy
Cache-Grow,
Schalter zur Steuerung des Cache-Verhaltens
Cache-Limit,
Schalter zur Steuerung des Cache-Verhaltens
Cache-Start,
Schalter zur Steuerung des Cache-Verhaltens
Caching Proxy,
Varianten
Hintergrund,
Hintergrund
in Anwendungen konfigurieren,
Einen Proxy in Anwendungen konfigurieren
Konfiguration bei APT,
Konfigurationsdateien und Einstellungen
Konfiguration bei Aptitude,
Aptitude über HTTP-Proxy
Konfiguration bei Synaptic,
Konfigurationsdateien und Einstellungen
Max-Age,
Schalter zur Steuerung des Cache-Verhaltens
mit wget benutzen,
Mittels wget
No-Cache,
Schalter zur Steuerung des Cache-Verhaltens
No-Store,
Schalter zur Steuerung des Cache-Verhaltens
SOCKS,
Varianten
Überblick,
Paketverwaltung hinter einem http-Proxy
Umgebungsvariablen,
Einen Proxy mittels Umgebungsvariablen konfigurieren
Umgebungsvariablen für APT,
Umgebungsvariablen
unter Debian konfigurieren,
Einen Proxy konfigurieren
Varianten,
Varianten
vor Paketmirror,
Einen Proxy in Anwendungen konfigurieren
Proxy Server
Anwendungsfall,
Paketverwaltung hinter einem http-Proxy
Caching Proxy,
Varianten
Hintergrund,
Hintergrund
in Anwendungen konfigurieren,
Einen Proxy in Anwendungen konfigurieren
Konfiguration bei APT,
Konfigurationsdateien und Einstellungen
Konfiguration bei Aptitude,
Aptitude über HTTP-Proxy
Konfiguration bei Synaptic,
Konfigurationsdateien und Einstellungen
mit wget benutzen,
Mittels wget
SOCKS,
Varianten
Überblick,
Paketverwaltung hinter einem http-Proxy
Umgebungsvariablen,
Einen Proxy mittels Umgebungsvariablen konfigurieren
Umgebungsvariablen für APT,
Umgebungsvariablen
unter Debian konfigurieren,
Einen Proxy konfigurieren
Varianten,
Varianten
vor Paketmirror,
Einen Proxy in Anwendungen konfigurieren
Pseudopakete,
Pseudopakete im Debian Bug Tracking System
PureOS,
Desktop
purge,
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
apt-get
Nala
Wiederinstallieren von Paketen mit vorhandenen Konfigurationsdateien
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
Paket löschen / entfernen
python-apt,
Bibliothek python-apt
Suche über apt-browse.org
python-pkg-resources,
Lesen und Anzeigen einer Markierung mit aptitude
python-software-common,
Einträge mit add-apt-repository im Griff behalten
python-software-properties,
Einträge mit add-apt-repository im Griff behalten
python-wxversion,
Keryx
Qualitätssicherung,
Verbreitungsgrad von Paketen
Quellcode,
Quellcode und Lizenz
Quellpaket,
Einträge für Quellpakete
Raspberry Pi OS,
Embedded-Geräte
Raspbian,
Embedded-Geräte
Ratemodus,
deborphan
rc-alert,
Qualitätskontrolle
Release-kritische Fehler mit rc-alert finden
--debtags,
Release-kritische Fehler mit rc-alert finden
--include-dist-op,
Release-kritische Fehler mit rc-alert finden
--include-dists,
Release-kritische Fehler mit rc-alert finden
-d,
Release-kritische Fehler mit rc-alert finden
-o,
Release-kritische Fehler mit rc-alert finden
rc-buggy,
Zusammenhang von Alias-Namen und Entwicklungsständen
rdepends,
apt-cache
Anzeige der umgekehrten Paketabhängigkeiten
Recherche mit apt-cache
debfoster
Abhängigkeiten anzeigen
Recherche anhand der Schlagworte,
Webseite zum Projekt
Rechnerklasse,
Einstieg
RedHat
biarch,
Multiarch: Mehrere Architekturen gleichzeitig auf einem System
Referenzierung,
Veröffentlichungen
Referenzliste,
Die apt-dpkg-Referenzliste
reinstall,
aptitude
Pakete erneut installieren
Wiederinstallieren bereits installierter Pakete
Neue Softwarepakete installieren
Ein Softwarepaket erneut installieren
Release Notes,
Unsere empfohlene Reihenfolge
Releases,
Veröffentlichungen
remove,
Lesen und Anzeigen einer Markierung mit apt-mark
Setzen und Entfernen einer Markierung mit apt-mark
apt-get
wajig
tasksel
aptitude
Nala
Smart Package Management (SmartPM)
Fall 1: Paket einfach löschen
Mit aptitude Vormerkungen machen
Paket löschen / entfernen
remove --force-remove-essential,
Markierung „essentiell“ (essential)
remove --purge,
Nala
Fall 3: Löschen von Konfigurationsdateien bereits deinstallierter Pakete
Fall 4: Paket samt Konfigurationsdateien deinstallieren
reparieren,
Lokale Paketliste reparieren
Repo
Paketquelle,
Begriff und Hintergrund
repology,
Paketsuchmaschinen
repoquery
--list,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
--requires,
Abhängigkeiten anzeigen
-l,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
repoquery -l,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
reportbug,
Prioritätsstufe „standard“ (standard)
Hintergrundwissen
Repository,
Begriff und Hintergrund
Paketquelle,
Begriff und Hintergrund
Repository auf Github,
Technische Basis
Online-Fassung
Quellcode und Lizenz
repository-packages list --available,
Verfügbare Pakete anzeigen
reprepo,
Einen eigenen APT-Mirror aufsetzen
reprepro,
reprepro
Reproducible Builds,
Zwei Paketversionen miteinander vergleichen
required (erforderlich),
Prioritätsstufe „erforderlich“ (required)
restore,
Mit apt-clone
restore-new-distro,
Mit apt-clone
restricted (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
Rex,
Alias-Namen
rmadison,
rmadison einsetzen
RPM,
Paketformate und -werkzeuge anderer Distributionen
Zusammenfassung
Dokumentation,
Dokumentation deb vs. rpm
Weitere Bücher
rpm,
Varianten und Formate für Softwarepakete
Untere Ebene
Paketformate und -werkzeuge anderer Distributionen
Voraussetzungen
--checksig,
Paketsignatur überprüfen
--erase,
Paket löschen / entfernen
--freshen,
Bereits bestehende Softwarepakete erneuern
--install,
Neue Softwarepakete installieren
--install --nodeps,
Neue Softwarepakete installieren
--query,
Einzelpaket auflisten
--query --configfiles,
Alle Konfigurationsdateien eines Pakets anzeigen
--query --docfiles,
Alle Dokumentationsdateien eines Pakets anzeigen
--query --file,
Paket identifizieren, aus dem eine Datei stammt
--query --info,
Paketstatus anzeigen
--query --info --package,
Paketstatus anzeigen
--query --list,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
--query --package,
Einzelpaket auflisten
--query --package --list,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
--reinstall,
Ein Softwarepaket erneut installieren
--requires,
Abhängigkeiten anzeigen
--upgrade,
Bereits bestehende Softwarepakete erneuern
--verify --all,
Paket auf Veränderungen prüfen
--verify --package,
Paket auf Veränderungen prüfen
-e,
Paket löschen / entfernen
-e --nodeps,
Paket löschen / entfernen
-F,
Bereits bestehende Softwarepakete erneuern
-i,
Neue Softwarepakete installieren
-i --nodeps,
Neue Softwarepakete installieren
-ihv,
Neue Softwarepakete installieren
-K,
Paketsignatur überprüfen
-q,
Einzelpaket auflisten
-qa,
Alle installierten Pakete auflisten
Einzelpaket auflisten
-qa --last,
Alle installierten Pakete auflisten
-qc,
Alle Konfigurationsdateien eines Pakets anzeigen
-qd,
Alle Dokumentationsdateien eines Pakets anzeigen
-qf,
Paket identifizieren, aus dem eine Datei stammt
-qi,
Paketstatus anzeigen
-qip,
Paketstatus anzeigen
-ql,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
Alle Dateien eines installierten Pakets anzeigen
-qp,
Einzelpaket auflisten
-qpl,
Alle Dateien eines Pakets anzeigen, bevor es installiert wird
-qpR,
Abhängigkeiten anzeigen
-qR,
Abhängigkeiten anzeigen
-U,
Bereits bestehende Softwarepakete erneuern
-Va,
Paket auf Veränderungen prüfen
-Vp,
Paket auf Veränderungen prüfen
RPM-Paket installieren,
deb-Pakete in rpm-Strukturen
rpm2deb,
wajig
rpmdrake,
Paketformate und -werkzeuge anderer Distributionen
rpmfind,
Paketsuchmaschinen
rpminstall,
wajig
rpmlint,
lintian verstehen
rpmorphan,
Umgang mit Waisen
rpmseek,
Paketsuchmaschinen
rss,
Bugreports mit apt-listbugs lesen
Rückportierung,
Bedeutung der verschiedenen Entwicklungsstände
Backports
Debian Backports
Rückwärtsabhängigkeiten auflisten,
Anzeige der umgekehrten Paketabhängigkeiten
Abhängigkeiten anzeigen
rug,
Pacman Rosetta
run-parts,
Konfiguration von APT
safe-upgrade,
aptitude
Pakete aktualisieren
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Auf der Kommandozeile
Bereits bestehende Softwarepakete erneuern
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
safe-upgrade --no-new-installs,
upgrade und safe-upgrade
samba-common,
Typische Stolperfallen bei Wiederinstallieren mehrerer Pakete
Sarge,
Alias-Namen
Schlagworte,
Kurzinfo zum Debtags-Projekt
Schlagworte aktualisieren,
Debtags-Werkzeuge
Schlagworte anzeigen,
Debtags-Werkzeuge
Auf der Kommandozeile
Alle verfügbaren Schlagworte anzeigen
Schlagworte in aptitude anzeigen,
Integration in aptitude
Schlüssel aktualisieren,
Unterkommandos von apt-key
Schlüssel anzeigen,
Unterkommandos von apt-key
Schlüssel exportieren,
Unterkommandos von apt-key
Schlüssel hinzufügen,
Unterkommandos von apt-key
Schlüssel löschen,
Unterkommandos von apt-key
Schlüssel über das Netzwerk synchronisieren,
Unterkommandos von apt-key
Schlüsselring
/etc/apt/trusted.gpg,
Schlüsselverwaltung mit apt-key (Überblick)
Debian,
Schlüsselverwaltung mit apt-key (Überblick)
Debian-Ports-Projekt,
Schlüsselverwaltung mit apt-key (Überblick)
DebianEdu/Skolelinux,
Schlüsselverwaltung mit apt-key (Überblick)
Fingerabdruck anzeigen,
Unterkommandos von apt-key
Informationen anzeigen,
Unterkommandos von apt-key
Schlüssel aktualisieren,
Unterkommandos von apt-key
Schlüssel anzeigen,
Unterkommandos von apt-key
Schlüssel exportieren,
Unterkommandos von apt-key
Schlüssel hinzufügen,
Unterkommandos von apt-key
Schlüssel löschen,
Unterkommandos von apt-key
Schlüssel über das Netzwerk synchronisieren,
Unterkommandos von apt-key
Ubuntu,
Schlüsselverwaltung mit apt-key (Überblick)
Schlüsselverwaltung,
Schlüsselverwaltung mit apt-key (Überblick)
Schlüsselworte für Binärpakete,
Binärpakete
Software selbst übersetzen und als deb-Paket einspielen
Schlüsselworte für Sourcepakete,
Sourcepakete
Schnittstellen,
Debtags-Werkzeuge
screen,
Suche über die Webseite des Debian-Projekts
search,
apt-cache
Weiterentwicklung von APT
Recherche mit aptitude
aptitude
Suche mit apt-cache
Suche mit Hilfe von aptitude
Paket zu Datei finden
Suche in noch nicht installierten Paketen
Suche mittels debtags
Alle installierten Pakete auflisten
Paket identifizieren, aus dem eine Datei stammt
-n,
Bekannte Paketnamen auflisten
-n),
Bekannte Paketnamen auflisten
~n,
Bekannte Paketnamen auflisten
search !~akeep,
Bestehende Vormerkungen anzeigen
search --display-format,
aptitude Format Strings
search --full,
Suche mit apt-cache
search --names-only,
APT und apt-cache
Alle installierten Pakete auflisten
search --sort,
Bei aptitude die Ausgabe sortieren
search --sort installsize,
aptitude
search --width,
Für aptitude die Ausgabebreite festlegen
search -f,
Suche mit apt-cache
search -F,
aptitude Format Strings
search -n,
APT und apt-cache
Alle installierten Pakete auflisten
search -O,
Bei aptitude die Ausgabe sortieren
search -w,
Für aptitude die Ausgabebreite festlegen
search ?action,
Bestehende Vormerkungen anzeigen
search ?automatic,
Lesen und Anzeigen einer Markierung mit aptitude
aptitude benutzen
search ?config-files,
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
search ?depends,
Recherche mit aptitude
search ?essential,
Pakete nach Prioritäten finden
search ?installed,
Suche mit aptitude
aptitude Format Strings
Alle installierten Pakete auflisten
search ?new,
Neue Pakete anzeigen
search ?obsolete,
Recherche auf der Kommandozeile
search ?priority,
Pakete nach Prioritäten finden
search ?reverse-depends,
Ausgabe der Paketabhängigkeiten mit aptitude
search ?upgradable,
Setzen und Entfernen einer Markierung mit aptitude
aptitude verwenden
aptitude verwenden
Aktualisierbare Pakete anzeigen
search ?user-tag,
Aptitude-spezifische Paketmarkierungen
search ~a,
Bestehende Vormerkungen anzeigen
search ~c,
Fall 2: Suche von Konfigurationsdateien bereits deinstallierter Pakete
search ~D,
Recherche mit aptitude
search ~E,
Pakete nach Prioritäten finden
search ~i,
aptitude
Suche mit aptitude
aptitude
aptitude Format Strings
Alle installierten Pakete auflisten
search ~M,
Lesen und Anzeigen einer Markierung mit aptitude
aptitude benutzen
search ~m,
Welche Pakete betreut ein Debian-Maintainer
search ~N,
Neue Pakete anzeigen
search ~o,
Recherche auf der Kommandozeile
search ~p,
Pakete nach Prioritäten finden
search ~R,
Ausgabe der Paketabhängigkeiten mit aptitude
search ~U,
Setzen und Entfernen einer Markierung mit aptitude
aptitude verwenden
aptitude verwenden
Aktualisierbare Pakete anzeigen
Security Updates,
Einträge für Sicherheitsaktualisierungen
Einträge für Deutschland
Durchführung
upgrade und safe-upgrade
sed,
Bekannte Paketnamen auflisten
Seiteneffekte,
Was passiert, wenn Paketmarkierungen geändert werden?
sekundäre (Debian),
Paketmirror bei Debian
select-editor,
Alternative Standard-Programme mit Debians Alternativen-System
sensible-browser,
Alternative Standard-Programme mit Debians Alternativen-System
sensible-editor,
Alternative Standard-Programme mit Debians Alternativen-System
sensible-pager,
Alternative Standard-Programme mit Debians Alternativen-System
sensible-utils,
Alternative Standard-Programme mit Debians Alternativen-System
separate Einträge,
Einträge für zusätzliche, nicht-offizielle Pakete
Serverkonfiguration,
Server
set,
Benutzung im Detail
setzen,
Setzen und Entfernen einer Markierung mit apt-mark
Shell,
Vorkenntnisse
shell,
Konfiguration von APT anzeigen
show,
Lesen und Anzeigen einer Markierung mit aptitude
apt-cache
Weiterentwicklung von APT
aptitude
apt-cache show Paketname
aptitude show Paketname
Die Abhängigkeiten eines Pakets auflisten
Ausgabe der Paketabhängigkeiten mit apt-cache
Suche mit apt-cache
Suche in noch nicht installierten Paketen
Paketinhalte anzeigen
apt-file show Paketname und apt-file list Paketname
Auf der Kommandozeile
Mit Aptitude
Einzelpaket auflisten
Alle Dateien eines installierten Pakets anzeigen
Paketstatus anzeigen
showauto,
Lesen und Anzeigen einer Markierung mit apt-mark
apt-key und apt-mark
Anfragen mit apt-mark
apt-mark benutzen
showhold,
Lesen und Anzeigen einer Markierung mit apt-mark
Anfragen mit apt-mark
Mit apt-mark
showinstall,
Lesen und Anzeigen einer Markierung mit apt-mark
showmanual,
Lesen und Anzeigen einer Markierung mit apt-mark
apt-key und apt-mark
Anfragen mit apt-mark
showpkg,
Was ist Paketmanagement
apt-cache
apt-cache showpkg Paketname
Bestehende Paketversionen klären
showpurge,
Lesen und Anzeigen einer Markierung mit apt-mark
showremove,
Lesen und Anzeigen einer Markierung mit apt-mark
showsrc,
apt-cache
apt-cache verwenden
Sicherheitsaktualisierungen,
Sicherheitsaktualisierungen
Einträge für Sicherheitsaktualisierungen
Einträge für Deutschland
dist-upgrade und full-upgrade
Sid,
Zusammenhang von Alias-Namen und Entwicklungsständen
Siduction,
Live-CD
Signatur mehrerer Pakete überprüfen,
Mehrere Pakete prüfen
Signatur überprüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Nur ein Einzelpaket kryptographisch prüfen
Paketsignatur überprüfen
Signaturen,
Einträge für zusätzliche, nicht-offizielle Pakete
Simulation,
apt-get verwenden
Aktualisierbare Pakete anzeigen
skype,
Einordnung der Distributionsbereiche in Debian
Slackware,
Varianten und Formate für Softwarepakete
Slax,
Live-CD
Slink,
Alias-Namen
smart
--gui,
Smart Package Management (SmartPM)
--shell,
Smart Package Management (SmartPM)
install,
Smart Package Management (SmartPM)
remove,
Smart Package Management (SmartPM)
upgrade,
Smart Package Management (SmartPM)
SmartPM,
Debians Paketsystem
Werkzeuge, die verschiedene Paketformate unterstützen
Smart Package Management (SmartPM)
PackageKit
smartpm,
Smart Package Management (SmartPM)
Snappy,
Varianten und Formate für Softwarepakete
Nachbauten und Derivate
SOCKS,
Varianten
Software,
Paketname
frei,
Distributionsbereiche
Patches,
Bedeutung der verschiedenen Entwicklungsstände
unfrei,
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
software-properties-common,
Einträge mit add-apt-repository im Griff behalten
Softwareauswahl,
Was ist Debian?
Softwarebibliotheken
libapt-inst,
Obere Ebene
libapt-pkg,
Obere Ebene
Softwareempfehlungen,
Einen eigenen APT-Mirror aufsetzen
Softwareentwicklung
Abhängigkeiten,
Kann Paketmanagement Spaß machen?
Ablauf,
Kann Paketmanagement Spaß machen?
Bausteine,
Kann Paketmanagement Spaß machen?
Modularität,
Kann Paketmanagement Spaß machen?
Zerlegung in Pakete,
Kann Paketmanagement Spaß machen?
Softwarekomponenten,
Vom monolithischen Programm zu Programmkomponenten
Zerlegung in Pakete,
Vom monolithischen Programm zu Programmkomponenten
Softwarelizenz
Abbildung,
Handhabung von geschützten Namen und Logos
Dokumentation,
Handhabung von geschützten Namen und Logos
Firmware,
Handhabung von geschützten Namen und Logos
Grafik,
Handhabung von geschützten Namen und Logos
Softwarepakete
bei Bedarf hinzfügen,
Fehlende Pakete bei Bedarf hinzufügen
Softwarestapel
APT,
Obere Ebene
aptitude,
Obere Ebene
dpkg,
Untere Ebene
Ebenenmodell,
Ebenen
Muon,
Obere Ebene
obere Ebene,
Obere Ebene
PackageKit,
Obere Ebene
Synaptic,
Obere Ebene
untere Ebene,
Untere Ebene
Softwarestrukturen,
Vom tar.gz zur Linux-Distribution
Sortierung der Ausgabe festlegen,
Bei aptitude die Ausgabe sortieren
Sortierung der Pakete nach Debtags,
aptitude
source,
Source-Pakete (dsc und weitere Dateien)
apt-get
Sourcepakete beziehen
Sourcepaket,
Debian-Pakete (Varianten)
Source-Pakete (dsc und weitere Dateien)
Format eines Eintrags
Einträge für Quellpakete
Einträge für Deutschland
Source-Pakete
Sourcepakete beziehen
apt-cache verwenden
apt-show-source verwenden
Software selbst übersetzen und einspielen
lintian verwenden
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
dsc,
Source-Pakete (dsc und weitere Dateien)
Speicherkarte,
Begriff und Hintergrund
spiegeln,
Einen eigenen APT-Mirror aufsetzen
apt-mirror
Spiegelserver
aufsetzen,
Einen eigenen APT-Mirror aufsetzen
öffentlich zugänglich machen,
Einen eigenen APT-Mirror aufsetzen
Softwareempfehlungen,
Einen eigenen APT-Mirror aufsetzen
Unterschied zu Paketcache,
Einen eigenen APT-Mirror aufsetzen
Varianten,
Einen eigenen APT-Mirror aufsetzen
Squeeze,
Alias-Namen
stable,
Bedeutung der verschiedenen Entwicklungsstände
Stampede Linux,
Durchführung
standard,
Prioritätsstufe „standard“ (standard)
Statistik,
Webseite zum Projekt
stats,
apt-cache
Paketcache-Status
Status anzeigen,
Paketcache-Status
Paketstatus erfragen
Ausgabe von dpkg interpretieren
Alle installierten Pakete auflisten
Einzelpaket auflisten
Paketstatus anzeigen
Steam OS,
Spieleplattform
StormOS,
Anstatt Linux
Stretch,
Alias-Namen
Strukturdatenbank aktualisieren,
Suche in noch nicht installierten Paketen
su,
Vorkenntnisse
submit,
Schlagworte bearbeiten
Suche anhand von Schlagworten,
Debtags-Werkzeuge
Auf der Kommandozeile
Suche nach obsoleten Paketen
aptitude,
Recherche auf der Kommandozeile
Synaptic,
Recherche in graphischen Programmen
sudo,
Vorkenntnisse
Suffix,
Paketname
Versionsnummer
Synaptic,
Debians Paketsystem
Obere Ebene
Alternativen zu APT
Einstellungen mit Synaptic
Synaptic
Muon
Recherche in graphischen Programmen
Welche Pakete betreut ein Debian-Maintainer
Mit welchem Programm zur Paketverwaltung gelingt der Einstieg am leichtesten?
Vormerkungen,
Mit aptitude Vormerkungen machen
synaptic,
Daten im Paket
Synaptic
In Paketen blättern mittels dpkg-www
The Debian Administrator’s Handbook
Weitere Bücher
sysget,
sysget
tag,
Auf der Kommandozeile
tag add,
Schlagworte bearbeiten
tag rm,
Schlagworte bearbeiten
tagcat,
Alle verfügbaren Schlagworte anzeigen
tagsearch,
Informationen zu Schlagworten anzeigen
tagshow,
Informationen zu Schlagworten anzeigen
Tails,
Live-CD
tar.gz,
Varianten und Formate für Softwarepakete
tar.xz,
Varianten und Formate für Softwarepakete
Target Release,
Die bevorzugte Veröffentlichung für alle Pakete festlegen
Tasks,
Übergangspakete, Metapakete und Tasks
tasksel,
Debians Paketsystem
Übergangspakete, Metapakete und Tasks
tasksel
--list-tasks,
tasksel
--task-desc,
tasksel
--task-packages,
tasksel
--test,
tasksel
-t,
tasksel
aptitude,
tasksel
install,
tasksel
Metapaket,
tasksel
remove,
tasksel
tasksel-data,
tasksel
Technische Basis,
Technische Basis
testing,
Bedeutung der verschiedenen Entwicklungsstände
Tests,
lintian verstehen
Tiny Core Linux,
Minimalsysteme
Toy Story,
Alias-Namen
Transaktionshistorie anzeigen,
Transaktionshistorie anzeigen
Transitionspaket,
Übergangs- und Metapakete
Trixie,
Alias-Namen
TUI,
Frontends für das Paketmanagement
ncurses-basierte Programme
tzdata,
Bestehende Konfiguration eines Pakets anzeigen
Konfiguration mit dpkg-reconfigure erneut durchführen
über das Paketformat,
Paketsuchmaschinen
über den Paketinhalt,
Paketeigenschaften und Einordnung
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
über den Paketnamen,
Paketnamen
Daten im Paket
Pakete über den Namen finden
APT und apt-cache
aptitude
Synaptic
SmartPM
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Suche über apt-get.org
Paketsuchmaschinen
über den Webbrowser,
Pakete ohne Paketmirror beziehen
Sinn und Zweck
über die Paketabhängigkeiten,
Paketsuchmaschinen
über die Paketbeschreibung,
aptitude
grep-available und grep-status
Synaptic
Suche über die Webseite des Debian-Projekts
Suche über die Webseite von Debian-Derivaten
Suche über apt-browse.org
Paketsuchmaschinen
Pakete über die Paketbeschreibung finden
Suche mit apt-cache
Suche mit Hilfe von aptitude
Suche mit grep-available und grep-status
über die Paketliste,
dpkg
Synaptic
Suche über die Webseite des Debian-Projekts
über ein Fragment des Paketnamens,
Paketnamen
Paketsuchmaschinen
über ein Suchmuster,
aptitude
grep-available und grep-status
Synaptic
SmartPM
über ein Textfragment,
aptitude
Synaptic
SmartPM
Suche über die Webseite des Debian-Projekts
Suche über apt-browse.org
Suche über apt-get.org
über packages.debian.org,
Suche über die Webseite des Debian-Projekts
über packages.linuxmint.com,
Suche über die Webseite von Debian-Derivaten
über packages.ubuntu.com,
Suche über die Webseite von Debian-Derivaten
Überblick,
Sortierung der Pakete nach Verwendungszweck
Paket-Priorität und essentielle Pakete
Paketverwaltung hinter einem http-Proxy
Übergangspaket,
Übergangspakete, Metapakete und Tasks
Prioritätsstufe „extra“ (extra)
Übergangs- und Metapakete
überprüfen,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Nur ein Einzelpaket kryptographisch prüfen
Paketsignatur überprüfen
ubumirror,
ubumirror
Ubuntu,
Schlüsselverwaltung mit apt-key (Überblick)
Weiterführende Dokumentation
Desktop
Ubuntu Landscape,
Ubuntu Landscape
Ubuntu Sources List Generator,
Format der Paketliste
Debian und Ubuntu Sources List Generator
ubuntu-keyring,
Schlüsselverwaltung mit apt-key (Überblick)
UbuntuBSD,
Anstatt Linux
Ubuntupaket
apt-clone,
Mit apt-clone
Mit apt-clone
aptik,
Aptik
apturl,
Appnr
Communtu
Webbasierte Installation von Paketen mit apturl
landscape-client,
Ubuntu Landscape
landscape-client-ui,
Ubuntu Landscape
landscape-client-ui-install,
Ubuntu Landscape
landscape-common,
Ubuntu Landscape
muon,
Muon
screen,
Suche über die Webseite des Debian-Projekts
ubumirror,
ubumirror
ubuntu-keyring,
Schlüsselverwaltung mit apt-key (Überblick)
udeb,
Mikro-Binärpakete
Ultimate Debian Database (UDD),
Welche der von mir genutzten Pakete benötigen Hilfe?
Umbenennung eines Pakets,
Übergangspakete, Metapakete und Tasks
Umgang mit Aktualisierungen,
Backports
Umgang mit Waisen
APT und aptitude,
APT und aptitude
Umgebungsvariablen,
Einen Proxy mittels Umgebungsvariablen konfigurieren
Umgebungsvariablen für APT,
Umgebungsvariablen
umgewandeltes Fremdformat installieren,
Umgewandelte Pakete einspielen
unerfüllte Abhängigkeiten auflisten,
Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
unfrei,
Distributionsbereiche
Einordnung der Distributionsbereiche in Debian
unhold,
Setzen und Entfernen einer Markierung mit apt-mark
Was passiert, wenn Paketmarkierungen geändert werden?
Setzen und Entfernen einer Markierung mit aptitude
Anfragen mit apt-mark
Mit apt-mark
Mit Aptitude
Univention Corporate Server,
Univention Corporate Server (UCS)
App Centre,
Univention Corporate Server (UCS)
Configuration Registry,
Univention Corporate Server (UCS)
Univention Corporate Server (UCS),
Desktop
universe (Ubuntu),
Einordnung der Distributionsbereiche bei anderen Distributionen
UNIX-Kommando,
Binärpakete (deb)
unmarkauto,
Setzen und Entfernen einer Markierung mit aptitude
unmet,
apt-cache
Zusammenfassung aller unerfüllten Abhängigkeiten im Paketcache
unreleased,
Debian-Ports-Projekt
unstable,
Debian-Ports-Projekt
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
unter Debian konfigurieren,
Einen Proxy konfigurieren
untere Ebene,
Untere Ebene
Unterschied zu Paketcache,
Einen eigenen APT-Mirror aufsetzen
Unterteilung bei Debian,
Distributionsbereiche
Unterteilung bei Ubuntu,
Einordnung der Distributionsbereiche bei anderen Distributionen
update,
Multiarch-Beispiel: Installieren eines 32-Bit-Pakets auf einem 64-Bit-System
Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen
Einen Eintrag auf syntaktische Korrektheit prüfen
Unterkommandos von apt-key
Grundlegendes Vorgehen
Lokale Paketliste reparieren
apt-get
apt-key und apt-mark
Weiterentwicklung von APT
aptitude
Suche in noch nicht installierten Paketen
Pakete aktualisieren
update
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Mit aptitude Vormerkungen machen
Schlagworte bearbeiten
Kurzzeitiges Abschalten der Gültigkeitsüberprüfung des Release Files
Offline-Verwaltung mit apt-get und wget
Die lokale Paketliste aktualisieren
Bereits bestehende Softwarepakete erneuern
update --security,
Bereits bestehende Softwarepakete erneuern
update-alternatives,
Alternative Standard-Programme mit Debians Alternativen-System
--config,
Standardprogramm ändern
--display,
Standardprogramme anzeigen
--get-selections,
Standardprogramme anzeigen
--list,
Standardprogramme anzeigen
--query,
Standardprogramme anzeigen
update-command-not-found,
Empfehlungen mittels command-not-found
--help,
Empfehlungen mittels command-not-found
--no-apt-file,
Empfehlungen mittels command-not-found
-h,
Empfehlungen mittels command-not-found
-n,
Empfehlungen mittels command-not-found
update-to,
Bereits bestehende Softwarepakete erneuern
updateinfo list --security,
Aktualisierbare Pakete anzeigen
updateinfo list available,
Aktualisierbare Pakete anzeigen
updateinfo list sec,
Aktualisierbare Pakete anzeigen
upgrade,
apt-get
Weiterentwicklung von APT
Smart Package Management (SmartPM)
Pakete aktualisieren
upgrade und safe-upgrade
Empfohlene Schrittfolge zur Aktualisierung von Paketen
Vom upgrade zum dist-upgrade
Unsere empfohlene Reihenfolge
Auf der Kommandozeile
Offline-Verwaltung mit apt-get und wget
Bereits bestehende Softwarepakete erneuern
upgrade --show-upgraded,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade --simulate,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade -s,
apt-get verwenden
upgrade -u,
apt-get verwenden
Aktualisierbare Pakete anzeigen
upgrade -u -s,
Aktualisierbare Pakete anzeigen
upgrade) (((apt-get
-o dir::cache::archives,
Offline-Verwaltung mit apt-get und wget
urpmi,
Paketformate und -werkzeuge anderer Distributionen
Werkzeuge, die verschiedene Paketformate unterstützen
USB-Stick,
Begriff und Hintergrund
util-linux,
Ausführbare Dateien anzeigen
Manpages anzeigen
Varianten,
Was ist Debian?
Veröffentlichungen
Varianten
Einen eigenen APT-Mirror aufsetzen
Verfallsdatum gecachter Pakete,
Vor- und Nachteile
verfügbare Pakete,
aptitude Format Strings
verfügbare Pakete anzeigen,
Bekannte Paketnamen auflisten
Verfügbare Pakete anzeigen
verfügbare Versionen anzeigen,
Aktualisierbare Pakete anzeigen
aptitude verwenden
Bestehende Paketversionen klären
Vergleich mit DNF,
Motivation
Zusammenfassung
Vergleich mit RPM,
Motivation
Zusammenfassung
Vergleich mit YUM,
Motivation
Zusammenfassung
verifizieren,
Paket auf unerwünschte Veränderungen prüfen
Prüfung eines Paketes auf Unversehrtheit
Die Inhalte eines bereits installierten Paketes überprüfen
Paketsignatur überprüfen
verify,
Paket auf Veränderungen prüfen
Veröffentlichung
Alias-Name,
Alias-Namen
Zusammenhang von Alias-Namen und Entwicklungsständen
Ausnahmen,
Zusammenhang von Alias-Namen und Entwicklungsständen
Benennung,
Veröffentlichungen
Bo,
Alias-Namen
Bookworm,
Alias-Namen
Bullseye,
Alias-Namen
Buster,
Alias-Namen
Buzz,
Alias-Namen
Debian Archive,
Zusammenhang von Alias-Namen und Entwicklungsständen
Debian Backports,
Was ist Paketmanagement
Bedeutung der verschiedenen Entwicklungsstände
Debian-Release-Team,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
ELTS,
Extended Long Term Support (ELTS)
Umgang mit LTS
Dienstleister zur Pflege veralteter LTS-Installationen
Entwicklungsstand,
Bedeutung der verschiedenen Entwicklungsstände
Weiterführende Dokumentation
Umgang mit LTS
Erweiterte Langzeitunterstützung,
Extended Long Term Support (ELTS)
Etch,
Alias-Namen
experimental,
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
Extended LTS,
Extended Long Term Support (ELTS)
Umgang mit LTS
Dienstleister zur Pflege veralteter LTS-Installationen
Feature Freeze,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
Forky,
Alias-Namen
Freexian ELTS,
Dienstleister zur Pflege veralteter LTS-Installationen
Hamm,
Alias-Namen
Jessie,
Alias-Namen
Langzeitunterstützung,
Long Term Support (LTS)
Weiterführende Dokumentation
Umgang mit LTS
Lenny,
Alias-Namen
LTS,
Long Term Support (LTS)
Weiterführende Dokumentation
Umgang mit LTS
Nummerierung,
Alias-Namen
oldoldstable,
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
Umgang mit LTS
oldstable,
Bedeutung der verschiedenen Entwicklungsstände
Auslaufende Sicherheitsaktualisierungen mit check-support-status anzeigen
Organisation im Paketpool,
Organisation der Pakete im Paketpool
Potato,
Alias-Namen
rc-buggy,
Zusammenhang von Alias-Namen und Entwicklungsständen
Referenzierung,
Veröffentlichungen
Releases,
Veröffentlichungen
Rex,
Alias-Namen
Sarge,
Alias-Namen
Sicherheitsaktualisierungen,
Sicherheitsaktualisierungen
Sid,
Zusammenhang von Alias-Namen und Entwicklungsständen
Slink,
Alias-Namen
Squeeze,
Alias-Namen
stable,
Bedeutung der verschiedenen Entwicklungsstände
Stretch,
Alias-Namen
testing,
Bedeutung der verschiedenen Entwicklungsstände
Toy Story,
Alias-Namen
Trixie,
Alias-Namen
unreleased,
Debian-Ports-Projekt
unstable,
Debian-Ports-Projekt
Bedeutung der verschiedenen Entwicklungsstände
Zusammenhang von Alias-Namen und Entwicklungsständen
Varianten,
Veröffentlichungen
Version anzeigen,
Veröffentlichungen
Versionswechsel,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
dist-upgrade und full-upgrade
Wechsel des Entwicklungsstands,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
Wheezy,
Alias-Namen
Woody,
Alias-Namen
Veröffentlichung aktualisieren,
Eine installierte Veröffentlichung aktualisieren (Distributionsupgrade) ==
Veröffentlichungshinweise,
Unsere empfohlene Reihenfolge
Veröffentlichungszyklus,
Kann Paketmanagement Spaß machen?
Version anzeigen,
Veröffentlichungen
Versionen,
Welche Pakete gibt es als offiziellen Backport?
versions,
aptitude verwenden
Bestehende Paketversionen klären
Alle installierten Pakete auflisten
versions --group-ny,
aptitude verwenden
versions --show-package-names,
aptitude verwenden
Versionskonflikte,
Einbindung fester Installationsmedien
Versionsnummer,
Versionsnummer
Versionsverlauf,
Versionsnummer
Versionswechsel,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
dist-upgrade und full-upgrade
Aktualisierung,
Was ist Paketmanagement
Downgrade,
Was ist Paketmanagement
verstehen,
Ausgabe von dpkg interpretieren
Paketabhängigkeiten anzeigen
Paketkonfiguration sichern
Vertrauenskette,
Prüfung eines Paketes auf Unversehrtheit
Verwaltung,
Vom tar.gz zur Linux-Distribution
VirtualBox,
Varianten und Formate für Softwarepakete
virtuelles Paket,
Virtuelle Pakete
Paketcache-Status
vnstat,
Binärpakete (deb)
Vokabular,
Webseite zum Projekt
vollständig ausgeben,
Liste der installierten Pakete anzeigen und deuten
vollständige Paketliste anzeigen,
Vollständige Paketliste anzeigen
vor Paketmirror,
Einen Proxy in Anwendungen konfigurieren
Vor- und Nachteile,
Vor- und Nachteile
Voraussetzungen zur Paketumwandlung,
Voraussetzungen
Vorbereitung,
Grundlagenwissen für Administratoren
vormerken,
Vormerkungen über die Kommandozeile durchführen
Vormerkungen über die Textoberfläche durchführen
Vormerkungen,
Mit aptitude Vormerkungen machen
Vormerkungen ausführen,
Vormerkungen ausführen
Vormerkungen simulieren,
Vormerkungen simulieren
vrms,
Einordnung der Distributionsbereiche in Debian
Recherche mit check-dfsg-status (vormals vrms)
--explain,
Recherche mit check-dfsg-status (vormals vrms)
--sparse,
Recherche mit check-dfsg-status (vormals vrms)
-e,
Recherche mit check-dfsg-status (vormals vrms)
-s,
Recherche mit check-dfsg-status (vormals vrms)
wajig,
Alternativen zu APT
wajig
Umgang mit Waisen
detail,
wajig
find-file,
wajig
gjig,
wajig
install,
wajig
list-orphans,
wajig
wajig
listfiles,
wajig
orphans,
wajig
remove,
wajig
rpm2deb,
wajig
rpminstall,
wajig
Webseite dazu,
Buchinfo
Webserver Apache,
In Paketen blättern mittels dpkg-www
Webserver Nginx,
In Paketen blättern mittels dpkg-www
Wechsel der Veröffentlichung,
Beispieleinträge für offizielle Pakete
Wechsel des Entwicklungsstands,
Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten
Werkzeuge
Administratorrechte-Umgebung,
Vorkenntnisse
Bordmittel,
Kann Paketmanagement Spaß machen?
chroot-Umgebung,
Vorkenntnisse
Grundwissen,
Grundlagenwissen für Administratoren
su,
Vorkenntnisse
sudo,
Vorkenntnisse
Werkzeuge zur Paketverwaltung
Hierarchie,
Motivation
Zusammenfassung
Vergleich mit DNF,
Motivation
Zusammenfassung
Vergleich mit RPM,
Motivation
Zusammenfassung
Vergleich mit YUM,
Motivation
Zusammenfassung
wget,
Offline-Verwaltung mit apt-get und wget
whatmaps,
/etc/apt/apt.conf(.d) verstehen
Wheezy,
Alias-Namen
whereis,
Manpages anzeigen
-b,
Ausführbare Dateien anzeigen
-m,
Manpages anzeigen
Manpages erstöbern
which-pkg-broke,
Liste der zuletzt geänderten Abhängigkeiten
why,
aptitude
Warum ist ein Paket installiert
why-not,
aptitude
Warum ist ein Paket installiert
Wie das Buch gepflegt wird,
Organisatorisch
Wildcards,
Bekannte Paketnamen auflisten
wireshark,
Setzen und Entfernen einer Markierung mit aptitude
Statusdaten von apt
wireshark-common,
Paketname
wnpp,
Pseudopakete im Debian Bug Tracking System
Woody,
Alias-Namen
WUI,
Pakete ohne Paketmirror beziehen
Frontends für das Paketmanagement
Webbasierte Programme
www.debian.org,
Pseudopakete im Debian Bug Tracking System
X Desktop Group,
Alternative Standard-Programme mit Debians Alternativen-System
x-www-browser,
Alternative Standard-Programme mit Debians Alternativen-System
XDG,
Alternative Standard-Programme mit Debians Alternativen-System
xpdf,
apt-show-versions verwenden
xsnow,
Pakete mit dpkg-split aufteilen
xvcg,
apt-cache
xz-utils,
Zusammenspiel von dpkg und APT
Yellowdog Updater Modified (YUM),
Paketformate und -werkzeuge anderer Distributionen
Werkzeuge, die verschiedene Paketformate unterstützen
Pacman Rosetta
Zusammenfassung
Yet another Setup Tool (YaST),
Paketformate und -werkzeuge anderer Distributionen
yum,
Voraussetzungen
check-update,
Aktualisierbare Pakete anzeigen
deplist,
Abhängigkeiten anzeigen
downgrade,
Eine frühere Version eines Softwarepakets einspielen (Downgrade)
erase,
Paket löschen / entfernen
groupinstall,
Neue Softwarepakete installieren
history,
Transaktionshistorie anzeigen
history info,
Transaktionshistorie anzeigen
history package-list,
Transaktionshistorie anzeigen
history packages-list,
Transaktionshistorie anzeigen
history summary,
Transaktionshistorie anzeigen
info,
Einzelpaket auflisten
Abhängigkeiten anzeigen
Paketstatus anzeigen
install,
Neue Softwarepakete installieren
install --downloadonly,
Ein Softwarepaket nur herunterladen
list,
Alle installierten Pakete auflisten
list --available,
Verfügbare Pakete anzeigen
list all,
Alle installierten Pakete auflisten
list available,
Alle installierten Pakete auflisten
list installed,
Alle installierten Pakete auflisten
list updates,
Alle installierten Pakete auflisten
localinstall,
deb-Pakete in rpm-Strukturen
Neue Softwarepakete installieren
provides,
Paket identifizieren, aus dem eine Datei stammt
reinstall,
Neue Softwarepakete installieren
Ein Softwarepaket erneut installieren
remove,
Paket löschen / entfernen
update,
Bereits bestehende Softwarepakete erneuern
update --security,
Bereits bestehende Softwarepakete erneuern
update-to,
Bereits bestehende Softwarepakete erneuern
updateinfo list --security,
Aktualisierbare Pakete anzeigen
updateinfo list available,
Aktualisierbare Pakete anzeigen
updateinfo list sec,
Aktualisierbare Pakete anzeigen
upgrade,
Bereits bestehende Softwarepakete erneuern
verify,
Paket auf Veränderungen prüfen
yumdownloader,
Ein Softwarepaket nur herunterladen
--destdir,
Ein Softwarepaket nur herunterladen
--resolve,
Ein Softwarepaket nur herunterladen
Abhängigkeiten anzeigen
zählen,
Paketcache-Status
zcat
-f,
Statusdaten von dpkg
zerlegen,
Pakete mit dpkg-split aufteilen
zerlegtes Paket wieder zusammenfügen,
Pakete mit dpkg-split aufteilen
Zerlegung in Pakete,
Kann Paketmanagement Spaß machen?
Vom monolithischen Programm zu Programmkomponenten
Zertifizierung,
Grundlagenwissen für Administratoren
zgrep
-h,
Statusdaten von dpkg
Zielgruppe,
Zielgruppe und Lernziele
Was ist Debian?
zshdb,
Setzen und Entfernen einer Markierung mit aptitude
zu Datei finden,
Paket zu Datei finden
Paket identifizieren, aus dem eine Datei stammt
zuletzt installierte Pakete anzeigen,
Liste der zuletzt installierten Pakete anzeigen
Zuordnung,
Sortierung der Pakete nach Verwendungszweck
Distributionsbereiche
Einführung
Zustand anzeigen,
Paketcache-Status
Ausgabe von dpkg interpretieren
Alle installierten Pakete auflisten
Einzelpaket auflisten
zutils,
Statusdaten von dpkg
Zwei Paketversionen miteinander vergleichen,
Zwei Paketversionen miteinander vergleichen
Zypper,
Paketformate und -werkzeuge anderer Distributionen
Pacman Rosetta
zypper
list updates --all,
Aktualisierbare Pakete anzeigen