Inhaltsverzeichnis
apt-get
/ apt-cache
contra
aptitude
Testing
mit einigen Paketen aus
Unstable
Unstable
mit einigen Paketen aus
Experimental
![]() |
Anmerkung |
---|---|
Dieses Kapitel geht davon aus, dass |
Debian ist eine Organisation Freiwilliger, die konsistente Distributionen vorkompilierter Binärpakete von freier Software erstellt und sie über ihr Archiv verteilt.
Das Debian-Archiv wird von vielen Spiegelseiten mit Fernzugriff für HTTP- und FTP-Zugang bereitgestellt. Es ist auch als CD-ROM/DVD erhältlich.
Das Debian-Paketmanagement-System, wenn korrekt genutzt, ermöglicht dem Nutzer, konsistente Sätze von Binärpaketen aus dem Archiv auf dem System zu installieren. Derzeit sind für die amd64-Architektur 44893 Pakete verfügbar.
Das Debian-Paketmanagement-System hat eine reichhaltige Geschichte und bietet viele Möglichkeiten für die Frontend-Benutzerprogramme sowie die Backend-Archivzugriff-Möglichkeiten, die genutzt werden. Derzeit empfehlen wir folgendes:
apt-get(8) für alle Befehlszeilen-Operationen, inklusive Paketinstallationen und -entfernungen sowie Distributions-Upgrades.
aptitude(8) bietet ein interaktives Text-Interface für die Verwaltung der installierten Pakete und die Suche nach verfügbaren Paketen.
Tabelle 2.1. Liste der Debian-Paketmanagement-Werkzeuge
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
apt
|
V:842, I:999 | 3724 |
Advanced Packaging Tool (APT), Frontend für dpkg , das
"http "-, "ftp "- und
"file "-Archivzugriff-Methoden bietet
(apt-get /apt-cache -Befehle sind
enthalten)
|
aptitude
|
V:232, I:991 | 4532 | interaktiver Terminal-basierter Paketmanager mit aptitude(8) |
tasksel
|
V:45, I:968 | 718 | Werkzeug, um Programmgruppen (Tasks) zur Installation auf dem Debian-System auszuwählen (Frontend für APT) |
unattended-upgrades
|
V:73, I:455 | 343 | Erweiterungspaket für APT, um die automatische Installation von Sicherheits-Aktualisierungen zu ermöglichen |
dselect
|
V:10, I:130 | 2620 | Terminal-basierter Paketmanager (früher Standard, Frontend für APT und andere alte Zugriffmethoden) |
dpkg
|
V:918, I:999 | 6656 | Paketmanagement-System für Debian |
synaptic
|
V:96, I:471 | 7672 | grafischer Paketmanager (GNOME-Frontend für APT) |
apt-utils
|
V:302, I:996 | 1393 | APT-Hilfsprogramme: apt-extracttemplates(1), apt-ftparchive(1) und apt-sortpkgs(1) |
apt-listchanges
|
V:385, I:790 | 446 | Benachrichtigungswerkzeug für die Änderungshistorie von Paketen |
apt-listbugs
|
V:8, I:13 | 520 | Auflistung kritischer Fehler vor jeder APT-Installation |
apt-file
|
V:18, I:86 | 131 | APT-Paketsuch-Werkzeug - Befehlszeilen-Interface |
apt-rdepends
|
V:1, I:8 | 64 | rekursive Auflistung von Paketabhängigkeiten |
Hier einige wichtige Punkte für die Paketkonfiguration auf einem Debian-System:
Die händische Konfiguration durch den Systemadministrator wird respektiert. In anderen Worten: das Paketkonfigurationssystem führt keine aufdringliche Konfiguration nur der Einfachheit halber durch.
Jedes Paket enthält sein eigenes Konfigurationsskript mit einer standardisierten Benutzerschnittstelle namens debconf(7), um beim Erstinstallationsprozess des Pakets zu helfen.
Debian-Entwickler versuchen ihr Bestes, um mittels der Paketkonfigurationsskripte für einen fehlerfreien Ablauf der Paketaktualisierungen zu sorgen.
Die vollen Funktionalitäten von paketierter Software stehen dem Systemadministrator zur Verfügung, aber Funktionen mit Sicherheitsrisiken sind standardmäßig deaktiviert.
Wenn Sie von Hand einen Dienst mit Sicherheitsrisiken aktivieren, sind Sie selbst für die Beherrschung der Risiken verantwortlich.
Esoterische Konfigurationen könnten manuell durch den Systemadministrator aktiviert worden sein. Dies könnte Behinderungen mit beliebten grundlegenden Hilfsprogrammen für die Systemkonfiguration verursachen.
![]() |
Warnung |
---|---|
Installieren Sie nicht Pakete aus einer wahllosen Mischung von Debian-Suiten (Stable, Testing, Unstable, Experimental). Dies könnte die Paketkonsistenz beschädigen, was ein tiefes Verständnis der Systemverwaltung erfordert, wie Compiler-ABI, Bibliotheks-Versionen, Interpreter-Funktionalitäten usw. |
Als Neuling unter den
Debian-Systemadministratoren sollten Sie bei der Stable
-Veröffentlichung bleiben
und nur Sicherheitsaktualisierungen einspielen. Das soll heißen, dass Sie
einige der folgenden, eigentlich gültigen Aktionen als Vorsichtsmaßnahme
besser vermeiden sollten, bis Sie das Debian-System gut verstehen. Hier
einige Erinnerungsstützen:
Fügen Sie nicht testing
oder unstable
in Ihre
"/etc/apt/sources.list
" ein.
Mischen Sie nicht Standard-Debian mit anderen Nicht-Debian-Archiven in Ihrer
"/etc/apt/sources.list
", z.B. Ubuntu.
Erstellen Sie keine "/etc/apt/preferences
".
Ändern Sie nicht über Konfigurationsdateien das Standardverhalten der Paketmanagement-Werkzeuge, wenn Sie die vollständigen Auswirkungen nicht kennen.
Installieren Sie nicht irgendwelche Pakete mit "dpkg -i
<irgendein_paket>
".
Installieren Sie niemals irgendwelche Pakete mit "dpkg --force-all
-i <irgendein_paket>
".
Löschen oder verändern Sie keine Dateien in
"/var/lib/dpkg/
".
Überschreiben Sie keine Systemdateien, indem Sie Software-Programme installieren, die direkt aus den Quellen übersetzt wurden.
Installieren Sie diese, falls nötig, in "/usr/local
" oder
"/opt
".
Die nicht-kompatiblen Effekte, die durch obige Aktionen in dem Debian-Paketmanagementsystem verursacht werden, könnten ein nicht mehr verwendbares System hinterlassen.
Ein ernsthafter Debian-Systemadministrator, der missionskritische Server betreibt, sollte besondere Vorsicht walten lassen.
Installieren Sie nicht irgendwelche Pakete von Debian, die Sicherheitsaktualisierungen beinhalten, ohne sie unter sicheren Bedingungen sorgfältig mit Ihrer speziellen Konfiguration getestet zu haben.
Sie als Systemadministrator sind am Ende für Ihr System verantwortlich.
Die lange Stabilitäts-Historie des Debian-Systems ist für sich alleine keine Garantie.
Trotz meiner obigen Warnungen weiß ich, dass viele Leser dieses Dokuments
den Wunsch haben, die Testing
- oder
Unstable
-Suite von Debian als Haupt-Betriebssystem für
ihre selbst-administrierte
Desktop-Umgebung zu nutzen. Dies liegt daran, dass sie sehr gut
funktionieren, regelmäßig aktualisiert werden und immer die neuesten
Funktionalitäten enthalten.
![]() |
Achtung |
---|---|
Für Ihre Produktions-Server wird die
|
Es ist nicht mehr nötig, als den Wert für die Distribution in
"/etc/apt/sources.list
" auf den Namen der Suite
("testing
" oder "unstable
") bzw. auf
den Codenamen ("jessie
" oder
"sid
") zu setzen. Dies beschert Ihnen ein
Leben mit ewigen Aktualisierungen.
Die Verwendung von Testing
oder
Unstable
bereitet viel
Spaß, bringt aber auch einige Risiken mit sich. Auch wenn die
Unstable
-Suite die meiste Zeit sehr stabil erscheint, hat
es einige Paketprobleme in der Testing
- und
Unstable
-Suite von Debian gegeben, und einige davon waren
nicht ganz einfach zu lösen. Dies könnte ziemlich
schmerzlich für Sie sein. Manchmal haben Sie für mehrere Wochen
ein beschädigtes Paket oder fehlende Funktionalitäten.
Hier einige Ideen, wie Sie eine schnelle und einfache Systemwiederherstellung bei Fehlern in Debian-Paketen gewährleisten können:
Erstellen Sie ein Dual-boot-fähiges
System, das die Stable
-Suite von Debian auf einer anderen
Partition installiert hat.
Halten Sie die Installations-CD griffbereit, um davon das Rettungssystem (Rescue mode) starten zu können.
Ziehen Sie in Betracht, apt-listbugs
zu installieren, um
vor einer Paketaktualisierung relevante Informationen aus der Debian-Fehlerdatenbank (BTS)
einsehen zu können.
Lernen Sie genug über die Infrastruktur des Paketsystems, um das Problem umgehen zu können.
Erzeugen Sie eine chroot- oder ähnliche Umgebung und lassen Sie dort das neueste System im Voraus testweise laufen (lesen Sie dazu Abschnitt 9.10, „Virtualisierte Systeme“).
(Falls Sie keine dieser Vorsichsmaßnahmen durchführen können, sind Sie
möglicherweise nicht bereit für die Testing
- und
Unstable
-Suites.)
Die Erleuchtung mit dem folgenden bewahrt eine Person vor der ewigen karmischen Qual der Upgrade-Hölle und ermöglicht ihr, das Debian-Nirvana zu erreichen.
Lassen Sie uns das Debian-Archiv aus der Sicht eines Benutzers betrachten.
![]() |
Tipp |
---|---|
Die offiziellen Richtlinien für das Debian-Archiv sind in dem Debian Policy-Handbuch, Kapitel 2 - The Debian Archive festgelegt. |
Für typischen HTTP-Zugriff ist das Archiv in der Datei
"/etc/apt/sources.list
" wie folgt definiert, hier
z.B. für das aktuelle Stable
-System (=
Wheezy
).
deb http://ftp.XX.debian.org/debian/ wheezy main contrib non-free deb-src http://ftp.XX.debian.org/debian/ wheezy main contrib non-free deb http://security.debian.org/ wheezy/updates main contrib deb-src http://security.debian.org/ wheezy/updates main contrib
Bitte beachten Sie, dass "ftp.XX.debian.org
" durch die
passende Spiegel-Server-URL für Ihren Standort ersetzt werden muss, für
Deutschland z.B. "ftp.de.debian.org
", welche Sie in der
Liste der weltweiten
Spiegel-Sites von Debian finden. Den Status dieser Server können Sie
auf der Debian Mirror
Checker-Seite überprüfen.
Hier neige ich dazu, den Codenamen "wheezy
" zu
verwenden statt dem Namen der Suite (stable
), um
Überraschungen zu vermeiden, wenn das nächste
Stable
-Release veröffentlicht wird.
Die Bedeutung von "/etc/apt/sources.list
" ist in
sources.list(5)
beschrieben und die Schlüsselpunkte sind folgende:
Die "deb
"-Zeile definiert die Quelle für Binärpakete.
Die "deb-src
"-Zeile definiert die Quelle für Quellpakete.
Das erste Argument ist die Wurzel-URL für das Debian-Archiv.
Das zweite Argument ist der Name der Distribution: entweder der Name der Suite oder der Codename.
Das dritte und die darauf folgenden Argumente sind eine Liste gültiger Namen für Bereiche im Debian-Archiv.
Die "deb-src
"-Zeilen können ohne Probleme weggelassen
werden (oder auskommentiert, indem "#" an den Anfang der Zeile gestellt
wird), wenn nur aptitude
verwendet wird, was nicht auf
Metadaten bezüglich der Quellpakete zugreift. Dies beschleunigt die
Aktualisierungen der Paket-Metadaten. Die URL kann
u.a. "http://
", "ftp://
",
"file://
" sein.
![]() |
Tipp |
---|---|
Falls in dem obigen Beispiel " |
Hier ist eine Liste der URL von Debian-Archiv-Seiten und Suite- oder Codenamen, die in der Konfigurationsdatei verwendet werden.
Tabelle 2.2. Liste von Debian-Archiv-Seiten
Archiv-URL | Suite-Name (Codename) | Zweck |
---|---|---|
http://ftp.XX.debian.org/debian/ | stable (wheezy )
|
Stable-(Wheezy-)Veröffentlichung |
http://ftp.XX.debian.org/debian/ | testing (jessie )
|
Testing-(Jessie-)Veröffentlichung |
http://ftp.XX.debian.org/debian/ | unstable (sid )
|
Unstable-(Sid-)Veröffentlichung |
http://ftp.XX.debian.org/debian/ |
experimental
|
Eperimental-Vorveröffentlichung (optional, nur für Entwickler) |
http://ftp.XX.debian.org/debian/ |
stable-proposed-updates
|
Aktualisierungen für die nächste Stable-Zwischenveröffentlichung (optional) |
http://security.debian.org/ |
stable/updates
|
Sicherheitsaktualisierungen für die Stable-Veröffentlichung (wichtig) |
http://security.debian.org/ |
testing/updates
|
Sicherheitsaktualisierungen für die Testing-Veröffentlichung (wichtig) |
http://ftp.XX.debian.org/debian/ |
wheezy-updates
|
Kompatible Aktualisierungen für Spam-Filter, IM-Client-Programme usw. für Wheezy |
http://ftp.XX.debian.org/debian/ |
wheezy-backports
|
Neuere rückportierte Pakete für Wheezy (optional) |
![]() |
Achtung |
---|---|
Nur die reine |
![]() |
Achtung |
---|---|
Sie sollten grundsätzlich nur eine der Suiten |
![]() |
Tipp |
---|---|
Für das Debian-System mit den |
![]() |
Anmerkung |
---|---|
Sicherheitsprobleme im |
Tabelle 2.3. Liste der Debian-Archiv-Bereiche
Bereich | Anzahl der Pakete | Kriterien der Paketkomponenten |
---|---|---|
main
|
44118 |
DFSG-konform und keine Abhängigkeiten zu non-free
|
contrib
|
266 |
DFSG-konform, aber mit Abhängigkeiten zu non-free
|
non-free
|
509 | nicht DFSG-konform |
Die Paketanzahl in obiger Liste gilt für die amd64-Architektur. Der
main
-Bereich stellt das Debian-System bereit (lesen Sie
dazu Abschnitt 2.1.5, „Debian ist zu 100% freie Software“).
Die Organisation des Debian-Archivs kann am besten erforscht werden, indem
Sie mit Ihrem Browser die jeweilige Archiv-URL mit einem angehängten
dists
oder pool
besuchen.
Die Distribution wird auf zwei Arten referenziert, über die Suite oder über den Codenamen. Das Wort "Distribution" wird in vielen Dokumentationen synonym zum Namen der Suite verwendet. Die Beziehung zwischen Suite und Codename kann wie folgt zusammengefasst werden:
Tabelle 2.4. Die Beziehung zwischen Suite und Codename
Zeitraum |
Suite = Stable
|
Suite = Testing
|
Suite = Unstable
|
---|---|---|---|
nach der Veröffentlichung von Wheezy
|
Codename = Wheezy
|
Codename = Jessie
|
Codename = Sid
|
nach der Veröffentlichung von Jessie
|
Codename = Jessie
|
Codename = Jessie+1
|
Codename = Sid
|
Die Historie der Codenamen ist beschrieben in Debian FAQ: Kapitel 6.2.1 Welche Codenamen wurden in der Vergangenheit verwendet?
In der strengeren Debian-Archiv-Terminologie wird das Wort "Sektion" (section) speziell für die Kategorisierung der Pakete durch Anwendungen genutzt. (Obwohl der Begriff "main section" auch verwendet werden könnte, um den Bereich "main" im Debian-Archiv zu beschreiben.)
Immer wenn ein Debian-Entwickler (DD, von Debian developer) ein Paket in das
unstable
-Archiv hochlädt (via incoming), muss der DD dafür sorgen, dass das
hochgeladene Paket mit dem aktuellen Satz der Pakete im
Unstable
-Archiv kompatibel ist.
Falls der DD diese Kompatibilität absichtlich verletzt (für wichtige Bibliotheksaktualisierungen usw.), gibt es gewöhnlich eine Ankündigung dazu auf der Mailingliste debian-devel usw.
Bevor eine Gruppe von Paketen durch das Wartungsskript des Debian-Archivs
von Unstable
nach Testing
verschoben
wird, prüft das Wartungsskript nicht nur das Alter (rund 10 Tage alt) und
den Status der veröffentlichungskritischen Fehler (RC bugs) für die Pakete,
sondern versucht auch die Kompatibilität der Pakete mit dem aktuellen Satz
der Pakete im Testing
-Archiv sicherzustellen. Dieser
Prozess macht Testing
sehr aktuell und nutzbar.
Durch den abgestuften, vom Release-Team gesteuerten Archiv-Freeze-Prozess
ist das Testing
-Archiv bereits gereift, um es auf diesem
Wege - mit einigen manuellen Eingriffen - vollständig konsistent und
fehlerfrei zu machen. Dann wird die neue
Stable
-Veröffentlichung erzeugt, indem der Codename für
das alte Testing
-Archiv dem neuen
Stable
-Archiv zugewiesen wird; anschließend wird ein
neuer Codename für das neue Testing
-Archiv erstellt. Die
anfänglichen Inhalte des neuen Testing
entsprechen exakt
dem des neu veröffentlichten Stable
.
Sowohl das Unstable
- wie auch das
Testing
-Archiv können aus unterschiedlichen Gründen unter
vorübergehenden Störungen leiden:
Upload eines beschädigten Pakets in das Archiv (meistens bei
Unstable
);
Verzögerung, bis die neuen Pakete im Archiv akzeptiert werden (meistens bei
Unstable
);
Timing-Probleme bei der Archiv-Synchronisation (sowohl bei
Testing
wie auch bei Unstable
);
Manuelle Eingriffe in das Archiv wie das Entfernen eines Pakets (überwiegend
bei Testing
).
Falls Sie sich also jemals entscheiden, diese Archive zu verwenden, sollten Sie in der Lage sein, diese Arten von Störungen zu beheben oder zu umgehen.
![]() |
Achtung |
---|---|
Für die ersten Monate nach einer neuen
|
![]() |
Tipp |
---|---|
Wenn Sie das |
Näheres über Begriffsdefinitionen zum Debian-Archiv finden Sie im Debian Policy-Handbuch:
"Sections" (Sektionen);
"Priorities" (Prioritäten);
"Base system" (Grundsystem);
"Essential packages" (grundlegende Pakete).
Debian besteht aus folgenden Gründen aus 100% freier Software:
Debian installiert standardmäßig nur freie Software, um die Freiheit des Benutzers zu respektieren.
Debian bietet in main
nur freie Software an.
Debian empfiehlt, nur freie Software aus main
zu
verwenden.
Kein Paket in main
hängt von Paketen in
non-free
oder contrib
ab
bzw. empfiehlt diese.
Einige Leute fragen sich, ob die folgenden beiden Fakten sich widersprechen oder nicht:
"Debian wird zu 100% frei bleiben" (der erste Punkt des Debian-Gesellschaftsvertrags).
Debian-Server beherbergen etliche non-free
- und
contrib
-Pakete.
Sie widersprechen sich nicht, und zwar aus folgenden Gründen:
Das Debian-System ist zu 100% frei und seine Pakete werden von
Debian-Servern im main
-Bereich vorgehalten.
Pakete außerhalb des Debian-Systems werden von Debian-Servern in den
Bereichen non-free
und contrib
vorgehalten.
Sie werden auch präzise unter Punkt 4 und 5 des Debian-Gesellschaftsvertrags erklärt:
Unsere Prioritäten sind unsere Anwender und Freie Software
Wir orientieren uns an den Bedürfnissen unserer Anwender und der Gemeinschaft für Freie Software. Deren Interessen stehen an erster Stelle. Wir werden unsere Nutzer bei ihrer Arbeit mit den verschiedensten Rechnerumgebungen unterstützen. Wir haben nichts gegen unfreie Arbeiten, die darauf abzielen, auf Debian-Systemen verwendet zu werden oder versuchen, eine Gebühr von Personen, die solche Arbeiten erstellen oder verwenden, einzufordern. Wir erlauben anderen, Distributionen zu erstellen, die das Debian-System und andere Arbeiten enthalten, ohne dafür irgendwelche Gebühren zu erheben. Um diese Ziele zu fördern, werden wir ein integriertes System von hoher Qualität anbieten, das die gerade beschriebene Nutzung nicht durch rechtliche Einschränkungen verhindert.
Arbeiten, die nicht unseren Standards für Freie Software genügen
Wir wissen, dass einige unserer Anwender unbedingt Arbeiten einsetzen
müssen, die nicht den Debian-Richtlinien für Freie Software entsprechen. Für
solche Arbeiten haben wir die Bereiche "contrib
" und
"non-free
" in unserem Archiv eingerichtet. Die Pakete in
diesen Bereichen sind nicht Bestandteil des Debian-Systems, wurden aber
trotzdem für den Einsatz mit Debian vorbereitet. Wir empfehlen den
CD-Herstellern, die jeweiligen Lizenzbestimmungen der Pakete in diesen
Bereichen zu studieren und selbst zu entscheiden, ob sie die Pakete mit
ihren CDs verteilen dürfen. Obwohl unfreie Arbeiten nicht Bestandteil von
Debian sind, unterstützen wir ihren Einsatz und bieten Infrastruktur für
nicht-freie Pakete an (z.B. unsere Fehlerdatenbank und die Mailinglisten).
Benutzer sollten sich der Risiken durch die Verwendung von Paketen aus den
non-free
- und contrib
-Bereichen bewußt
sein:
fehlende Freiheit für solche Software-Pakete;
keine Unterstützung von Debian für solche Software-Pakete (Debian kann keine vernünftige Unterstützung für Software bieten, bei der nicht auf den Quellcode zugegriffen werden kann);
Verunreinigung Ihres zu 100% freien Debian-Systems.
Die Debian-Richtlinien für Freie Software (DFSG) sind der Freie-Software-Standard für Debian. Debian interpretiert "Software" im weitesten Sinne inklusive Dokumentation, Firmware, Logos und Daten künstlerischer Arbeit in einem Paket. Aufgrund dessen sind Debians Freie-Software-Standards sehr streng.
Um diese strengen Freie-Software-Standards für main
erreichen zu können, hat Debian Software-Pakete von Mozilla (wie Firefox,
Thunderbird und Seamonkey) abgewandelt, indem deren Logo und einige
Dateien künstlerischer Arbeit entfernt wurden und sie als Iceweasel, Icedove
und Iceape veröffentlicht wurden.
Typische non-free
- und contrib
-Pakete
enthalten frei verteilbare Pakete der folgenden Typen:
Dokumentationspakete unter der GNU-Lizenz für freie
Dokumentation mit unveränderlichen Abschnitten wie diejenigen für
GCC und Make (meistens zu finden in der Sektion
non-free/doc
).
Firmware-Pakete, die Binärdaten ohne Quelltext enthalten, wie diejenigen,
die in Abschnitt 9.9.6, „Hardware-Treiber und Firmware“ als nicht-frei
aufgeführt sind (meistens zu finden in der Sektion
non-free/kernel
).
Spiele- und Schriftarten-Pakete mit Einschränkungen für die kommerzielle Verwendung und/oder inhaltliche Veränderung.
Bitte beachten Sie, dass die Anzahl der Pakete in
non-free
und contrib
weniger als 2%
der Pakete in main
beträgt. Den Zugriff auf die
non-free
- und contrib
-Bereiche des
Archivs zu ermöglichen, verschleiert nicht die Quellen der Pakete. Die
interaktive Verwendung von
aptitude(8)
im Vollbildmodus erlaubt Ihnen die vollständige Ansicht und Kontrolle
darüber, welche Pakete aus welchen Bereichen installiert sind, um Ihr System
so frei zu halten, wie Sie möchten.
Das Debian-System stellt einen konsistenten Satz von Binärpaketen bereit und verwendet dafür einen Deklarationsmechanismus für versionierte Binärabhängigkeiten, der über Felder in der control-Datei gesteuert wird. Hier eine leicht vereinfachte Definition für diese Felder:
"Depends" / Hängt ab von
Depends deklariert eine absolute Abhängigkeit und alle Pakete, die in diesem Feld aufgelistet sind, müssen zur selben Zeit oder im Voraus installiert sein.
"Pre-Depends" / Hängt ab (vorher) von
Pre-Depends ist ähnlich wie Depends, nur dass die vollständige Installation der aufgelisteten Pakete im Voraus erforderlich ist.
"Recommends" / Empfiehlt
Recommends deklariert eine starke, aber nicht absolute Abhängigkeit. Die meisten Benutzer würden das Paket nicht installiert haben wollen, solange nicht alle in diesem Feld aufgelisteten Pakete installiert sind.
"Suggests" / Schlägt vor
Suggests deklariert eine schwache Abhängigkeit. Viele Benutzer dieses Pakets würden davon profitieren, die in diesem Feld aufgelisteten Pakete zu installieren, aber auch ohne sie kann das Paket vernünftige Funktionen bieten.
"Enhances" / Wertet auf
Enhances deklariert eine schwache Abhängigkeit wie Suggests, nur funktioniert sie in der entgegengesetzten Richtung.
"Breaks" / Beschädigt
Breaks deklariert eine Paket-Inkompatibilität, gewöhnlich mit einer Versionsangabe. Grundsätzlich ist die Lösung, alle in diesem Feld aufgelisteten Pakete zu aktualisieren.
"Conflicts" / Kollidiert
Conflicts deklariert eine absolute Inkompatibilität. Alle in diesem Feld aufgelisteten Pakete müssen entfernt werden, um dieses Paket zu installieren.
"Replaces" / Ersetzt
Replaces wird deklariert, wenn Dateien, die von diesem Paket installiert werden, andere Dateien in den aufgelisteten Paketen ersetzen.
"Provides" / Stellt bereit
Provides wird deklariert, wenn dieses Paket alle Dateien und Funktionalitäten der hier aufgelisteten Pakete bereitstellt.
![]() |
Anmerkung |
---|---|
Bitte beachten Sie, dass die gleichzeitige Deklaration von "Provides", "Conflicts" und "Replaces" für ein virtuelles Paket eine vernünftige Konfiguration ist. So wird sichergestellt, dass nur ein reelles Paket, das dieses virtuelle Paket bereit stellt, zur jeweiligen Zeit installiert sein kann. |
Die offizielle Definition inklusive der Quellpaket-Abhängigkeiten finden Sie im Debian Policy-Handbuch: Kapitel 7 - Declaring relationships between packages.
Hier folgt eine Zusammenfassung der vereinfachten Ereignisabfolge für das APT-Paketmanagement.
Aktualisierung der Paketlisten / Update
("aptitude update
" oder "apt-get
update
"):
Archiv-Metadaten vom Archiv-Server beziehen
Neuaufbau und Aktualisierung der lokalen Metadaten für die Verwendung durch APT
Paketaktualisierung / Upgrade
("aptitude safe-upgrade
" und "aptitude
full-upgrade
" oder "apt-get upgrade
" und
"apt-get dist-upgrade
"):
Auswahl der Installationskandidat-Version, was üblicherweise die letzte verfügbare Version für alle installierten Pakete ist (in Abschnitt 2.7.3, „Installationskandidat-Version beeinflussen“ finden Sie Infos, wie Sie Ausnahmen festlegen)
Auflösung der Paketabhängigkeiten
Ausgewählte Binärpakete vom Archiv-Server beziehen, falls die Installationskandidat-Version sich von der installierten Version unterscheidet
Entpacken der heruntergeladenen Binärpakete
Ausführen des preinst-Skripts
Installieren der Binärdateien
Ausführen des postinst-Skripts
Installieren / Install
("aptitude install …
" oder "apt-get install
…
"):
Wählen der auf der Befehlszeile aufgelisteten Pakete
Auflösung der Paketabhängigkeiten
Beziehen der ausgewählten Binärpakete vom Archiv-Server
Entpacken der heruntergeladenen Binärpakete
Ausführen des preinst-Skripts
Installieren der Binärdateien
Ausführen des postinst-Skripts
Entfernen / Remove ("aptitude
remove …
" oder "apt-get remove …
"):
Wählen der auf der Befehlszeile aufgelisteten Pakete
Auflösung der Paketabhängigkeiten
Ausführen des prerm-Skripts
Löschen der installierten Dateien außer den Konfigurationsdateien
Ausführen des postrm-Skripts
Entfernen inkl. der Konfigurationsdateien /
Purge ("aptitude purge …
" oder
"apt-get purge …
"):
Wählen der auf der Befehlszeile aufgelisteten Pakete
Auflösung der Paketabhängigkeiten
Ausführen des prerm-Skripts
Löschen der installierten Dateien inklusive der Konfigurationsdateien
Ausführen des postrm-Skripts
Um des Gesamtbildes willen habe ich hier absichtlich technische Details übersprungen.
Sie sollten die tolle offizielle Dokumentation lesen. Das erste Dokument ist
hier die Debian-spezifische Datei
"/usr/share/doc/<paketname>/README.Debian
". Weitere
Dokumentation in "/usr/share/doc/<paketname>/
"
sollten Sie ebenfalls konsultieren. Wenn Sie die Shell wie in Abschnitt 1.4.2, „Anpassen der bash“ beschrieben eingerichtet haben, geben Sie
folgendes ein:
$ cd <paketname> $ pager README.Debian $ mc
Sie müssen unter Umständen das entsprechende Dokumentationspaket
installieren (hängen Sie "-doc
" an den Namen an), um
detaillierte Informationen zu bekommen.
Wenn Sie Probleme mit einem bestimmten Paket haben, sollten Sie unbedingt zuerst die Seiten der Debian-Fehlerdatenbank (BTS) besuchen.
Tabelle 2.5. Liste der Schlüssel-Websites zur Lösung von Problemen mit einem bestimmten Paket
Website | Befehl |
---|---|
Homepage der Debian-Fehlerdatenbank (BTS) |
sensible-browser http://bugs.debian.org/
|
Fehlerberichte gegen ein bekanntes Paket |
sensible-browser http://bugs.debian.org/<paketname>
|
Fehlerbericht mit einer bekannten Fehlernummer |
sensible-browser
http://bugs.debian.org/<fehlernummer>
|
Suchen Sie bei Google mit Suchbegriffen, die
"site:debian.org
",
"site:wiki.debian.org
",
"site:lists.debian.org
" usw. enthalten.
Wenn Sie einen Fehlerbericht einreichen, nutzen Sie bitte den reportbug(1)-Befehl.
Paketmanagement-Operationen, die auf Paketdepots basieren, können im
Debian-System mit vielen, auf APT aufbauenden Werkzeugen durchgeführt
werden. Wir beschreiben hier zwei grundlegende Paketmanagement-Werkzeuge:
apt-get
/ apt-cache
und
aptitude
.
Für Paketmanagement-Operationen inklusive Paketinstallation oder Aktualisierungen der Paket-Metadaten benötigen Sie root-Privilegien.
Obwohl aptitude
ein tolles interaktives Werkzeug ist, das
auch der Autor überwiegend verwendet, sollten Sie einige warnende Fakten
kennen:
Der aptitude
-Befehl wird nicht für das
Debian-System-Upgrade eines Stable
-Systems empfohlen
(wenn Sie von einer Stable-Version zur nächsten hochrüsten möchten).
Dafür wird "apt-get dist-upgrade
" empfohlen. Lesen Sie
dazu den Fehlerbericht #411280.
Manchmal empfiehlt aptitude
eine massenweise Entfernung
von Paketen beim System-Upgrade von Testing
- oder
Unstable
-Systemen.
Diese Situation hat schon manchen Systemadministrator erschreckt. Keine Panik.
Dies wurde scheinbar überwiegend dadurch verursacht, dass eine Schieflage
bei den Versionsnummern von Paketen bestand, die von Metapaketen wie
gnome-core
abhängen oder diese empfehlen.
Sie können dies beheben, indem Sie "Noch ausstehende Aktionen abbrechen" im
Menü von aptitude
wählen, aptitude
beenden und "apt-get dist-upgrade
" verwenden.
Die Befehle apt-get
und apt-cache
sind
die grundlegendsten APT-basierten
Paketmanagement-Werkzeuge.
apt-get
und apt-cache
bieten lediglich
eine Befehlszeilen-Oberfläche.
apt-get
eignet sich sehr gut für die großen Systemhochrüstungen von einer
Debian-Veröffentlichung auf die nächste usw.
apt-get
bietet einen robusten Paketabhängigkeitsauflöser.
apt-get
ist weniger anspruchsvoll bezüglich der
Hardware-Ressourcen. Es verbraucht weniger Speicher und läuft schneller.
apt-cache
bietet eine grundlegende, auf regulären Ausdrücken basierende
Suche über Paketname und -beschreibung.
apt-get
und apt-cache
können über
/etc/apt/preferences
mehrere Versionen von Paketen
verwalten, aber dies ist ziemlich mühselig.
Der Befehl aptitude
ist das vielseitigste APT-basierte
Paketmanagement-Werkzeug.
aptitude
bietet eine interaktive textbasierte
Benutzeroberfläche mit Vollbildschirm-Ansicht.
aptitude
weist auch eine
Befehlszeilen-Benutzerschnittstelle auf.
aptitude
eignet sich sehr gut für das tägliche interaktive Paketmanagement wie die
Überprüfung installierter Pakete und die Suche nach verfügbaren Paketen.
aptitude
ist anspruchsvoller bezüglich der
Hardware-Ressourcen. Es verbraucht mehr Speicher und läuft nicht ganz so
schnell.
aptitude
bietet eine erweiterte, auf regulären Ausdrücken basierende
Suche über alle Paket-Metadaten.
aptitude
kann mehrere Versionen von Paketen verwalten,
ohne dabei /etc/apt/preferences
zu verwenden, und ist
sehr intuitiv.
Hier einige grundlegende Paketmanagement-Operationen auf der Befehlszeile, die aptitude(8) und apt-get(8) / apt-cache(8) verwenden.
Tabelle 2.6. Grundlegende Paketmanagement-Operationen auf der Befehlszeile mit aptitude(8) und apt-get(8) / apt-cache(8)
aptitude -Syntax
|
apt-get /apt-cache -Syntax
|
Beschreibung |
---|---|---|
aptitude update
|
apt-get update
|
Aktualisieren der Paket-Archiv-Metadaten |
aptitude install foo
|
apt-get install foo
|
Installieren der Installationskandidat-Version von "foo "
inklusive seiner Abhängigkeiten
|
aptitude safe-upgrade
|
apt-get upgrade
|
Installieren der Installationskandidat-Version aller installierten Pakete, ohne irgendwelche anderen Pakete zu entfernen |
aptitude full-upgrade
|
apt-get dist-upgrade
|
Installieren der Installationskandidat-Version aller installierten Pakete und Entfernen anderer Pakete, falls nötig |
aptitude remove foo
|
apt-get remove foo
|
Entfernen des Pakets "foo ", während dabei dessen
Konfigurationsdateien erhalten bleiben
|
Nicht verfügbar |
apt-get autoremove
|
Entfernen aller automatisch installierten Pakete, die nicht mehr benötigt werden |
aptitude purge foo
|
apt-get purge foo
|
Vollständiges Entfernen des Pakets "foo " inklusive seiner
Konfigurationsdateien
|
aptitude clean
|
apt-get clean
|
Vollständiges Leeren des lokalen Depots empfangener Paketdateien |
aptitude autoclean
|
apt-get autoclean
|
Leeren des lokalen Depots empfangener Paketdateien für veraltete Pakete |
aptitude show foo
|
apt-cache show foo
|
Anzeigen von detaillierten Informationen über das Paket
"foo "
|
aptitude search <regex>
|
apt-cache search <regex>
|
Suchen nach Paketen, auf die der reguläre Ausdruck <regex> passt |
aptitude why <regex>
|
Nicht verfügbar | Erklären, warum die Pakete, auf die der reguläre Ausdruck <regex> passt, installiert werden sollten |
aptitude why-not <regex>
|
Nicht verfügbar | Erklären, warum die Pakete, auf die der reguläre Ausdruck <regex> passt, nicht installiert werden sollten |
![]() |
Anmerkung |
---|---|
Obwohl der |
![]() |
Anmerkung |
---|---|
Da |
Der Befehl "aptitude why <regex>
" kann mehr
Informationen ausgeben, wenn "-v" verwendet wird ("aptitude -v why
<regex>
"). Ähnliche Informationen können Sie mittels
apt-cache rdepends <paket>
erhalten.
Wenn aptitude
im Befehlszeilenmodus gestartet wird und
Probleme wie z.B. Paketkonflikte anzeigt, können Sie im Nachhinein in die
interaktive Vollbildschirm-Ansicht wechseln, indem Sie am Prompt die Taste
"e
" drücken.
Sie können Befehlsoptionen direkt hinter "aptitude
"
angeben.
Tabelle 2.7. Erwähnenswerte Befehlsoptionen für aptitude(8)
Befehlsoptionen | Beschreibung |
---|---|
-s
|
das Resultat des Befehls simulieren |
-d
|
nur Herunterladen, aber nicht installieren/aktualisieren |
-D
|
kurze Erläuterungen vor automatischen Installationen und Entfernungen anzeigen |
Weitere Informationen finden Sie unter
aptitude(8)
und im "aptitude-Benutzerhandbuch" in
"/usr/share/doc/aptitude/README
".
![]() |
Tipp |
---|---|
Das |
Für interaktives Paketmanagement starten Sie aptitude
von
der Konsolen-Shell aus im interaktiven Modus mit:
$ sudo aptitude -u Password:
Dies wird die lokale Kopie der Archivinformationen aktualisieren und die
Paketliste in der Vollbildschirm-Ansicht mit Menü anzeigen. Aptitude legt
seine Konfiguration in "~/.aptitude/config
" ab.
![]() |
Tipp |
---|---|
Wenn Sie root's Konfiguration verwenden wollen statt der des
unprivilegierten Benutzers, rufen Sie " |
![]() |
Tipp |
---|---|
|
Es folgen einige erwähnenswerte Tastendrücke, um in dieser Vollbildschirm-Ansicht den Status von Paketen abzufragen und "geplante Aktionen" für sie vorzumerken.
Tabelle 2.8. Liste der Tastaturkürzel für aptitude
Taste | Tastaturbefehl |
---|---|
F10 oder Strg-t
|
Menü |
?
|
Hilfe für Tastaturkürzel anzeigen (vollständigere Auflistung) |
F10 → Hilfe → Handbuch
|
Benutzerhandbuch anzeigen |
u
|
Paketarchiv-Informationen aktualisieren |
+
|
Paket zur Aktualisierung (upgrade) oder Installation (install) vormerken |
-
|
Paket zum Entfernen (remove) vormerken (Konfigurationsdateien erhalten) |
_
|
Paket zum vollständigen Entfernen (purge) vormerken (Konfigurationsdateien löschen) |
=
|
Paket auf Zurückhalten (hold) setzen |
U
|
Alle aktualisierbaren Pakete markieren (die gleiche Funktion wie full-upgrade) |
g
|
Das Herunterladen und Installieren aller markierten Pakete starten |
q
|
Aktuelle Ansicht schließen und Änderungen speichern |
x
|
Aktuelle Ansicht schließen und Änderungen verwerfen |
Enter
|
Informationen über ein Paket anzeigen |
C
|
Änderungsprotokoll (Changelog) eines Pakets anzeigen |
l
|
Ändern des Filters für die Paketanzeige |
/
|
Suche nach dem ersten Treffer |
\
|
Wiederholen der letzten Suche |
Die Angabe des Dateinamens auf der Befehlszeile sowie das Eingabefeld nach
dem Drücken von "l
" und "//
" nutzen
aptitudes Regex (regulären Ausdruck) wie unten beschrieben. Damit aptitudes
regulärer Ausdruck exakt auf einen Paketnamen zutrifft, können Sie eine
Zeichenkette verwenden, die mit ~n
beginnt, gefolgt von
dem Paketnamen.
![]() |
Tipp |
---|---|
Im interaktiven Modus müssen Sie " |
In der interaktiven Vollbildschirm-Ansicht von aptitude(8) werden Pakete in der Paketliste wie im folgenden Beispiel angezeigt:
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Diese Zeile hat die folgenden Bedeutungen (von links nach rechts):
die Markierung für den "aktuellen Zustand" (der erste Buchstabe);
die Markierung für die "geplante Aktion" (der zweite Buchstabe);
die "automatisch"-Markierung (der dritte Buchstabe);
der Paketname;
die voraussichtliche Änderung beim verwendeten Platz auf der Festplatte, ausgelöst durch die "geplante Aktion";
die aktuelle Version des Pakets;
die Installationskandidat-Version des Pakets.
![]() |
Tipp |
---|---|
Eine vollständige Liste der Markierungen finden Sie am unteren Ende der
Hilfe-Ansicht, die Ihnen durch Drücken
von " |
Die Installationskandidat-Version wird aufgrund der aktuellen lokalen Voreinstellungen ausgewählt (lesen Sie dazu apt_preferences(5) und Abschnitt 2.7.3, „Installationskandidat-Version beeinflussen“).
Im Menü unter Ansichten
sind verschiedene Arten von
Paketansichten verfügbar:
Tabelle 2.9. Liste der Ansichten für aptitude
Ansicht | Status | Beschreibung der Ansicht |
---|---|---|
Paketansicht | Gut | laut Tabelle 2.10, „Die Kategorisierung von Standard-Paketansichten“ (Standardeinstellung) |
Empfehlungen überprüfen
|
Gut | Pakete auflisten, die von installierten Paketen empfohlen werden, aber noch nicht installiert sind |
Einfache Paketansicht
|
Gut | Pakete ohne Kategorisierung anzeigen (für Verwendung mit Regex) |
Debtags-Browser
|
Sehr nützlich | Pakete sortiert nach der Kategorisierung in ihren debtags-Einträgen anzeigen |
Kategorie-Browser
|
Veraltet |
Pakete sortiert nach ihrer Kategorie anzeigen (nicht mehr empfohlen,
verwenden Sie stattdessen den Debtags-Browser )
|
![]() |
Anmerkung |
---|---|
Bitte helfen Sie uns, Pakete mit debtags zu versehen! |
Die Standard-Paketansicht
kategorisiert Pakete ähnlich
wie dselect
plus einiger zusätzlicher Funktionalitäten.
Tabelle 2.10. Die Kategorisierung von Standard-Paketansichten
Kategorie | Beschreibung der Ansicht |
---|---|
Aktualisierbare Pakete
|
Pakete organisiert nach Sektion →
Bereich → Paket
|
Neue Pakete
|
" |
Installierte Pakete
|
" |
Nicht installierte Pakete
|
" |
Veraltete und lokal erstellte Pakete
|
" |
Virtuelle Pakete
|
Pakete mit der gleichen Funktionalität auflisten |
Tasks (Programmgruppen)
|
Pakete mit verschiedenen Funktionalitäten auflisten, die grundsätzlich für eine bestimmte Aufgabe benötigt werden |
![]() |
Tipp |
---|---|
Die |
Aptitude bietet verschiedene Optionen, damit Sie über seine Regex-Formel (regulären Ausdruck) nach Paketen suchen können.
Shell-Befehlszeile:
"aptitude search '<aptitude_regex>'
" zur Anzeige
von Installationsstatus, Paketname und Kurzbeschreibung passender Pakete
"aptitude show '<paketname>'
" zur Anzeige
detaillierter Informationen für ein Paket
Interaktive Vollbildschirm-Ansicht:
"l
" zur Einschränkung der Paketansicht auf zutreffende
Pakete
"/
" für die Suche nach einem passenden Paket
"\
" für die Rückwärts-Suche nach einem passenden Paket
"n
" zum Finden des nächsten Treffers
"N
" zum Finden des nächsten Treffers in umgekehrter
Richtung
![]() |
Tipp |
---|---|
Die obige Zeichenkette <paketname> muss exakt auf den Paketnamen
passen, außer sie beginnt mit " |
Die Regex-Formel (regulärer Ausdruck) ist ähnlich wie bei mutt ein erweiterter regulärer Ausdruck (ERE) (lesen Sie
dazu Abschnitt 1.6.2, „Reguläre Ausdrücke“) und die Bedeutung der
aptitude
-spezifischen speziellen Regelerweiterungen ist
im folgenden erklärt.
Tabelle 2.11. Liste von aptitudes Regex-Formeln
Beschreibung der erweiterten Regel | Regex-Formel |
---|---|
Treffer auf den Paketnamen |
~n<regex_name>
|
Treffer auf die Paketbeschreibung |
~d<regex_beschreibung>
|
Treffer auf den Task-Namen |
~t<regex_task>
|
Treffer auf den Debtag |
~G<regex_debtag>
|
Treffer auf den Paketbetreuer |
~m<regex_betreuer>
|
Treffer auf die Paketsektion |
~s<regex_sektion>
|
Treffer auf die Paketversion |
~V<regex_version>
|
Treffer auf das Archiv | ~A{wheezy,jessie,sid }
|
Treffer auf die Paket-Herkunft | ~O{debian,… }
|
Treffer auf die Priorität | ~p{extra,important,optional,required,standard }
|
Treffer auf essentielle Pakete |
~E
|
Treffer auf virtuelle Pakete |
~v
|
Treffer auf neue Pakete |
~N
|
Treffer auf noch nicht abgeschlossene Aktion | ~a{install,upgrade,downgrade,remove,purge,hold,keep }
|
Treffer auf installierte Pakete |
~i
|
Treffer auf Pakete mit der A-Markierung (automatisch installierte Pakete) |
~M
|
Treffer auf Pakete ohne A-Markierung (vom Administrator zur Installation ausgewählte Pakete) |
~i!~M
|
Treffer auf installierte und aktualisierbare Pakete |
~U
|
Treffer auf entfernte Pakete, deren Konfigurationsdateien aber noch vorhanden sind |
~c
|
Treffer auf Pakete, die entfernt oder vollständig inklusive der Konfigurationsdateien entfernt wurden oder entfernt werden können |
~g
|
Treffer auf Pakete, die eine beschädigte Abhängigkeit melden |
~b
|
Treffer auf Pakete, die eine beschädigte Abhängigkeit vom Typ <typ> melden |
~B<abhängigkeitstyp>
|
Treffer auf Pakete, die eine Abhängigkeit vom Typ <typ> definiert haben |
~D[<typ>:]<muster>
|
Treffer auf Pakete, die eine beschädigte Abhängigkeit vom Typ <typ> definiert haben |
~DB[<typ>:]<muster>
|
Treffer auf Pakete, zu denen auf <muster> passende Pakete die Abhängigkeit <typ> definiert haben |
~R[<typ>:]<muster>
|
Treffer auf Pakete, zu denen auf <muster> passende Pakete die beschädigte Abhängigkeit <typ> definiert haben |
~RB[<typ>:]<muster>
|
Treffer auf Pakete, von denen andere installierte Pakete abhängig sind |
~R~i
|
Treffer auf Pakete, von denen keine anderen installierten Pakete abhängig sind |
!~R~i
|
Treffer auf Pakete, von denen andere installierte Pakete abhängig sind oder empfohlen werden |
~R~i|~Rrecommends:~i
|
Treffer auf Pakete, die auf <muster> passen, mit gefilterter Version |
~S filter <muster>
|
Treffer auf alle Pakete (true/wahr) |
~T
|
Treffer auf kein Paket (false/unwahr) |
~F
|
Der Regex-Teil ist der gleiche erweiterte reguläre Ausdruck (ERE) wie in Unix-typischen
Textverarbeitungswerkzeugen und nutzt "^
",
".*
", "$
" usw., wie es auch
egrep(1),
awk(1)
und
perl(1)
tun.
Der Typ einer Abhängigkeit zur Festlegung von Wechselbeziehungen zwischen Paketen ist einer der folgenden: depends (hängt ab von), predepends (hängt ab (vorher) von), recommends (empfiehlt), suggests (schlägt vor), conflicts (kollidiert mit), replaces (ersetzt), provides (stellt bereit).
Der Typ der Standardabhängigkeit ist "depends".
![]() |
Tipp |
---|---|
Wenn <regex_muster> ein Null-String ist, geben Sie
" |
Hier einige Abkürzungen:
"~P<name>
" ==
"~Dprovides:<name>
"
"~C<name>
" ==
"~Dconflicts:<name>
"
"…~W name
" == "(…|name)
"
Benutzer, denen mutt
geläufig ist, werden sich auch hier
schnell zurechtfinden, da mutt die Inspiration für die Syntax des regulären
Ausdrucks war. Lesen Sie "SEARCHING, LIMITING, AND EXPRESSIONS" im
"Benutzerhandbuch" unter
"/usr/share/doc/aptitude/README
".
![]() |
Anmerkung |
---|---|
Seit der |
Die Auswahl eines Pakets in aptitude
bringt nicht nur
Pakete mit, die in seiner "Depends:
"-Liste stehen,
sondern auch solche in "Recommends:
", falls die
Einstellung im Menü unter F10
→ "Optionen" →
"Einstellungen" → "Abhängigkeitsbehandlung" entsprechend gesetzt ist. Diese
automatisch installierten Pakete werden automatisch entfernt, wenn sie unter
aptitude
nicht mehr benötigt werden.
Sie können die vergangenen Paketaktivitäten in den Protokolldateien nachkontrollieren.
Tabelle 2.12. Protokolldateien für Paketaktivitäten
Datei | Inhalt |
---|---|
/var/log/dpkg.log
|
Protokollierung der Operationen auf dpkg -Ebene für alle
Paketaktivitäten
|
/var/log/apt/term.log
|
Protokollierung der grundlegenden APT-Aktivitäten |
/var/log/aptitude
|
Protokollierung der Aktivitäten des aptitude -Befehls
|
In der Realität ist es nicht so einfach, aus diesen Protokollen auf die Schnelle aussagekräftige Informationen herauszuziehen. Abschnitt 9.2.10, „Aufzeichnen von Änderungen in Konfigurationsdateien“ gibt Ihnen hilfreiche Infos, wie Sie dies einfacher bewältigen.
Hier ein paar Beispiele für aptitude(8)-Operationen.
Der folgende Befehl listet Pakete auf, nach denen mittels Regex-Suche auf den Paketnamen gesucht wird.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Dies ist für Sie ziemlich praktisch, um den exakten Namen eines Pakets zu finden.
Wenn Sie den regulären Ausdruck "~dipv6
" in der "Neuen
einfachen Paketansicht" im "l
"-Dialog eingeben, werden
die angezeigten Pakete auf diejenigen eingeschränkt, bei denen der Ausdruck
auf die Paketbeschreibung passt, und Sie können deren Informationen
interaktiv durchsuchen.
Sie können alle verbliebenen Konfigurationsdateien entfernter Pakete vollständig löschen.
Überprüfen Sie die Resultate des folgenden Befehls:
# aptitude search '~c'
Wenn Sie glauben, dass die aufgelisteten Pakete vollständig entfernt werden können, führen Sie folgenden Befehl aus:
# aptitude purge '~c'
Sie möchten das gleiche vielleicht im interaktiven Modus durchführen, um eine detailgenaue Kontrolle über den Vorgang zu haben:
Sie geben den regulären Ausdruck "~c
" unter der "Neuen
Paketansicht" in dem "l
"-Dialog ein. Dadurch werden die
angezeigten Pakete auf solche eingeschränkt, auf die der reguläre Ausdruck
passt, d.h. "entfernt, aber nicht vollständig inklusive der
Konfigurationsdateien entfernt". All diese, auf den regulären Ausdruck
passenden Pakete können angezeigt werden, indem Sie auf der höchsten Ebene
der Anzeigehierachie (z.B. "Nicht installierte Pakete")
"[
" drücken.
Dann drücken Sie auf einem Eintrag in der höchsten Anzeigehierachie
(z.B. auf "Nicht installierte Pakete") "_
". Nur Pakete,
auf die der reguläre Ausdruck passt, werden auf diese Art vollständig
inklusive der Konfigurationsdateien entfernt. Sie können jedes dieser Pakete
interaktiv von der vollständigen Entfernung ausschließen, indem Sie auf dem
entsprechenden Paket "=
" drücken.
Diese Technik ist ziemlich praktisch und funktioniert für viele andere Befehlskürzel.
Hier beschreibe ich, wie ich den automatisch/manuell-Installationsstatus bereinige (nach der Verwendung von anderen Paketinstallationsprogrammen usw.):
Starten Sie aptitude
im interaktiven Modus als root.
Drücken Sie "u
", "U
",
"f
" und "g
", um die Paketliste sowie
die Pakete zu aktualisieren.
Drücken Sie "l
", um den Anzeigefilter auf
"~i(~R~i|~Rrecommends:~i)
" zu setzen und drücken Sie
"M
" mit der Markierung auf "Installierte
Pakete
", damit deren Status auf Automatisch installiert geändert
wird.
Drücken Sie "l
", setzen Sie den Anzeigefilter auf
"~prequired|~pimportant|~pstandard|~E
" und drücken Sie
"m
" mit der Markierung auf "Installierte
Pakete
", damit deren Status auf Manuell installiert geändert wird.
Drücken Sie "l
", setzen Sie den Anzeigefilter auf
"~i!~M
" und entfernen Sie nicht genutzte Pakete, indem
Sie "-
" auf jedem davon drücken (wenn die Markierung auf
"Installierte Pakete
" steht, können Sie mit
"[
" die Liste aufklappen, so dass alle Pakete sichtbar
werden).
Drücken Sie "l
" um den Anzeigefilter auf
"~i
" zu setzen; drücken Sie dann "m
",
während die Markierung auf "Tasks
" steht, um diese Pakete
auf Manuell installiert zu setzen.
Beenden Sie aptitude
.
Führen Sie "apt-get -s autoremove|less
" als root aus, um
zu überprüfen, welche Pakete derzeit ungenutzt sind.
Starten Sie aptitude
erneut im interaktiven Modus und
markieren Sie Pakete, bei denen dies nötig ist, mit "m
"
als Manuell installiert.
Führen Sie erneut "apt-get -s autoremove|less
" als root
aus, um erneut zu überprüfen, ob bei ENTFERNT nur die erwarteten Pakete
enthalten sind.
Führen Sie "apt-get autoremove|less
" als root aus, um
nicht genutzte Pakete automatisch zu entfernen.
Die Aktion "m
" mit der Markierung auf
"Tasks
" ist eine optionale Aktion, um die Situation
massenhaft zu entfernender Pakete in der Zukunft zu vermeiden.
![]() |
Anmerkung |
---|---|
Beim Wechsel auf einen neue Veröffentlichung sollten Sie eine Neuinstallation in Erwägung ziehen, auch wenn Debian wie unten beschrieben auch auf die neue Version hochgerüstet werden kann. So haben Sie eine Chance, Müll, der sich über die Dauer der Zeit angesammelt hat, loszuwerden und bekommen die beste Kombination der aktuellsten Pakete. Natürlich sollten Sie ein vollständiges System-Backup machen und an einem sicheren Platz ablegen (lesen Sie dazu Abschnitt 10.2, „Datensicherung und -wiederherstellung“), bevor Sie neu installieren. Ich empfehle für einen sanften Übergang eine Dual-Boot-Installation unter Verwendung separater Partitionen. |
Sie können eine systemweite Hochrüstung auf eine neue Veröffentlichung
durchführen, indem Sie die Inhalte der Datei
"/etc/apt/sources.list
" ändern, so dass sie auf die neue
Veröffentlichung zeigen; führen Sie danach "apt-get update; apt-get
dist-upgrade
" aus.
Um von stable
nach testing
oder
unstable
zu aktualisieren, ersetzen Sie
"wheezy
" in dem
"/etc/apt/sources.list
"-Beispiel aus Abschnitt 2.1.4, „Grundlagen über das Debian-Archiv“ durch
"jessie
" oder "sid
".
In der Realität könnte es vielleicht einige Komplikationen aufgrund von
Problemen mit Paketübergängen geben, meistens wegen Paketabhängigkeiten. Je
größer die Unterschiede bei der Hochrüstung sind, um so wahrscheinlicher
werden Sie gravierendere Probleme bekommen. Für die Hochrüstung des alten
Stable
auf das neue Stable
nach dessen
Veröffentlichung können Sie die neuen Veröffentlichungshinweise (Release Notes)
lesen. Folgen Sie exakt der dort beschriebenen Prozedur, um die möglichen
Probleme zu minimieren.
Wenn Sie sich entscheiden, von Stable
zu
Testing
zu wechseln, bevor dies formal veröffentlicht
wird, gibt es keine Veröffentlichunshinweise, die Ihnen helfen. Die
Unterschiede zwischen Stable
und
Testing
könnten seit der vorherigen
Stable
-Veröffentlichung ziemlich groß geworden sein und
die Situation für eine Hochrüstung recht komplex machen.
Sie sollten vorbeugende Schritte für das vollständige Upgrade durchführen, indem Sie aktuellste Informationen von den Mailinglisten sammeln, und Ihren gesunden Menschenverstand einsetzen.
Lesen Sie die vorherigen "Veröffentlichungshinweise (Release Notes)".
Machen Sie eine vollständige Sicherung (Backup) von Ihrem System (speziell Daten und Konfigurationsinformationen).
Halten Sie ein boot-fähiges Medium bereit für den Fall eines beschädigten Bootloaders.
Informieren Sie die Benutzer des Systems rechtzeitig vorher.
Zeichnen Sie die Aktivitäten während des Upgrades mit script(1) auf.
Wenden Sie "unmarkauto" für erforderliche Pakete an, also
z.B. "aptitude unmarkauto vim
", um solche Pakete als
Manuell installiert zu markieren und zu verhindern, dass sie entfernt
werden.
Minimieren Sie die Anzahl installierter Pakete, um die Wahrscheinlichkeit von Paketkonflikten zu reduzieren, entfernen Sie z.B. Desktop-Task-Pakete.
Entfernen Sie die Datei "/etc/apt/preferences
" (um
apt-pinning zu deaktivieren).
Versuchen Sie, das Upgrade in mehreren Schritten durchzuführen:
oldstable
→ stable
→
testing
→ unstable
.
Aktualisieren Sie die Datei "/etc/apt/sources.list
", so
dass sie nur auf das neue Archiv verweist, und führen Sie "aptitude
update
" aus.
Installieren Sie (optional) neue Kern-Pakete zuerst, z.B. "aptitude install
perl
".
Führen Sie "apt-get -s dist-upgrade
" aus, um die
Auswirkungen im Voraus abschätzen zu können.
Führen Sie als letztes den Befehl "apt-get dist-upgrade
"
aus.
![]() |
Achtung |
---|---|
Es ist nicht klug, bei Hochrüstung einer
|
![]() |
Achtung |
---|---|
In früheren "Veröffentlichungshinweisen" wurden für GCC, Linux-Kernel, initrd-Werkzeuge, Glibc, Perl, APT-Werkzeuge usw. spezielle Vorsichtsmaßnahmen bei systemweiten Upgrades erwähnt. |
Informationen zu täglichen Upgrades in Unstable
finden
Sie in Abschnitt 2.4.3, „Absicherungen für den Fall von Paketproblemen“.
Hier eine Liste weiterer Paketmanagement-Operationen, für die
aptitude
auf zu hohem Level arbeitet oder für die ihm
nötige Funktionen fehlen.
Tabelle 2.13. Liste erweiterter Paketmanagement-Operationen
Befehl | Aktion |
---|---|
COLUMNS=120 dpkg -l <paketnamen_muster>
|
Status eines installierten Pakets für einen Fehlerbericht auflisten |
dpkg -L <paketname>
|
Inhalte eines installierten Pakets auflisten |
dpkg -L <paketname> | egrep
'/usr/share/man/man.*/.+'
|
Handbuchseiten (manpages) für ein installiertes Paket auflisten |
dpkg -S <dateinamen_muster>
|
Installierte Pakete auflisten, die auf das Muster passende Dateien enthalten |
apt-file search <dateinamen_muster>
|
Pakete im Archiv auflisten, die auf das Muster passende Dateien enthalten |
apt-file list <paketnamen_muster>
|
Inhalte von auf das Muster passenden Paketen im Archiv auflisten |
dpkg-reconfigure <paketname>
|
Dieses Paket neu konfigurieren |
dpkg-reconfigure -p=low <paketname>
|
Dieses Paket mit detaillierten Fragen neu konfigurieren |
configure-debian
|
Pakete über das Vollbildschirm-Menü neu konfigurieren |
dpkg --audit
|
System nach teilweise installierten Paketen durchsuchen |
dpkg --configure -a
|
Alle teilweise installierten Pakete konfigurieren |
apt-cache policy <binärpaketname>
|
Verfügbare Version, Priorität und Archivinformationen eines Binärpakets anzeigen |
apt-cache madison <paketname>
|
Verfügbare Version und Archivinformationen eines Pakets anzeigen |
apt-cache showsrc <binärpaketname>
|
Quellpaket-Informationen eines Binärpakets anzeigen |
apt-get build-dep <paketname>
|
Zum Bau eines Pakets benötigte Pakete installieren |
aptitude build-dep <paketname>
|
Zum Bau eines Pakets benötigte Pakete installieren |
apt-get source <paketname>
|
Ein Quellpaket herunterladen (aus dem Standardarchiv) |
dget <URL für dsc-Datei>
|
Ein Quellpaket herunterladen (aus einem anderen Archiv) |
dpkg-source -x
<paketname>_<version>-<debian_version>.dsc
|
Einen Quellcodebaum aus einem Satz von Quellpaketen erstellen
("*.orig.tar.gz " und
"*.debian.tar.gz "/"*.diff.gz ")
|
debuild binärdatei
|
Paket(e) aus einem lokalen Quellcodebaum bauen |
make-kpkg kernel_image
|
Ein Kernelpaket aus einem Kernel-Quellcodebaum bauen |
make-kpkg --initrd kernel_image
|
Ein Kernelpaket mit aktivierter initramfs aus einem Kernel-Quellcodebaum bauen |
dpkg -i
<paketname>_<version>-<debian_version>_<arch>.deb
|
Ein lokales Paket in das System installieren |
debi
<paketname>_<version>-<debian_version>_<arch>.dsc
|
Lokale(s) Paket(e) in das System installieren |
dpkg --get-selections '*' >selection.txt
|
Paketauswahl-Statusinformationen auf dpkg -Level sichern
|
dpkg --set-selections <selection.txt
|
Paketauswahl-Statusinformationen auf dpkg -Level setzen
|
echo <paketname> hold | dpkg --set-selections
|
Paketauswahl-Statusinformationen eines Pakets auf
dpkg -Level auf hold
(halten) setzen (gleichbedeutend mit "aptitude hold
<paketname> ")
|
![]() |
Anmerkung |
---|---|
Für ein Paket mit der multi-arch-Funktionalität müssen Sie unter
Umständen den Architekturnamen bei einigen Befehlen angeben. Verwenden Sie
zum Beispiel " |
![]() |
Achtung |
---|---|
Paketwerkzeuge auf niedrigem Level wie " |
Bitte beachten Sie folgendes:
Alle System-Konfigurations- und Installationsbefehle müssen von root ausgeführt werden.
Anders als aptitude
, das reguläre Ausdrücke verwendet
(mehr dazu in Abschnitt 1.6.2, „Reguläre Ausdrücke“), nutzen andere
Paketmanagement-Befehle Suchmuster wie Shell-Glob (Details in Abschnitt 1.5.6, „Shell-Glob“).
Für
apt-file(1)
aus dem apt-file
-Paket muss zuvor "apt-file
update
" ausgeführt werden.
configure-debian(8)
aus dem configure-debian
-Paket führt
dpkg-reconfigure(8)
als Backend im Hintergrund aus.
dpkg-reconfigure(8) führt Paketskripte aus, die debconf(1) als Backend im Hintergrund verwenden.
Die Befehle "apt-get build-dep
", "apt-get
source
" und "apt-cache showsrc
" erfordern einen
"deb-src
"-Eintrag in
"/etc/apt/sources.list
".
dget(1),
debuild(1)
und
debi(1)
erfordern die Installation des devscripts
-Pakets.
Infos zur Prozedur des (Neu-)Paketierens mittels "apt-get
source
" finden Sie in Abschnitt 2.7.13, „Ein Paket auf das Stable-System portieren“.
Der make-kpkg
-Befehl erfordert die Installation des
kernel-package
-Pakets (lesen Sie Abschnitt 9.9, „Der Kernel“).
Grundsätzliche Informationen über das Paketieren finden Sie in Abschnitt 12.11, „Erstellen von Debian-Paketen“.
Die Installation von debsums
ermöglicht die Verifizierung
installierter Pakete gegen MD5sum-Werte in der Datei
"/var/lib/dpkg/info/*.md5sums
" mittels
debsums(1).
Details darüber, wie MD5sum arbeitet, finden Sie in Abschnitt 10.3.5, „Die MD5-Prüfsumme“.
![]() |
Anmerkung |
---|---|
Da die MD5sum-Datenbank durch Eindringlinge gefälscht werden könnte, ist debsums(1) als Werkzeug für die Systemsicherheit nur von begrenztem Nutzen. Es eignet sich aber gut dafür, lokale Veränderungen durch den Administrator oder durch Beschädigungen aufgrund von Fehlern des Speichermediums zu erkennen. |
Viele Benutzer bevorzugen die Unstable-Veröffentlichung des Debian-Systems wegen seiner neuen Funktionen und Pakete. Dies macht deren System anfällig für kritische Paketfehler.
Die Installation des apt-listbugs
-Pakets sichert Ihr
System gegen kritische Fehler ab, indem bei Upgrades durch das APT-System
automatisch die Debian-Fehlerdatenbank (BTS) bezüglich kritischer Fehler
abgefragt wird.
Die Installation des apt-listchanges
-Pakets stellt Ihnen
wichtige Neuigkeiten aus "NEWS.Debian
" zu Verfügung, wenn
Upgrades durch das APT-System durchgeführt werden.
Obwohl der Besuch der Debian-Site http://packages.debian.org/ heutzutage einfache Möglichkeiten bietet, die Paket-Metadaten zu durchsuchen, wollen wir uns auch die traditionellen Wege anschauen.
Die Befehle grep-dctrl(1), grep-status(1) und grep-available(1) können verwendet werden, um jegliche Datei zu durchsuchen, die das grundsätzliche Format einer control-Datei für ein Debian-Paket hat.
"dpkg -S <dateinamen_muster>
" kann verwendet
werden, um durch dpkg
installierte Pakete zu finden, die
auf das Suchmuster passende Dateinamen enthalten. Hiermit werden jedoch
keine Dateien gefunden, die durch Skripte der Paketbetreuer erzeugt werden.
Wenn Sie eine tiefergehende Suche der dpkg-Metadaten benötigen, müssen Sie
den Befehl "grep -e regex_muster *
" im Verzeichnis
"/var/lib/dpkg/info/
" ausführen. So können Sie Wörter
finden, die in Paketskripten und Texten für Abfragen bei der Installation
auftauchen.
Wenn Sie Paketabhängigkeiten rekursiv abfragen möchten, sollten Sie apt-rdepends(8) verwenden.
Lassen Sie uns betrachten, wie das Debian-Paketmanagement-System intern funktioniert. Dies sollte Ihnen dabei helfen, eigene Lösungen für einige Paketprobleme zu finden.
Metadaten-Dateien für die jeweilige Distribution sind auf jedem
Debian-Spiegel unter "dist/<codename>
" abgelegt,
z.B. auf "http://ftp.de.debian.org/debian/
". Sie können
die Archivstruktur mit einem Webbrowser durchsuchen. Es gibt sechs Arten von
Schlüssel-Metadaten:
Tabelle 2.14. Der Inhalt der Debian-Archiv Metadaten
Datei | Speicherort | Inhalt |
---|---|---|
Release
|
in der obersten Ebene der Distribution | Archivbeschreibung und Integritätsinformationen |
Release.gpg
|
in der obersten Ebene der Distribution |
Signaturdatei für die "Release "-Datei, mit dem
Archiv-Schlüssel signiert
|
Contents-<architektur>
|
in der obersten Ebene der Distribution | Liste aller Dateien für alle Pakete in dem entsprechenden Archiv |
Release
|
in der obersten Ebene aller Distributions-/Bereichs-/Architektur-Kombinationen | Archivbeschreibung, die zur Festlegung von apt_preferences(5) verwendet wird |
Packages
|
in der obersten Ebene aller Distributions-/Bereichs-/Binärarchitektur-Kombinationen |
vereinigte debian/control für Binärpakete
|
Sources
|
in der obersten Ebene aller Distributions-/Bereichs-/Quellen-Kombinationen |
vereinigte debian/control für Quellpakete
|
Im aktuellen Archiv sind diese Metadaten als komprimierte und differenzielle Dateien abgelegt, um Netzwerkverkehr zu reduzieren.
![]() |
Tipp |
---|---|
Die "Release"-Datei in der obersten Ebene wird verwendet, um die Archive im Secure-APT-System zu signieren. |
Jede Suite im Debian-Archiv hat in der obersten Ebene eine
"Release
"-Datei,
z.B.
"http://ftp.de.debian.org/debian/dists/unstable/Release
",
wie hier:
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ...
![]() |
Anmerkung |
---|---|
Hier finden Sie den Grund dafür, warum ich in Abschnitt 2.1.4, „Grundlagen über das Debian-Archiv“ "Suite" und "Codename" verwende. Die "Distribution" wird benutzt, um sowohl auf "Suite" wie auch auf "Codename" zu verweisen. Alle Namen der Archiv-Bereiche, die von dem Archiv angeboten werden, sind unter "Components" aufgelistet. |
Die Integrität der "Release
"-Datei in der obersten Ebene
wird über die kryptografische Infrastruktur namens SecureApt verifiziert.
Die kryptografische Signaturdatei "Release.gpg
" wird aus
der authentischen "Release
"-Datei der obersten Ebene und
dem geheimen Debian-Archiv-Schlüssel erzeugt.
Der öffentliche Debian-Archiv-Schlüssel kann in
"/etc/apt/trusted.gpg
" platziert werden:
automatisch, indem der Schlüsselring über das aktuellste
base-files
-Paket installiert wird, oder
manuell über das gpg
- oder
apt-key
-Werkzeug mit dem aktuellsten öffentlichen
Archiv-Schlüssel, veröffentlicht auf ftp-master.debian.org .
Das Secure-APT-System verifiziert
kryptografisch die Integrität der heruntergeladenen
"Release
"-Datei der obersten Ebene über diese
"Release.gpg
"-Datei und den öffentlichen
Debian-Archiv-Schlüssel in "/etc/apt/trusted.gpg
".
Die Integrität all der "Packages
"- und
"Sources
"-Dateien wird mittels MD5sum-Werten in der
"Release
"-Datei von deren oberster Ebene verifiziert. Die
Integrität der Paketdateien wird über MD5sum-Werte in den
"Packages
"- und "Sources
"-Dateien
verifiziert. Lesen Sie dazu
debsums(1)
und Abschnitt 2.4.2, „Verifizierung von installierten Paketdateien“.
Da die kryptografische Signaturverifizierung viel CPU-intensiver ist als die
Berechnung von MD5sum-Werten, bietet die Verwendung von MD5sum-Werten für
die Pakete bei gleichzeitiger Nutzung einer kryptografischen Signatur für
die "Release
"-Datei der obersten Ebene einen guten Kompromiss zwischen
Sicherheit und Performance (weiteres in Abschnitt 10.3, „Daten-Sicherheitsinfrastruktur“).
![]() |
Tipp |
---|---|
Die "Release"-Dateien auf Archiv-Ebene werden zur Festlegung von apt_preferences(5) genutzt. |
Es gibt "Release
"-Dateien auf Archiv-Ebene für alle
Archiv-Orte, die über "deb
"-Zeilen in
"/etc/apt/sources.list
" festgelegt sind,
z.B.
"http://ftp.de.debian.org/debian/dists/unstable/main/binary-amd64/Release
"
oder
"http://ftp.de.debian.org/debian/dists/sid/main/binary-amd64/Release
",
wie hier:
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
![]() |
Achtung |
---|---|
Für " |
Für einige Archive, wie experimental
und
wheezy-backports
, die Pakete enthalten, welche
nicht automatisch installiert werden sollten,
z.B.
"http://ftp.de.debian.org/debian/dists/experimental/main/binary-amd64/Release
",
existiert eine zusätzliche Zeile, wie hier:
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Bitte beachten Sie, dass für normale Archive ohne "NotAutomatic:
yes
" der Wert für die Pin-Priorität 500 ist, während für spezielle
Archive mit "NotAutomatic: yes
" dieser Wert 1 ist (lesen
Sie dazu
apt_preferences(5)
und Abschnitt 2.7.3, „Installationskandidat-Version beeinflussen“).
Wenn APT-Werkzeuge wie aptitude
,
apt-get
, synaptic
,
apt-file
, auto-apt
… verwendet werden,
müssen wir die lokalen Kopien der Metadaten, die die
Debian-Archivinformationen enthalten, aktualisieren. Diese lokalen Kopien
haben die folgenden Dateinamen, passend zu den in
"/etc/apt/sources.list
" festgelegten Namen für
Distribution
, Bereich
und
Architektur
(weiteres in Abschnitt 2.1.4, „Grundlagen über das Debian-Archiv“):
"/var/lib/apt/lists/ftp.de.debian.org_debian_dists_<distribution>_Release
"
"/var/lib/apt/lists/ftp.de.debian.org_debian_dists_<distribution>_Release.gpg
"
"/var/lib/apt/lists/ftp.de.debian.org_debian_dists_<distribution>_<area>_binary-<architektur>_Packages
"
"/var/lib/apt/lists/ftp.de.debian.org_debian_dists_<distribution>_<bereich>_source_Sources
"
"/var/cache/apt/apt-file/ftp.de.debian.org_debian_dists_<distribution>_Contents-<architektur>.gz
"
(für apt-file
)
Die ersten vier Typen obiger Dateien werden von allen entsprechenden
APT-Befehlen gemeinsam genutzt und mittels "apt-get
update
" oder "aptitude update
"
aktualisiert. Die "Packages
"-Metadaten werden
aktualisiert, wenn eine "deb
"-Zeile in
"/etc/apt/sources.list
" existiert. Die
"Sources
"-Metadaten werden aktualisiert, wenn eine
"deb-src
"-Zeile in
"/etc/apt/sources.list
" existiert.
Die "Packages
"- und
"Sources
"-Metadaten enthalten einen
"Filename:
"-Eintrag, der auf den Speicherort der Binär-
und Quellpakete verweist. Derzeit sind diese Pakete in dem Verzeichnisbaum
unterhalb von "pool/
" abgelegt zwecks einfacher Übergänge
zwischen den Veröffentlichungen.
Lokale Kopien der "Packages
"-Metadaten können mit Hilfe
von aptitude
interaktiv durchsucht werden. Der
spezialisierte Suchbefehl
grep-dctrl(1)
kann lokale Kopien der "Packages
"- und
"Sources
"-Metadaten durchsuchen.
Lokale Kopien von
"Contents-<architektur>
"-Metadaten können mittels
"apt-file update
" aktualisiert werden und ihr Speicherort
unterscheidet sich von den vier anderen. Lesen Sie dazu
apt-file(1).
(auto-apt
nutzt standardmäßig andere Speicherorte für die
lokale Kopie von "Contents-<architektur>.gz
".)
Zusätzlich zu den von außerhalb empfangenen Metadaten speichert das
APT-Werkzeug seit Lenny
seine lokal erzeugten
Installationsstatus-Informationen in der Datei
"/var/lib/apt/extended_states
", die von allen
APT-Programmen genutzt wird, um automatisch installierte Pakete zu
verfolgen.
Zusätzlich zu den von außerhalb empfangenen Metadaten speichert der
aptitude
-Befehl seine lokal erzeugten
Installationsstatus-Informationen in der Datei
"/var/lib/aptitude/pkgstates
", die nur von aptitude
selbst genutzt wird.
Alle über den APT-Mechanismus von außerhalb empfangenen Pakete werden im
Verzeichnis "/var/cache/apt/archives
" abgelegt, bis sie
gelöscht werden.
Diese Richtlinie zur Entfernung von zwischengespeicherten Dateien für
aptitude
kann unter "Optionen
" →
"Einstellungen
" gesetzt werden; sie kann auch im Menü
mittels "Paketcache komplett leeren
" oder "Nur
veraltete Paketdateien löschen
" unter
"Actionen
" erzwungen werden.
Die Dateien von Debian-Paketen haben eine bestimmte Namensstruktur:
Tabelle 2.15. Namensstruktur von Debian-Paketen
Pakettyp | Namensstruktur |
---|---|
Binärpaket (auch deb )
|
<paketname>_<epoche>:<upstream-version>-<debian.version>-<architektur>.deb
|
Binärpaket für den debian-installer (auch udeb )
|
<paketname>_<epoche>:<upstream-version>-<debian.version>-<architetur>.udeb
|
Quellpaket (Quellcode der Originalprogrammierer) |
<paketname>_<epoche>:<upstream-version>-<debian.version>.orig.tar.gz
|
1.0 -Quellpaket (Debian-Änderungen)
|
<paketname>_<epoche>:<upstream-version>-<debian.version>.diff.gz
|
3.0 (quilt) -Quellpaket (Debian-Änderungen)
|
<paketname>_<epoche>:<upstream-version>-<debian.version>.debian.tar.gz
|
Quellpaket (Beschreibung) |
<paketname>_<epoche>:<upstream-version>-<debian.version>.dsc
|
![]() |
Tipp |
---|---|
Hier sind nur die grundlegenden Quellpaketformate beschrieben. Lesen Sie weitere Details in dpkg-source(1). |
Tabelle 2.16. Zu verwendende Zeichen in jeder Komponente des Debian-Paketnamens
Namenskomponente | zu verwendende Zeichen (regex) | Existenz |
---|---|---|
<paketname>
|
[a-z,A-Z,0-9,.,+,-]+
|
erforderlich |
<epoche>:
|
[0-9]+:
|
optional |
<upstream-version>
|
[a-z,A-Z,0-9,.,+,-,:]+
|
erforderlich |
<debian.version>
|
[a-z,A-Z,0-9,.,+,~]+
|
optional |
![]() |
Anmerkung |
---|---|
Sie können die Paketversions-Reihenfolge mit
dpkg(1)
überprüfen, z.B. mittels " |
![]() |
Anmerkung |
---|---|
Der debian-installer (d-i) nutzt
|
dpkg(1) ist das Werkzeug für Debian-Paketmanagement auf niedrigster Ebene. Es ist sehr leistungsfähig und muss mit Vorsicht verwendet werden.
Beim Installieren eines Pakets "<paketname>
"
arbeitet dpkg
folgende Schritte ab:
die deb-Datei auspacken (gleichbedeutend mit "ar -x
");
ausführen von "<paketname>.preinst
" mittels
debconf(1);
installieren des Paketinhalts in das System (gleichbedeutend zu
"tar -x
");
ausführen von "<paketname>.postinst
" mittels
debconf(1).
Das debconf
-System bietet eine standardisierte
Benutzer-Schnittstelle mit Unterstützung für I18N und L10N (Näheres in Kapitel 8, I18N und L10N).
Tabelle 2.17. Erwähnenswerte Dateien, die durch dpkg
erzeugt werden
Datei | Beschreibung des Inhalts |
---|---|
/var/lib/dpkg/info/<paketname>.conffiles
|
Liste der Konfigurationsdateien (durch den Benutzer veränderbar) |
/var/lib/dpkg/info/<paketname>.list
|
Liste von Dateien und Verzeichnissen, die durch das Paket installiert werden |
/var/lib/dpkg/info/<paketname>.md5sums
|
Liste der MD5-Hash-Werte für Dateien, die durch das Paket installiert werden |
/var/lib/dpkg/info/<paketname>.preinst
|
Paket-Skript, das vor der Paketinstallation ausgeführt wird |
/var/lib/dpkg/info/<paketname>.postinst
|
Paket-Skript, das nach der Paketinstallation ausgeführt wird |
/var/lib/dpkg/info/<paketname>.prerm
|
Paket-Skript, das vor der Paketentfernung ausgeführt wird |
/var/lib/dpkg/info/<paketname>.postrm
|
Paket-Skript, das nach der Paketentfernung ausgeführt wird |
/var/lib/dpkg/info/<paketname>.config
|
Paket-Skript für das debconf -System
|
/var/lib/dpkg/alternatives/<paketname>
|
alternative-Informationen, die durch den
update-alternatives -Befehl genutzt werden
|
/var/lib/dpkg/available
|
availability-Informationen (Verfügbarkeit) für alle Pakete |
/var/lib/dpkg/diversions
|
die diversions-Informationen, die durch dpkg(1) genutzt und durch dpkg-divert(8) gesetzt werden |
/var/lib/dpkg/statoverride
|
die stat-override-Informationen, die durch dpkg(1) genutzt und durch dpkg-statoverride(8) gesetzt werden |
/var/lib/dpkg/status
|
Status-Informationen für alle Pakete |
/var/lib/dpkg/status-old
|
Backup der ersten Generation von "var/lib/dpkg/status "
|
/var/backups/dpkg.status*
|
Backup der zweiten Generation und ältere von
"var/lib/dpkg/status "
|
Die "status
"-Datei wird auch von Werkzeugen wie
dpkg(1),
"dselect update
" und "apt-get -u
dselect-upgrade
" verwendet.
Der spezialisierte Suchbefehl
grep-dctrl(1)
kann lokale Kopien der "status
"- und
"available
"-Metadaten durchsuchen.
![]() |
Tipp |
---|---|
In der debian-installer-Umgebung
wird der Befehl |
Das Debian-System hat Mechanismen, um Programme, die sich bei der
Funktionalität ein wenig überlappen, friedlich nebeneinander zu
installieren, und zwar mittels
update-alternatives(8).
Zum Beispiel können Sie den vi
-Befehl so einrichten, dass
er vim
ausführt, während Sie sowohl das
vim
wie auch das nvi
-Paket
installieren.
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Auswahl Befehl ---------------------------------------------- 1 /usr/bin/vim *+ 2 /usr/bin/nvi Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 1
Das Debian-alternatives-System setzt seine Auswahl als symbolischer Link in
"/etc/alternatives/
". Der Auswahlprozess nutzt die
entsprechende Datei in "/var/lib/dpkg/alternatives/
".
Stat overrides, bereitgestellt durch den
dpkg-statoverride(8)-Befehl,
sind ein Weg,
dpkg(1)
mitzuteilen, dass bei Installation eines Pakets für eine Datei ein anderer Eigentümer oder andere
Berechtigungen verwendet werden sollen. Falls "--update
"
angegeben wurde und die Datei bereits existiert, werden direkt der neue
Eigentümer oder neue Berechtigungen gesetzt.
![]() |
Achtung |
---|---|
Die direkte Abänderung von Benutzer oder Berechtigungen durch den
Systemadministrator (über die Befehle |
![]() |
Anmerkung |
---|---|
Ich verwende hier den Begriff Datei,
jedoch kann dies jegliches Objekt im Dateisystem sein, dass durch
|
Diversions, bereitgestellt durch den
dpkg-divert(8)-Befehl,
bieten die Möglichkeit,
dpkg(1)
zu zwingen, eine Datei nicht an Ihren Standardort zu installieren, sondern
an einen umgelenkten (diverted) Ort. Die
Verwendung von dpkg-divert
ist zur Verwendung durch
Paketverwaltungs-Skripte gedacht. Die beiläufige Verwendung durch den
Systemadministrator ist überholt.
Wenn ein unstable
-System betrieben wird, sollte der
Administrator darauf vorbereitet sein, das System im Falle einer
Beschädigung des Paketmanagements wiederherzustellen.
![]() |
Achtung |
---|---|
Einige Methoden, die hier beschrieben werden, beinhalten ein hohes Risiko. Sie wurden gewarnt! |
Wenn ein Desktop-GUI-Programm nach signifikanten Versions-Upgrades von Upstream Instabilitäten erkennen lässt, sollten Sie Behinderungen durch alte lokale, von ihm erstellte Konfigurationsdateien in Betracht ziehen. Falls das Programm unter einem neu erstellten Benutzerkonto stabil läuft, ist diese Hypothese bestätigt. (Dies ist ein Fehler beim Paketieren und wird für gewöhnlich durch den Paketersteller vermieden.)
Um das Programm wieder stabil zu bekommen, sollten Sie die entsprechenden lokalen Konfigurationsdateien beiseite schaffen und das GUI-Programm neu starten. Sie müssen möglicherweise die Inhalte alter Konfigurationsdateien lesen, um die Konfigurationsinformationen später wiederherstellen zu können. (Löschen Sie sie nicht zu früh.)
Paketmanagementsysteme auf Archiv-Ebene wie aptitude(8) oder apt-get(1) versuchen erst gar nicht, Pakete mit überlappenden Dateien über Paketabhängigkeiten zu installieren (weiteres in Abschnitt 2.1.6, „Paketabhängigkeiten“).
Fehler durch einen Paketbetreuer oder die Einrichtung von inkonsistent gemischten Archivquellen durch den Systemadministrator (lesen Sie Abschnitt 2.7.2, „Pakete aus gemischten Paketquellen“) könnten Situationen mit falsch definierten Paketabhängigkeiten hervorrufen. Wenn Sie in solch einer Situation ein Paket mit überlappenden Dateien mittels aptitude(8) oder apt-get(1) installieren, stellt dpkg(1), das das Paket entpackt, sicher, dass ein Fehler an das aufrufende Programm zurückgegeben wird, ohne dass vorhandene Dateien überschrieben werden.
![]() |
Achtung |
---|---|
Die Verwendung von Paketen aus Drittquellen bringt durch Betreuerskripte ein erhebliches Risiko für das System mit sich, da diese mit root-Privilegien ausgeführt werden und jegliche Aktion auf dem System ausführen können. Der dpkg(1)-Befehl schützt lediglich vor dem Überschreiben beim Entpacken. |
Sie können solche beschädigten Installationen umgehen, indem Sie vorher das
alte betroffene Paket <altes-paket>
entfernen:
$ sudo dpkg -P <altes-paket>
Wenn ein Befehl in einem Paketskript aus irgendeinem Grund einen Fehler zurückgibt und das Skript aufgrund des Fehlers abgebrochen wird, beendet das Paketmanagement die Aktion und es bleiben halb-installierte Pakete zurück. Wenn ein Paket Fehler in seinen Skripten zum Löschen des Pakets enthält, könnte es sein, dass das Paket nicht mehr entfernt werden kann und ziemlich unangenehm wird.
Wenn das Paket "<paketname>
" ein Problem mit den
Skripten hat, sollten Sie in folgenden Paketskripten nachschauen:
"/var/lib/dpkg/info/<paketname>.preinst
"
"/var/lib/dpkg/info/<paketname>.postinst
"
"/var/lib/dpkg/info/<paketname>.prerm
"
"/var/lib/dpkg/info/<paketname>.postrm
"
Editieren Sie die angebotenen Paketskripte von Grund auf mittels folgender Techniken:
deaktivieren Sie die problematische Zeile, indem Sie ein
"#
" voranstellen;
erzwingen Sie, dass das Skript einen Rückgabewert für Erfolg zurück gibt,
indem Sie der fraglichen Zeile "|| true
" anhängen.
Konfigurieren Sie alle halb-installierten Pakete mit folgendem Befehl:
# dpkg --configure -a
Da dpkg
ein Paketwerkzeug ist, das auf sehr niedriger
Ebene arbeitet, kann es auch in sehr schlechten Situationen wie einem nicht
startfähigen System und ohne Netzwerkverbindung noch arbeiten. Wir gehen
hier davon aus, dass das Paket foo
beschädigt war und
ersetzt werden muss.
Sie könnten im cache-Verzeichnis
"/var/cache/apt/archives/
" zwischengespeicherte Kopien
von älteren, fehlerfreien Versionen des Pakets foo
finden. (Falls nicht, können Sie diese auch aus dem Archiv unter http://snapshot.debian.net/
herunterladen oder von einem funktionierenden System herüber kopieren.)
Wenn Sie das System booten können, ist es unter Umständen möglich, das Paket mit folgendem Befehl zu installieren:
# dpkg -i /pfad/zu/foo_<alte_version>_<arch>.deb
![]() |
Tipp |
---|---|
Wenn die Beschädigung des Systems nur gering ist, könnten Sie das ganze System möglicherweise mit dem APT-System auf eine ältere Version zurückrüsten, wie in Abschnitt 2.7.10, „Downgrade im Notfall“ beschrieben. |
Wenn Ihr System überhaupt nicht mehr von Festplatte gestartet werden kann, könnten Sie nach anderen Wegen suchen, das System zu starten:
Booten Sie das System, indem Sie den Rettungsmodus der debian-installer-CD verwenden.
Binden Sie die Festplattenpartitionen des nicht mehr zu startenden Systems
in "/target
" ein.
Installieren Sie wie folgt eine ältere Version des Pakets
foo
:
# dpkg --root /target -i /pfad/zu/foo_<alte_version>_<arch>.deb
Dies funktioniert sogar, wenn der dpkg
-Befehl auf der
Festplatte beschädigt ist.
![]() |
Tipp |
---|---|
Jegliches GNU/Linux-System, das von einem anderen System auf der Festplatte oder von Live-GNU/Linux-CD, bootfähigem USB-Stick oder per Netboot gestartet wird, kann auf ähnliche Art zur Rettung des beschädigten Systems verwendet werden. |
Falls der Versuch, ein Paket auf diese Art zu installieren, aufgrund von
verletzten Abhängigkeiten fehlschlägt und Sie dies als letzten Ausweg
wirklich tun müssen, können Sie Abhängigkeiten mit den
dpkg
-Optionen "--ignore-depends
",
"--force-depends
" und weiteren überschreiben. Dabei
müssen Sie besondere Sorgfalt darauf verwenden, die Abhängigkeiten später
korrekt wiederherzustellen. Details finden Sie in
dpkg(8).
![]() |
Anmerkung |
---|---|
Falls Ihr System ernsthaft beschädigt ist, sollten ein vollständiges Backup aller Daten an einem sicheren Ort ablegen (siehe Abschnitt 10.2, „Datensicherung und -wiederherstellung“) und eine saubere Neuinstallation durchführen. Dies ist weniger zeitaufwändig und führt am Ende zu einem besseren Ergebnis. |
Falls "/var/lib/dpkg/status
" aus irgendeinem Grund
beschädigt wird, verliert das Debian-System die Daten über ausgewählte
Pakete und kommt dadurch erheblich zu Schaden. Sie finden alte
"/var/lib/dpkg/status
"-Dateien in
"/var/lib/dpkg/status-old
" oder
"/var/backups/dpkg.status.*
".
"/var/backups/
" auf einer separaten Partition zu halten
könnte eine gute Idee sein, da dieses Verzeichnis viele wichtige Systemdaten
enthält.
Bei ernsten Beschädigungen empfehle ich eine frische Neuinstallation,
nachdem eine Sicherung der Daten durchgeführt wurde. Sogar wenn alles in
"/var/
" verloren ist, können Sie trotzdem noch etliche
Informationen aus Verzeichnissen in "/usr/share/doc/
"
wiederherstellen, um Ihre neue Installation zu lenken:
Installieren Sie ein minimales (Desktop-)System.
# mkdir -p /pfad/zum/alten/system
Binden Sie die alten Systempartitionen in
"/pfad/zum/alten/system/
" ein.
# cd /pfad/zum/alten/system/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
Jetzt haben Sie eine Liste mit Paketnamen, die Sie installieren können. (Es
könnten auch einige Zeichenfolgen darunter sein, die keine Paketnamen sind,
wie z.B. "texmf
".)
Mit aptitude
können Sie nach Paketen suchen, die Ihren
Anforderungen entsprechen, entweder über die Paketbeschreibung oder über die
Liste in "Tasks".
Wenn Sie auf mehr als zwei ähnliche Pakete stoßen und sich fragen, welches Sie installieren sollen, ohne dabei nach dem "trial and error"-Verfahren (ausprobieren und schauen, ob Fehler auftreten) vorgehen zu müssen, sollten Sie ein wenig Ihren gesunden Menschenverstand benutzen. Die folgenden Punkte können als gute Hinweise auf passende Pakete angesehen werden:
Essentiell: ja > nein;
Bereich: main > contrib > non-free;
Priorität: erforderlich > wichtig > standard > optional > extra;
Tasks: Pakete, die in Tasks wie "Desktop-Umgebungen" aufgelistet sind;
Pakete, die über eine Paketabhängigkeit ausgewählt werden
(z.B. python2.4
über python
);
Popcon: höhere Einstufung bei den vote- und install-Werten;
Changelog (Änderunsprotokoll): regelmäßige Aktualisierungen durch den Betreuer;
BTS (Fehlerdatenbank): keine veröffentlichungskritischen Fehler (RC-Bugs, d.h. keine Fehler mit Schweregrad critical, grave oder serious);
BTS (Fehlerdatenbank): Betreuer reagiert auf Fehlerberichte;
BTS (Fehlerdatenbank): höhere Anzahl von kürzlich behobenen Fehlern;
BTS (Fehlerdatenbank): niedrigere Anzahl von offenen Fehlern mit Schweregrad (Severity) verschieden von wishlist.
Debian ist ein Freiwilligenprojekt mit verteiltem Entwicklungsmodell, dessen Archiv viele Pakete unterschiedlicher Zielsetzung und Qualität enthält. Sie müssen Ihre eigene Entscheidung treffen, was Sie damit anfangen.
![]() |
Achtung |
---|---|
Die Installation von Paketen aus gemischten Paketquellen wird von der
offiziellen Debian-Distribution nicht unterstützt, außer für ein paar
bestimmte Archivkombinationen, wie z.B. |
Hier ein Beispiel von Befehlen, über die man spezielle neuere
Upstream-Versionen von Paketen aus Unstable
mit
einbezieht, während für einzelne Operationen Testing
verwendet wird:
Ändern Sie die Datei "/etc/apt/sources.list
"
vorübergehend in "unstable
".
Führen Sie "aptitude update
" aus.
Führen Sie "aptitude install <packetname>
" aus.
Stellen Sie die Originalversion von
"/etc/apt/sources.list
" für testing
wieder her.
Führen Sie "aptitude update
" aus.
Bei diesem manuellen Vorgehen erstellen Sie keine
"/etc/apt/preferences
"-Datei und müssen sich auch keine
Sorgen über apt-pinning machen. Allerdings ist dies sehr mühsam.
![]() |
Achtung |
---|---|
Wenn Sie gemischte Paketquellen verwenden, müssen Sie die Kompatibilität selbst sicherstellen, da Debian diese nicht garantieren kann. Falls Paketinkompatibilitäten existieren, könnten Sie Ihr System beschädigen. Sie müssen in der Lage sein, diese technischen Anforderungen zu beurteilen. Die Verwendung von gemischten Quellen zufällig ausgewählter Archive ist eine absolut optionale Operation und nichts, was ich Ihnen empfehlen kann. |
Die grundsätzlichen Regeln für die Installation von Paketen aus unterschiedlichen Archiven sind wie folgt:
Nicht-binäre Pakete ("Architecture: all
") sind recht
unproblematisch zu installieren.
Dokumentationspakete: keine speziellen Anforderungen
Pakete von Interpreter-Programmen: ein kompatibler Interpreter muss verfügbar sein
Bei Binärpaketen (nicht "Architecture: all
") gibt es
gewöhnlich viele Stolpersteine und ihre Installation könnte problematisch sein.
![]() |
Anmerkung |
---|---|
Um die Installation eines Pakets unproblematischer zu machen, existieren möglicherweise einige nicht-freie Binärprogramm-Pakete mit vollständig statisch gelinkten Bibliotheken. Sie sollten diese immer auf ABI-Kompatibilitätsprobleme usw. kontrollieren. |
![]() |
Anmerkung |
---|---|
Außer um kurzfristig beschädigte Pakete zu vermeiden ist die Installation von Binärpaketen aus offiziell nicht unterstützten Archiven grundsätzlich eine schlechte Idee. Dies gilt sogar, wenn Sie apt-pinning verwenden (lesen Sie dazu Abschnitt 2.7.3, „Installationskandidat-Version beeinflussen“). Sie sollten chroot oder ähnliche Techniken in Betracht ziehen (weiteres in Abschnitt 9.10, „Virtualisierte Systeme“), um Programme aus verschiedenen Archiven laufen zu lassen. |
Ohne eine "/etc/apt/preferences
"-Datei wählt das
APT-System basierend auf dem Versionseintrag die letzte verfügbare Version
als Installationskandidat-Version
aus. Dies ist der normale Weg und die empfohlene Verwendung des
APT-Systems. Alle offiziell unterstützten Archivkombinationen erfordern
keine "/etc/apt/preferences
"-Datei, da bei den Archiven,
die nicht als automatische Quelle für Aktualisierungen genutzt werden
sollten, die Einstellung NotAutomatic
gesetzt ist und diese entsprechend behandelt werden.
![]() |
Tipp |
---|---|
Die Regel zum Vergleich des Versionseintrags kann verifiziert werden,
z.B. über " |
Wenn Sie regelmäßig Pakete aus gemischten Quellen installieren (siehe Abschnitt 2.7.2, „Pakete aus gemischten Paketquellen“), können Sie diese
komplizierten Operationen automatisieren, indem Sie eine Datei
"/etc/apt/preferences
" mit entsprechenden Einträgen
erstellen; so beeinflussen Sie die Auswahlregel für die Installationskandidat-Version, wie in
apt_preferences(5)
beschrieben. Dies wird apt-pinning
genannt.
![]() |
Warnung |
---|---|
Die Verwendung von apt-pinning durch einen unerfahrenen Benutzer wird sicher große Probleme hervorrufen. Sie sollten die Verwendung von apt-pinning vermeiden, außer es ist unbedingt erforderlich. |
![]() |
Achtung |
---|---|
Wenn Sie apt-pinning verwenden, müssen Sie die Kompatibilität der Pakete selbst sicherstellen, da Debian diese nicht garantieren kann. Apt-pinning ist eine absolut optionale Operation und nichts, was ich Ihnen empfehlen kann. |
![]() |
Achtung |
---|---|
Die Release-Dateien auf Archiv-Ebene (näheres in Abschnitt 2.5.3, „"Release"-Dateien auf Archiv-Ebene“) werden für die
apt_preferences(5)-Regel
verwendet. Daher funktioniert apt-pinning bei normalen Debian-Archiven und Debian-Archiven für
Sicherheitsaktualisierungen nur mit dem "Suite"-Namen. (Dies ist
anders als bei Ubuntu-Archiven.) Zum Beispiel
können wir " |
![]() |
Achtung |
---|---|
Wenn Sie Debian-fremde Archive als Teil von apt-pinning verwenden, sollten Sie kontrollieren, wofür diese gedacht sind und ob sie glaubwürdig sind. So sind zum Beispiel Ubuntu und Debian nicht dazu gedacht, miteinander vermischt zu werden. |
![]() |
Anmerkung |
---|---|
Sogar wenn Sie keine " |
Hier eine vereinfachte Beschreibung der Technik hinter apt-pinning:
Das APT-System wählt das Paket zum Upgrade mit der höchsten Pin-Priorität aus den
verfügbaren (in "/etc/apt/sources.list
" definierten)
Paketquellen als Installationskandidat-Version aus. Wenn die
Pin-Priorität des Pakets größer als 1000 ist, wird die Einschränkung auf ein
Upgrade nicht beachtet, um ein Downgrade
(eine Zurückrüstung auf eine ältere Version) zu ermöglichen (siehe Abschnitt 2.7.10, „Downgrade im Notfall“).
Werte für die Pin-Priorität eines jeden Pakets werden über
"Pin-Priority"-Einträge in der
"/etc/apt/preferences
"-Datei festgelegt oder verwenden
deren Standardwert.
Tabelle 2.18. Liste erwähnenswerter Pin-Prioritäts-Werte für die apt-pinning-Technik.
Pin-Priorität | apt-pinning-Effekte auf das Paket |
---|---|
1001 | das Paket installieren, auch wenn dies ein Downgrade des Pakets bedeutet |
990 | wird als Standardwert für das Archiv der Zielveröffentlichung verwendet |
500 | wird als Standardwert für das normale Archiv verwendet |
100 | wird als Standardwert für Archive mit NotAutomatic und ButAutomaticUpgrades verwendet |
100 | wird für das installierte Paket verwendet |
1 | wird als Standardwert für Archive mit NotAutomatic verwendet |
-1 | das Paket niemals installieren, selbst wenn es empfohlen wird |
Das Zielveröffentlichungs-Archiv kann über verschiedene Methoden festgelegt werden:
"/etc/apt/apt.conf
"-Konfigurationsdatei mit einer
"APT::Default-Release "stable";
"-Zeile;
Befehlszeilen-Option, z.B. "apt-get install -t testing
irgendein-paket
".
Die NotAutomatic- und ButAutomaticUpgrades-Archive werden durch
Archiv-Server definiert, die in ihren Release-Dateien auf Archiv-Ebene
(siehe Abschnitt 2.5.3, „"Release"-Dateien auf Archiv-Ebene“) sowohl
"NotAutomatic: yes
" wie auch
"ButAutomaticUpgrades: yes
" gesetzt haben. Das NotAutomatic-Archiv wird über Server definiert, die
in ihren Release-Dateien auf Archiv-Ebene lediglich "NotAutomatic:
yes
" gesetzt haben.
Die apt-pinning-Situation von
<package> aus mehreren Archivquellen wird mittels "apt-cache
policy <package>
" angezeigt.
Eine Zeile beginnend mit "Package pin:
" listet die
Paketversion von pin auf, wenn die
Zuordnung direkt über <package> definiert ist, z.B. "Package
pin: 0.190
".
Es existiert keine Zeile mit "Package pin:
", wenn keine
Zuordnung direkt über <package> definiert ist.
Der Pin-Prioritäts-Wert, der direkt zu <package> gehört, ist rechts
neben den Versionseinträgen aufgelistet, z.B. "0.181
700
".
"0
" wird rechts neben den Versionseinträgen aufgelistet,
wenn keine Zuordnung direkt mit <package> definiert ist, z.B
"0.181 0
".
Die Pin-Prioritäts-Werte von Archiven (definiert als "Package:
*
" in der "/etc/apt/preferences
"-Datei) sind
links von den Archivpfaden aufgelistet, z.B. "100
http://ftp.de.debian.org/debian/ wheezy-backports/main
Packages
".
Es gibt wheezy-updates- und backports.debian.org-Archive, die
aktualisierte Pakete für stable
(wheezy
) bereitstellen.
Um diese Archive zu nutzen, listen Sie alle erforderlichen Archive in der
"/etc/apt/sources.list
"-Datei wie unten gezeigt auf:
deb http://ftp.de.debian.org/debian/ wheezy main contrib non-free deb http://security.debian.org/ wheezy/updates main contrib deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free deb http://ftp.de.debian.org/debian/ wheezy-backports main contrib non-free
Es ist nicht nötig, einen Wert für die Pin-Priorität in
"/etc/apt/preferences
" zu setzen. Wenn neuere Pakete
verfügbar werden, werden mit der Standardkonfiguration passende Upgrades
bereitgestellt (siehe Abschnitt 2.5.3, „"Release"-Dateien auf Archiv-Ebene“).
Alle installierten veralteten Pakete werden auf die neuen von
wheezy-updates
aktualisiert.
Nur manuell installierte veraltete Pakete von
wheezy-backports
werden auf die neuen
Versionen von wheezy-backports
aktualisiert.
Wann immer Sie ein Paket namens "<paketname>
"
inklusive seiner Abhängigkeiten von
wheezy-backports
manuell installieren möchten,
verwenden Sie den folgenden Befehl, wobei Sie die Zielveröffentlichung mit
der Option "-t
" festlegen.
$ sudo apt-get install -t wheezy-backports <paketname>
Wenn Sie verhindern möchten, dass bestimmte Pakete über
"Recommends"-Abhängigkeiten (Empfohlene) installiert werden, müssen Sie die
Datei "/etc/apt/preferences
" erstellen und explizit all
diese Pakete ganz oben in der Datei auflisten, wie in diesem Beispiel:
Package: <paket-1> Pin: version * Pin-Priority: -1 Package: <paket-2> Pin: version * Pin-Priority: -1
Hier ein Beispiel für eine apt-pinning-Technik, um neuere Upstream-Versionen
einzelner Pakete aus Unstable
regelmäßig aktualisieren zu
können und ansonsten Testing
zu verfolgen. Sie listen
alle benötigten Archive in der
"/etc/apt/sources.list
"-Datei wie folgt auf:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free deb http://ftp.de.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/ testing/updates main contrib
Richten Sie die "/etc/apt/preferences
"-Datei wie folgt
ein:
Package: * Pin: release a=unstable Pin-Priority: 100
Wenn Sie mit dieser Konfiguration ein Paket namens
"<paketname>
" aus dem
Unstable
-Archiv inklusive seiner Abhängigkeiten
installieren möchten, führen Sie folgenden Befehl aus, der über die Option
"-t
" die Zielveröffentlichung ändert (die Pin-Priorität
von Unstable
wird 990).
$ sudo apt-get install -t unstable <paketname>
Mit dieser Konfiguration wird die normale Ausführung von "apt-get
upgrade
" und "apt-get dist-upgrade
" (oder
"aptitude safe-upgrade
" und "aptitude
full-upgrade
") Pakete, die aus Testing
installiert wurden, unter Verwendung des derzeitigen
Testing
-Archivs aktualisieren; Pakete, die aus
Unstable
installiert wurden, werden unter Verwendung des
derzeitigen Unstable
-Archivs aktualisiert.
![]() |
Achtung |
---|---|
Achten Sie darauf, dass Sie nicht den " |
![]() |
Tipp |
---|---|
Ich bearbeite für gewöhnlich die
" |
![]() |
Tipp |
---|---|
Wenn " |
Wenn Sie bestimmte Pakete in Unstable
automatisch ohne
vorangestelltes "-t unstable
" bei der Installation
verfolgen möchten, müssen Sie die
"/etc/apt/preferences
"-Datei erstellen und ganz oben in
der Datei all diese Pakete wie folgt auflisten:
Package: <package-1> Pin: release a=unstable Pin-Priority: 700 Package: <package-2> Pin: release a=unstable Pin-Priority: 700
Dadurch wird der Pin-Prioritäts-Wert für jedes Paket spezifisch gesetzt. Um
zum Beispiel die aktuellste Unstable
-Version dieser
"Debian Reference" in Englisch zu verfolgen, sollten Sie folgende Einträge
in Ihrer "/etc/apt/preferences
"-Datei haben:
Package: debian-reference-en Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700
![]() |
Tipp |
---|---|
Diese apt-pinning-Technik funktioniert sogar, wenn Sie das
|
Hier ein anderes Beispiel der apt-pinning-Technik, um neuere Upstream-Versionen
einzelner Pakete aus Experimental
zu integrieren und
ansonsten Testing
zu verfolgen. Sie listen alle
benötigten Archive in der "/etc/apt/sources.list
"-Datei
wie folgt auf:
deb http://ftp.de.debian.org/debian/ unstable main contrib non-free deb http://ftp.de.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing/updates main contrib
Die Standard-Pin-Priorität für das Experimental
-Archiv
ist immer 1 (<<100), da es ein Archiv mit gesetztem NotAutomatic ist (siehe Abschnitt 2.5.3, „"Release"-Dateien auf Archiv-Ebene“). Es ist nicht nötig, den Wert für
die Pin-Priorität explizit in der
"/etc/apt/preferences
"-Datei zu setzen, um das
Experimental
-Archiv nutzen zu können (außer wenn Sie
beabsichtigen, bestimmte Pakete daraus beim nächsten Upgrade automatisch zu
verwenden).
Das apt
-Paket enthält ein eigenes cron-Skript
("/etc/cron.daily/apt
"), um den automatischen Download
von Paketen zu unterstützen. Durch die Installation des
unattended-upgrades
-Pakets kann dieses Skript erweitert
werden, so dass auch die automatische Aktualisierung von Paketen
durchgeführt wird. Sie können dies über Parameter in
"/etc/apt/apt.conf.d/02backup
" und
"/etc/apt/apt.conf.d/50unattended-upgrades
" noch weiter
anpassen (wie in
"/usr/share/doc/unattended-upgrades/README
" beschrieben).
Das unattended-upgrades
-Paket ist hauptsächlich für
Sicherheits-Upgrades auf Stable
-Systemen gedacht. Wenn
das Risiko, ein vorhandenes Stable
-System über einen
automatischen Upgrade-Prozess zu beschädigen, geringer ist als das, welches
von einem Angreifer ausgeht, der über Ausnutzung einer Sicherheitslücke das
System schädigt, sollten Sie ein automatisches Upgrade in Erwägung ziehen,
das diese Lücke über ein Sicherheits-Upgrade schließt. Nutzen Sie dazu
folgende Konfigurationsparameter:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
Wenn Sie ein Unstable
-System laufen haben, sollten Sie
die automatischen Upgrades nicht verwenden, da sonst mit Sicherheit eines
Tages das System beschädigt würde. Aber sogar für solch ein
Unstable
-System möchten Sie vielleicht in Vorbereitung
für ein interaktives Upgrade die Pakete automatisch herunterladen, um Zeit
zu sparen. Verwenden Sie dazu folgende Konfigurationsparameter:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
Falls Sie die Download-Bandbreite für APT einschränken möchten, sagen wir z.B. auf 800Kib/sec (=100kiB/sec), sollten Sie APT mit dessen Konfigurationsparametern wie folgt einrichten:
APT::Acquire::http::Dl-Limit "800";
![]() |
Achtung |
---|---|
Ein Downgrade wird von Debian aufgrund seines Designs nicht offiziell unterstützt. Es sollte nur als Teil einer Notfall-Rettungsmaßnahme durchgeführt werden. Davon einmal abgesehen weiß man, dass es in den meisten Fällen gut funktioniert. Bei kritischen Systemen sollten Sie nach der Wiederherstellung alle wichtigen Daten auf dem System sichern und dann das System von Grund auf neu installieren. |
Sie könnten Glück haben, ein Downgrade (Zurückrüstung auf eine ältere
Debian-Version) von einem neueren auf ein älteres Archiv durchzuführen,
indem Sie die Installationskandidat-Versionen manipulieren (lesen
Sie dazu Abschnitt 2.7.3, „Installationskandidat-Version beeinflussen“). Dies ist die
tippfaule Alternative zu langwierigen Aktionen vieler Befehle der Art
"dpkg -i
<beschädigtes-paket>_<alte-version>.deb
" (näheres in
Abschnitt 2.6.4, „Systemrettung mit dem dpkg-Befehl“).
Suchen Sie Zeilen in der "/etc/apt/sources.list
"-Datei
wie die folgende, die unstable
referenzieren:
deb http://ftp.de.debian.org/debian/ sid main contrib non-free
Ersetzen Sie sie durch die folgende, um stattdessen auf
testing
zu verweisen:
deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
Legen Sie die "/etc/apt/preferences
"-Datei wie folgt an:
Package: * Pin: release a=testing Pin-Priority: 1010
Führen Sie "apt-get update; apt-get dist-upgrade
" aus, um
ein Downgrade aller Pakete im System zu erzwingen.
Entfernen Sie diese spezielle
"/etc/apt/preferences
"-Datei nach dem Downgrade.
![]() |
Tipp |
---|---|
Es ist eine gute Idee, so viele Pakete wie möglich zu löschen (nicht vollständig inklusive der Konfigurationsdateien entfernen!), um die Wahrscheinlichkeit von Abhängigkeitsproblemen zu minimieren. Sie müssen unter Umständen einige Pakete von Hand entfernen oder installieren, um ein Downgrade des Systems durchführen zu können. Linux-Kernel, Bootloader, udev, PAM, APT und Netzwerk-bezogene Pakete sowie deren Konfigurationsdateien erfordern besondere Aufmerksamkeit. |
Obwohl der Betreuername, der in "/var/lib/dpkg/available
"
und "/usr/share/doc/package_name/changelog
" aufgelistet
ist, Informationen darüber gibt, "wer hinter den Paketaktivitäten steht",
sind Informationen über den Uploader (die Person, die das Paket wirklich
hochgeladen hat) ein wenig
verschleiert.
who-uploads(1)
aus dem devscripts
-Paket identifiziert die realen
Uploader von Debian-Quellpaketen.
Wenn Sie ein Programm aus den Quellen übersetzen möchten, um das
entsprechende Debian-Paket zu ersetzen, ist es das beste, ein echtes lokal
gebautes Paket nach Debian-Art zu erstellen (*.deb
) und
ein privates Archiv dafür zu nutzen.
Wenn Sie sich entschieden haben, ein Programm aus den Quellen zu kompilieren
und es stattdessen in "/usr/local
" zu installieren,
können Sie möglicherweise equivs
als letzte Rettung
einsetzen, um die fehlenden Paketabhängigkeiten zu erfüllen:
Package: equivs Priority: extra Section: admin Description: Überlisten der Abhängigkeiten zwischen Debian-Paketen Dies ist ein Dummy-Paket, das genutzt werden kann, um Debian- Pakete zu erzeugen, die lediglich Informationen über Paket- abhängigkeiten enthalten.
Für partielle Upgrades eines Stable
-Systems ist das
Neubauen von Paketen innerhalb ihrer Umgebung unter Verwendung der
Quellpakete sinnvoll. Dies vermeidet riesige Paket-Upgrades aufgrund von
deren Abhängigkeiten.
Fügen Sie folgende Einträge zur "/etc/apt/sources.list
"
des Stable
-Systems hinzu:
deb-src http://http.de.debian.org/debian unstable main contrib non-free
Installieren Sie für das Kompilieren erforderliche Pakete und laden Sie das Quellpaket wie folgt herunter:
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential $ apt-get build-dep foo $ apt-get source foo $ cd foo*
Aktualisieren Sie einige Pakete aus der Werkzeugkette, wie
z.B. dpkg
und debhelper
, aus den
Paketquellen für zurück zu portierende Pakete, falls diese für die
Rückportierung erforderlich sind.
Führen Sie folgendes aus:
$ dch -i
Erhöhen Sie die Paketversion, z.B. indem ein "+bp1
" in
"debian/changelog
" angehängt wird.
Bauen Sie die Pakete und installieren Sie sie wie folgt in dem System:
$ debuild $ cd .. # debi foo*.changes
Obwohl das Spiegeln von kompletten Untersektionen des Debian-Archivs
Plattenplatz und Netzwerkbandbreite verschwendet, ist es der Einsatz eines
lokalen Proxy-Servers für APT wert in Erwägung gezogen zu werden, wenn Sie
viele Systeme im LAN (Netzwerk)
administrieren. APT kann konfiguriert werden, einen generischen
Web-(http-)Proxy-Server wie squid
(siehe auch Abschnitt 6.10, „Weitere Netzwerkanwendungs-Server“) zu verwenden, wie in
apt.conf(5)
und "/usr/share/doc/apt/examples/configure-index.gz
"
beschrieben. Die Umgebungsvariable "$http_proxy
" kann
genutzt werden, um die Proxy-Server-Einstellungen aus der
"/etc/apt/apt.conf
"-Datei zu überschreiben.
Es gibt Proxy-Hilfsprogramme, die für das Debian-Archiv spezialisiert sind. Sie sollten die Fehlerdatenbank (BTS) überprüfen, bevor Sie sie verwenden.
Tabelle 2.19. Liste von Proxy-Hilfsprogrammen speziell für das Debian-Archiv
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
approx
|
V:1, I:1 | 4263 | zwischenspeichernder Proxy-Server für Debian-Archiv-Dateien (kompiliertes OCaml-Programm) |
apt-cacher
|
V:1, I:2 | 326 | zwischenspeichernder Proxy-Server für Debian-Paket- und Quell-Dateien (Perl-Programm) |
apt-cacher-ng
|
V:3, I:5 | 1022 | zwischenspeichernder Proxy für die Verteilung von Software-Paketen (kompiliertes C++-Programm) |
![]() |
Achtung |
---|---|
Wenn Debian seine Archivstruktur umorganisiert, neigen diese spezialisierten Proxy-Hilfsprogramme dazu, eine Code-Änderung durch den Paketbetreuer zu benötigen und könnten eine Zeit lang nicht funktionieren. Generische Web-(http-)Proxy-Server auf der anderen Seite sind robuster und können einfacher mit solchen Änderungen umgehen. |
Hier ein Beispiel für die Erstellung eines kleinen öffentlichen Paketarchivs, das mit dem modernen secure APT-System (siehe Abschnitt 2.5.2, „"Release"-Datei in der obersten Ebene und Authentizität“) kompatibel ist. Wir gehen einmal von folgenden Dingen aus:
Kontoname: "foo
"
Rechnername (host name): "www.example.com
"
Erforderliche Pakete: apt-utils
,
gnupg
, und andere
URL: "http://www.example.com/~foo/
" ( →
"/home/foo/public_html/index.html
")
Architektur der Pakete: "amd64
"
Erzeugen Sie wie folgt einen APT-Archiv-Schlüssel von Foo auf Ihrem System:
$ ssh foo@www.example.com $ gpg --gen-key ... $ gpg -K ... sec 1024D/3A3CB5A6 2008-08-14 uid Foo (ARCHIVE KEY) <foo@www.example.com> ssb 2048g/6856F4A7 2008-08-14 $ gpg --export -a 3A3CB5A6 >foo.public.key
Publizieren Sie die Archivschlüssel-Datei
"foo.public.key
" für Foo mit der Schlüssel-ID
"3A3CB5A6
".
Erzeugen Sie wie folgt einen Archivbaum namens "Origin: Foo":
$ umask 022 $ mkdir -p ~/public_html/debian/pool/main $ mkdir -p ~/public_html/debian/dists/unstable/main/binary-amd64 $ mkdir -p ~/public_html/debian/dists/unstable/main/source $ cd ~/public_html/debian $ cat > dists/unstable/main/binary-amd64/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: amd64 EOF $ cat > dists/unstable/main/source/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: source EOF $ cat >aptftp.conf <<EOF APT::FTPArchive::Release { Origin "Foo"; Label "Foo"; Suite "unstable"; Codename "sid"; Architectures "amd64"; Components "main"; Description "Public archive for Foo"; }; EOF $ cat >aptgenerate.conf <<EOF Dir::ArchiveDir "."; Dir::CacheDir "."; TreeDefault::Directory "pool/"; TreeDefault::SrcDirectory "pool/"; Default::Packages::Extensions ".deb"; Default::Packages::Compress ". gzip bzip2"; Default::Sources::Compress "gzip bzip2"; Default::Contents::Compress "gzip bzip2"; BinDirectory "dists/unstable/main/binary-amd64" { Packages "dists/unstable/main/binary-amd64/Packages"; Contents "dists/unstable/Contents-amd64"; SrcPackages "dists/unstable/main/source/Sources"; }; Tree "dists/unstable" { Sections "main"; Architectures "amd64 source"; }; EOF
Sie können wiederkehrende Updates der APT-Archiv-Inhalte auf Ihrem Server
automatisieren, indem Sie dupload
konfigurieren.
Platzieren Sie die Paketdateien in
"~foo/public_html/debian/pool/main/
", indem Sie
"dupload -t foo changes_file
" ausführen, während
"~/.dupload.conf
" folgendes enthält:
$cfg{'foo'} = { fqdn => "www.example.com", method => "scpb", incoming => "/home/foo/public_html/debian/pool/main", # The dinstall on ftp-master sends emails itself dinstall_runs => 1, }; $cfg{'foo'}{postupload}{'changes'} = " echo 'cd public_html/debian ; apt-ftparchive generate -c=aptftp.conf aptgenerate.conf; apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release ; rm -f dists/unstable/Release.gpg ; gpg -u 3A3CB5A6 -bao dists/unstable/Release.gpg dists/unstable/Release'| ssh foo@www.example.com 2>/dev/null ; echo 'Package archive created!'";
Das postupload-Hook-Skript, das von dupload(1) angestossen wurde, erzeugt aktualisierte Archivdateien für jeden Upload.
Mit folgenden Befehlen können Sie dieses kleine öffentliche Archiv zu der apt-Zeile auf Ihrem Client-System hinzufügen:
$ sudo bash # echo "deb http://www.example.com/~foo/debian/ unstable main" \ >> /etc/apt/sources.list # apt-key add foo.public.key
![]() |
Tipp |
---|---|
Wenn das Archiv in dem lokalen Dateisystem abgelegt ist, können Sie
stattdessen " |
Sie können mit folgenden Befehlen eine lokale Kopie des Paket- und Debconf-Auswahlstatus' erstellen:
# dpkg --get-selections '*' > selection.dpkg # debconf-get-selections > selection.debconf
Hier sorgt "*
" dafür, dass
"selection.dpkg
" auch Einträge für "purge" (vollständig
inklusive der Konfigurationsdateien entfernt) enthält.
Sie können diese zwei Dateien auf einen anderen Computer übertragen und damit dort installieren:
# dselect update # debconf-set-selections < myselection.debconf # dpkg --set-selections < myselection.dpkg # apt-get -u dselect-upgrade # oder dselect install
Wenn Sie darüber nachdenken, viele Server in einem Cluster mit nahezu
identischer Konfiguration zu verwalten, sollten Sie die Verwendung
spezialisierter Pakete wie fai
zur Verwaltung des ganzen
Systems in Betracht ziehen.
alien(1)
erlaubt die Konvertierung von Binärpaketen verschiedener Formate wie
rpm
(Red Hat), slp
(Stampede),
tgz
(Slackware) und pkg
(Solaris) in
ein Debian deb
-Paket. Wenn Sie also ein Paket von einer
anderen Linux-Distribution als der, die Sie auf Ihrem System installiert
haben, nutzen möchten, können Sie alien
verwenden, um das
Paket Ihrer Wahl umzuwandeln und zu installieren. alien
unterstützt auch LSB-Pakete.
![]() |
Warnung |
---|---|
alien(1)
darf nicht benutzt werden, um essentielle Systempakete wie
|
Die Inhalte des "dpkg*.deb
"-Pakets können in allen Unix-ähnlichen Umgebungen mit den
Standardwerkzeugen
ar(1)
und
tar(1)
auch ohne
dpkg(1)
extrahiert werden:
# ar x /pfad/zu/dpkg_<version>_<arch>.deb # ls total 24 -rw-r--r-- 1 bozo bozo 1320 2007-05-07 00:11 control.tar.gz -rw-r--r-- 1 bozo bozo 12837 2007-05-07 00:11 data.tar.gz -rw-r--r-- 1 bozo bozo 4 2007-05-07 00:11 debian-binary # mkdir control # mkdir data # tar xvzf control.tar.gz -C control # tar xvzf data.tar.gz -C data
Die Inhalte anderer "*.deb
"-Pakete können mit dem
dpkg-deb(1)-Befehl
aus dem oben genannten "dpkg*.deb
"-Paket entpackt werden;
oder verwenden Sie
ar(1)
und das neuere GNU
tar(1)
mit Unterstützung für den
xz(1)-Dekompressionsalgorithmus,
ähnlich dem obigen Beispiel.
Der Paketinhalt kann auch mit dem mc
-Befehl durchsucht
werden.
Mit folgender Dokumentation können Sie mehr über das Paketmanagement lernen.
Primäre Dokumentation zum Paketmanagement:
aptitude(8), dpkg(1), tasksel(8), apt-get(8), apt-config(8), apt-key(8), sources.list(5), apt.conf(5) und apt_preferences(5);
"/usr/share/doc/apt-doc/guide.html/index.html
" und
"/usr/share/doc/apt-doc/offline.html/index.html
" aus dem
apt-doc
-Paket;
"/usr/share/doc/aptitude/html/en/index.html
" aus dem
aptitude-doc-en
-Paket.
Offizielle und detaillierte Dokumentation zum Debian-Archiv:
Anleitung zum Bau eines Debian-Pakets für Debian-Benutzer: