<!-- Subversion revision of original English document "3640" -->

<chapt id="pkgtools">Die Debian-Paketverwaltungswerkzeuge

<sect id="pkgprogs">Welche Programme bietet Debian an, um seine Pakete zu verwalten?

<p>Für die Verwaltung der Debian-Pakete gibt es verschiedene Werkzeuge,
von grafischen oder textbasierten Schnittstellen über die Grundwerkzeuge,
die benutzt werden um Pakete zu installieren. Alle verfügbaren Werkzeuge
bauen auf den Grundwerkzeugen auf und sollen hier absteigend nach Bedienbarkeit
vorgestellt werden.

<p>Es ist wichtig zu verstehen, dass die fortschrittlicheren
Paketverwaltungswerkzeuge wie <prgn/aptitude/ oder <prgn/dselect/ auf <prgn/apt/,
welches selber auf <prgn/dpkg/ aufbaut, basieren.

<p>Sehen Sie sich das <url id="http://www.debian.org/doc/manuals/apt-howto/"
name="APT-Handbuch"> für weitere Informationen über die
Paketverwaltungswerkzeuge an.
Unter <url id="http://www.debian.org/doc/user-manuals#apt-howto" name="dem
APT-Handbuch-Eintrag auf der DDP-Benutzerhandbuchübersichtsseite"> können
Sie dieses Dokument in verschiedenen Sprachen und Formaten bekommen.

<!-- TODO: Describe tools to automatically build from sources Debian
packages including 'apt-get build-dep foo && apt-get build foo' and
'apt-build' -->

<sect1 id="dpkg">dpkg

<p>Dies ist das Hauptpaketverwaltungswerkzeug. <prgn/dpkg/
kann mit vielen Optionen aufgerufen werden. Häufig benutzte sind:
<list>
  <item>Zeige alle Optionen an: <tt>dpkg --help</tt>.
  <item>Zeige die Datei <file>control</file> (und andere Informationen) für ein angegebenes
    Paket an: <tt>dpkg --info foo_VVV-RRR.deb</tt>
  <item>Installiere ein Paket (inklusive Entpacken und Konfiguration) in das
    Dateisystem auf der Festplatte: <tt>dpkg --install foo_VVV-RRR.deb</tt>.
  <item>Entpacke (ohne es zu konfigurieren) ein Debian-Archiv in das Dateisystem
    auf der Festplatte: <tt>dpkg --unpack foo_VVV-RRR.deb</tt>. Bitte beachten Sie, dass diese Option
    das Paket <em>nicht</em> automatisch in einem benutzbaren Zustand hinterlässt;
    einige Dateien benötigen eventuell eine weitergehende Anpassung, um vernünftig zu
    funktionieren.
    Dieser Befehl löscht jede auf der Festplatte installierte Version des Programms und führt das
    mit dem Paket verbundene »preinst«-Skript (siehe <ref id="maintscripts">) aus.
  <item>Konfiguriere ein bereits ausgepacktes Paket:
    <tt>dpkg --configure foo</tt>. Neben anderen Sachen ruft diese Option das
    zugehörige "postinst"-Skript (siehe <ref id="maintscripts">) des Paketes auf.
    Außerdem aktualisiert es die Dateien, die in der Datei <tt>conffiles</tt>
    des Paketes aufgelistet sind. Beachten Sie, dass die »configure«-Option als Argument
    einen Paketnamen benötigt (z.B. foo), <em/und nicht/ den Namen der Debian-Archivdatei
    (z.B. foo_VVV-RRR.deb).
  <item>Extrahiere eine einzelne Datei namens "blurf" (oder mehrere Dateien namens
    "blurf*" aus einem Debian-Archiv
    <tt>dpkg --fsys-tarfile foo_VVV-RRR.deb | tar -xf - blurf*</tt>
  <item>Lösche ein Paket (aber nicht seine Konfigurationsdateien):
    <tt>dpkg --remove foo</tt>.
  <item>Lösche ein Paket (inklusive Konfigurationsdateien):
    <tt>dpkg --purge foo</tt>.
  <item>Zeige den Installationszustand eines Paketes, das die Buchstaben
    (oder den regulären Ausdruck) "foo*" enthält: <tt>dpkg --list 'foo*'</tt>.
</list>

<sect1 id="apt-get">APT

<!-- Aus alter Übersetzung, vielleicht sinnvoll?
<p><prgn/apt-get/ liefert einen einfachen Weg, um Pakete im Textmodus zu installieren.
Im Gegensatz zu <prgn/dpkg/ arbeitet <prgn/apt-get/ nicht mit .deb-Dateien, sondern
es arbeitet mit dem zu einem Paket gehörigen Namen des Paketes und kann .deb-Archive nur über
eine in <file>/etc/apt/sources.list</file> aufgeführte Quelle installieren.

<p>Für weitere Informationen installieren Sie das Paket <package/apt/, lesen Sie
<manref name="apt-get" section="8">, <manref name="sources.list" section="5">
und <file>/usr/share/doc/apt/guide.html/index.html</file>.
-->
<p>APT ist das <em>Advanced-Package-Tool (erweitertes
Paketverwaltungswerkzeug)</em> und beinhaltet das Programm <prgn/apt-get/.
<prgn/apt-get/ stellt auf einfache Weise ein Mittel für das Besorgen
und Installieren von Paketen aus verschiedenen Quellen über die Kommandozeile
zur Verfügung. Anders als <prgn/dpkg/ versteht <prgn/apt-get/ die ».deb-Dateien«
nicht. <prgn/apt-get/ arbeitet mit dem Paketnamen und kann die ».deb-Dateien«
nur installieren, wenn eine entsprechende Quelle in der
<file>/etc/apt/sources.list</file> Datei aufgeführt ist.
<prgn/apt-get/ ruft nach dem Download des ».deb-Archivs«
direkt <prgn/dpkg/ zur Installation<footnote>Beachten Sie, dass es
einige (Software)-Portierungen gibt, die dies auch für andere
Paketverwaltungssysteme wie den »Red-Hat-Paketverwalter« (auch als
<prgn/rpm/ bekannt) ermöglichen.</footnote> von den konfigurierten Quellen
auf.

<p>Einige der üblichen Wege <prgn/apt-get/ zu benutzen sind:

<list>
       <item>Um die Liste der Ihrem System bekannten Pakete zu aktualisieren
               können Sie <example>apt-get update</example> ausführen
       (Sie sollten dies regelmäßig ausführen um Ihre Paketliste aktuell zu halten)

       <item>Um ein Upgrade aller Pakete auf Ihrem System zu starten, führen Sie
               <example>apt-get upgrade</example> aus

       <item>Um das Paket <var/foo/ mit allen seinen Abhängigkeiten zu installieren,
               bedarf es nur eines: <example>apt-get install foo</example>

       <item>Um das Paket <var/foo/ wieder von Ihrem System zu entfernen, führen Sie
               <example>apt-get remove foo</example> aus

       <item>Um das Paket <var/foo/ mit allen Konfigurationsdateien von Ihrem System zu entfernen,
             braucht es nur ein:
               <example>apt-get --purge remove foo</example>

       <item>Um alle Pakete auf Ihrem System auf ein neue &debian;-Version zu
	       aktualisieren, benutzen Sie das folgende Kommando:
               <example>apt-get dist-upgrade</example>

</list>

<p>Bitte beachten Sie, dass Sie für das Ausführen von Kommandos, die die Systempakete
ändern, als Hauptbenutzer angemeldet sein müssen.

<p>Die »apt-Werkzeug-Suite« enthält noch das <prgn/apt-cache/-Werkzeug um die
Paketliste zu durchsuchen. Im Paketverwaltungssystem können Sie mit einem
einfachen Text oder einem regulären Ausdruck Pakete suchen, die spezielle
Funktionen anbieten und Sie können Abhängigkeiten suchen.
Einige der üblichen Wege wie <prgn/apt-cache/ benutzt wird, sind:

<list>
       <item>Um ein Paket zu finden, dessen Beschreibung <var/Wort/ enthält:
               <example>apt-cache search <var>Wort</var></example>

       <item>Um detaillierte Informationen über ein Paket auszugeben:
               <example>apt-cache show <var>Paket</var></example>

       <item>Um die Pakete zu bekommen von dem ein gegebenes Paket abhängt:
               <example>apt-cache depends <var>Paket</var></example>

       <item>Um detaillierte Informationen über die verfügbaren Versionen
               eines Paketes und die Pakete, die von diesem Paket abhängen, zu
               bekommen:
               <example>apt-cache showpkg <var>Paket</var></example>

</list>


<p>Für weitere Informationen, installieren Sie bitte das <package/apt/-Paket und lesen
<manref name="apt-get" section="8">, <manref name="sources.list" section="5">,
und installieren das <package/apt-doc/-Paket und lesen
<file>/usr/share/doc/apt-doc/guide.html/index.html</file>.

<sect1 id="aptitude">aptitude

<p><prgn/aptitude/ ist ein Paketverwalter für &debian;-Systeme, welcher
eine Oberfläche für die apt-Paketverwaltungsschnittstelle
bietet. <prgn/aptitude/ ist eine textbasierte Schnittstelle, die die
curses-Bibliothek benutzt. Es kann benutzt werden, um Verwaltungsaufgaben
auf schnelle und einfache Weise zu erledigen.


<p><prgn/aptitude/ unterstützt die Funktionen von <prgn/dselect/ und
<prgn/apt-get/, genauso wie verschiedene andere Funktionen, welche es
in anderen Programmen nicht gibt:

<list>
       <item><prgn/aptitude/ bietet Zugriff auf alle Versionen eines Paketes.

       <item><prgn/aptitude/ protokolliert alle seine Schritte unter
	<file>/var/log/aptitude</file>.

       <item><prgn/aptitude/ macht es einfach, die Übersicht über die
       veraltete Software nicht zu verlieren, indem sie unter
       »Veraltete und selbst erstellte Pakete« aufgelistet werden.

       <item><prgn/aptitude/ enthält ein ziemlich mächtiges System für die
       ausführliche Suche nach Paketen und die Limitierung der angezeigten
       Pakete. Benutzer die <prgn/mutt/ nutzen, werden schnell zurechtkommen,
       weil <prgn/mutt/ die Inspiration für die Ausdruckssyntax war.

       <item><prgn/aptitude/ speichert, welche Pakete wegen einer Abhängigkeit
       installiert wurden und entfernt diese automatisch, wenn das
       Paket, das es brauchte, vom System entfernt wird.

       <item><prgn/aptitude/ kann automatisch
       <em>Empfohlende:</em> Pakete<footnote>Obwohl das dazu führen kann,
       dass ein System mit mehr Paketen installiert wird, als es momentan zum Arbeiten
       braucht.</footnote> installieren.

       <item>Im Vollbildmodus hat <prgn/aptitude/ eingebaute
       <prgn/su/-Funktionalität und kann als normaler Benutzer
       ausgeführt werden. Es ruft
       <prgn/su/ auf (und fragt nach dem Passwort des Hauptbenutzers, sofern
       vorhanden) falls Sie
       wirklich administrative Rechte benötigen sollten

</list>

<p>Sie können <prgn/aptitude/ über eine visuelle Schnittstelle (einfach
<tt>aptitude</tt> ausführen) oder direkt von der Kommandozeile starten. Die
genutzte Kommandozeilensyntax ist sehr ähnlich, zu der von <prgn/apt-get/
genutzten. Um zum Beispiel das Paket <var>foo</var> zu installieren, können Sie einfach
<tt>aptitude install <var>foo</var></tt> starten.

<p>Bitte beachten Sie, dass <prgn/aptitude/ das von Debian empfohlende Programm
für das Installieren eines Paketes und/oder das Aktualisieren Ihres Systems ist.

<p>Für weitere Informationen lesen Sie bitte die Handbuchseite <manref
name="aptitude" section="8"> und installieren das Paket <package/aptitude-doc-en/.

<sect1 id="dselect">dselect

<p>Dieses Programm ist eine menügesteuerte Schnittstelle für das Debian-Paketverwaltungssystem.
Es ist besonders für erste Installationen und größere Aktualisierungen nützlich.
Einige Benutzer werden <prgn/aptitude/ komfortabler finden, was gegenüber
<prgn/dselect/ für Aktualisierungen im großen Stil auch empfohlen wird. Weitere Informationen
über <prgn/aptitude/ können Sie unter <ref id="aptitude"> finden.

<p><prgn/dselect/ kann:
<list>
  <item>den Benutzer unterstützen, das Paket, das er/sie ausgewählt hat, zu installieren
	oder zu löschen und dabei sicherstellen, dass keine Pakete, die in Konflikt
	mit anderen stehen, installiert sind und benötigte Pakete, die für das
	Funktionieren der anderen gebraucht werden, ebenfalls installiert sind;
  <item>den Benutzer über Inkonsistenzen oder Inkompatibilitäten in seiner Auswahl
        warnen;
  <item>die Reihenfolge, in der die Pakete installiert sein müssen, festlegen;
  <item>automatisch die Installation oder das Löschen ausführen und
  <item>den Benutzer anleiten, welcher Konfigurationsschritt der Konfiguration für jedes Paket
        notwendig ist.
</list>

<p><prgn/dselect/ beginnt mit der Auswahl aus sieben Möglichkeiten für den Benutzer,
von denen jede für eine bestimmte Aktion steht. Der Benutzer kann durch das Drücken
der Pfeiltasten mit der markierten Zeile seine Auswahl treffen. Um die markierte Zeile
auszuwählen, muss die <em>&lt;Enter&gt;</em>-Taste gedrückt werden.

<p>Was der Benutzer als nächstes zu sehen bekommt, hängt von der Auswahl ab, die
er getroffen hat. Wenn er eine Option mit Ausnahme von <tt>Zugriff</tt> oder <tt>Auswählen</tt> ausgewählt hat,
dann setzt <prgn/dselect/
mit dem Ausführen der angegebenen Aktion fort: wenn der Benutzer z.B.
die Aktion <tt>Löschen</tt> ausgewählt hat, fährt <prgn>dselect</prgn> mit dem Löschen aller
ausgewählten Dateien fort, wenn der Benutzer als Letztes die Aktion
<tt>Auswählen</tt> gewählt hat.

<p>Beide, der Menüpunkt <tt>Zugriff</tt> und der Menüpunkt <tt>Auswählen</tt>
führen zu weiteren Menüpunkten. In beiden Fällen werden die Menüs als geteilter
Bildschirm dargestellt. Der obere Bildschirmabschnitt gibt eine scrollbare Liste
mit möglichen Auswahlmöglichkeiten, während der untere Bildschirmabschnitt eine kurze
Erklärung ("info") für jede Auswahl bereitstellt.

<p>Eine ausführliche Online-Hilfe ist verfügbar, drücken Sie bitte zu einem
beliebigen Zeitpunkt die '?'-Taste, um sie zu erreichen.

<p>Die Reihenfolge, in der die Aktionen im ersten <prgn/dselect/-Menü
aufgelistet sind, gibt die Reihenfolge wieder, in der der Benutzer normalerweise mit
<prgn/dselect/ Pakete auswählt, um sie zu installieren. Dennoch kann ein Benutzer
jede andere der Hauptmenüauswahlen so oft wie nötig auswählen (auch kein
Mal, abhängig davon, was er tun möchte).

<list>
  <item>Beginnen Sie mit der <strong/Zugriffsmethode/. Dies ist die Methode,
    mit der der Benutzer auf die Debian-Pakete zugreifen möchte. Einige
    Benutzer haben die Debian-Pakete auf CD-ROM verfügbar, wohingegen andere
    sie mit einem anonymen FTP-Zugang herunterladen. Die ausgewählte »Zugriffsmethode« wird gespeichert
    nachdem <prgn/dselect/ beendet worden ist, so dass, wenn nichts verändert ist, diese
    Option nicht noch einmal aufgerufen werden muss.

  <item>Anschließend <strong/Erneuere/n Sie die Liste der verfügbaren Pakete. Um dies zu tun,
    liest <prgn/dselect/ die Datei <file>Packages.gz</file>, welche im obersten Teil des Verzeichnis,
    in dem die Debian-Pakete installiert werden sollen, enthalten sein sollte.
    (Sollte dies nicht der Fall sein, bietet <prgn/dselect/ an, dies für Sie zu tun.)

  <item><strong/Wähle/n Sie bestimmte Pakete für die Installation auf Ihrem System aus.
    Nachdem dieses Menü gewählt wurde, bekommt der Benutzer zuerst einen Hilfe-Bildschirm
    präsentiert (es sei denn, die <tt>--expert</tt>-Kommandozeilen-Option wurde benutzt).
    Sobald der Benutzer den Hilfe-Bildschirm beendet, sieht er ein geteiltes Bildschirmmenü
    für die Auswahl der zu installierenden Pakete (oder der zu löschenden).

    <p>Im oberen Bildschirm ist ein relativ begrenztes Fenster, in dem die
    &all-pkgs; Debian-Pakete aufgelistet sind; der untere Teil des Bildschirms beinhaltet
    Beschreibungen der Pakete oder einer Gruppe von Paketen, die markiert sind.

    <p>Man kann nun auswählen, welche Pakete behandelt werden sollen, indem man das Paket
    oder den Namen einer Gruppe von Paketen markiert. Danach können Sie auswählen, ob die Pakete:
    <taglist>
      <tag>installiert werden sollen:
        <item>Dies tun Sie, indem Sie die »+«-Taste drücken.
      <tag>gelöscht werden sollen:
        <item>Pakete können auf zwei Arten deinstalliert werden:
        <list>
          <item>Löschen: Dies löscht die meisten der mit dem Paket verbundenen Dateien,
          erhält jedoch die Dateien, die als Konfigurationsdateien markiert sind
          (siehe <ref id="conffile">) und die Informationen über die Paketkonfiguration.
          Dies tun Sie, indem Sie die »-«-Taste drücken.
          <item>Säubern: Dies löscht <em/jede/ Datei, die ein Teil des Paketes
          ist (auch die Konfigurationsdateien). Dies tun Sie, indem Sie die »_«-Taste drücken.
        </list>
        Bitte denken Sie daran, dass es nicht möglich ist »alle Pakete« zu löschen. Wenn Sie dies
        versuchen, wird Ihr System stattdessen auf eine Basisinstallation reduziert.
      <tag>Ein Paket »zurückhalten«:
        <item>Dies tut Sie mittels der »=«-Taste. Dies teilt
        <prgn/dselect/ mit, die aktuelle Version eines Paketes nicht zu aktualisieren, auch
        wenn die momentan installierte Version nicht die neuste Version des Paketes ist,
        die zur Zeit in dem Debian-Repository verfügbar ist, das Sie verwenden (dies wurde mit der
        <strong/Zugriffsmethode/ und mit der Benutzung von
        <strong/Erneuern/ festgelegt).
        <p>Ebenso wie Sie ein Paket zurückhalten können, können Sie dies mittels der
        »:«-Taste rückgängig machen. Dies teilt <prgn/dselect/ mit, dass das/die
        Paket/e aktualisiert werden dürfen, wenn eine neuere Version verfügbar ist.
    	Dies ist die Standardeinstellung.
	</taglist>

    <p>Sie können die Reihenfolge der Darstellung der Pakete anpassen.
    Mittels der »o«-Taste können Sie zwischen den verschiedenen Sortierungsmöglichkeiten
    der Pakete hin- und herschalten.
    Die Standard-Sortierreihenfolge stellt die Pakete nach der Priorität dar. Innerhalb
    jeder Priorität werden die Pakete in der Reihenfolge der Verzeichnisse (Abschnitte)
    des Archivs dargestellt, in dem sie aufbewahrt werden. In dieser Reihenfolge werden die Pakete
    in Abschnitt A zuerst dargestellt, gefolgt von den Paketen in Abschnitt B, gefolgt von mehreren
    Paketen aus Abschnitt A mit einer niedrigeren Priorität.

    <p>Sie können außerdem die Bedeutungen der Beschriftungen auf der oberen Bildschirmhälfte
    erweitert anzeigen, indem Sie »v« (verbose) drücken.
    Diese Aktion zeigt den meisten Text, der vorher auf dem Bildschirm angezeigt wurde, auf der rechte Seite.
    Um diesen zu sehen, drücken Sie die rechte Pfeiltaste; scrollen Sie nach links, indem Sie die
    linke Pfeiltaste drücken.

    <p>Wenn Sie die Installation oder Entfernung eines Paketes ausgewählt haben, z.B. des Pakets
    <package/foo.deb/ und das Paket benötigt (oder empfiehlt) ein anderes Paket, z.B.
    das Paket <package/blurf.deb/, dann wird <prgn/dselect/ dies in einem Teil-Bildschirm
    des Hauptauswahl-Bildschirms darstellen. Dort können Sie zwischen den betroffenen Paketen
    auswählen, die vorgeschlagenen Aktionen akzeptieren (installieren oder nicht)
    oder sie zurückweisen. Für Letzteres drücken Sie Shift-D. Um das Letzte rückgängig
    zu machen, drücken Sie Shift-U. Sie können, indem Sie Shift-Q drücken, in jedem Fall
    Ihre Einstellungen speichern und zum Hauptbildschirm zurückkehren.

  <item>Wenn Sie in das Hauptmenü zurückgekehrt sind, können Sie die
    »Installieren«-Methode
    wählen, um die ausgewählten Pakete zu entpacken und zu konfigurieren.
    Alternativ können Sie mittels der »Löschen«-Methode Pakete löschen.
    Um <prgn/dselect/ zu beenden, wählen Sie »Beenden«. Alle Benutzerauswahlen
    werden durch <prgn/dselect/ gesichert.
</list>

<sect1 id="dpkg-extra">Andere Paketverwaltungswerkzeuge

<sect2 id="dpkg-deb">dpkg-deb

<p>Dieses Programm manipuliert Debian-Archivdateien (<tt>.deb</tt>).
Einige häufig verwendete Eigenschaften:
<list>
  <item>Zeige alle Optionen: <tt>dpkg-deb --help</tt>.
  <item>Zeige an, welche Dateien in einem Debian-Archiv enthalten sind,
    ohne das Paket zu entpacken: <tt>dpkg-deb --contents foo_VVV-RRR.deb</tt>.
  <item>Entpacke die Dateien, die in dem Debian-Archiv enthalten sind in das
    angegebene Verzeichnis: <tt>dpkg-deb --extract foo_VVV-RRR.deb tmp</tt>
    entpackt jede Datei in <tt>foo_VVV-RRR.deb</tt> in das Verzeichnis
    <tt>tmp/</tt>.  Dies ist eine bequeme Methode, um die Inhalte eines Paketes
    in einem lokalen Verzeichnis zu prüfen, ohne das Paket in das Root-Dateisystem
    zu installieren.
</list>

<p>Bitte merken Sie sich, dass jedes Paket, das lediglich mit <tt/dpkg-deb
--extract/ entpackt wird, falsch installiert ist. Stattdessen sollten Sie <tt/dpkg --install/
benutzen, um ein Paket zu installieren.

<p>Weitere Informationen erhalten Sie im Manual <manref name="dpkg-deb"
section="1">.

<sect2 id="dpkg-split">dpkg-split

<p>Dieses Programm spaltet große Pakete in kleinere Dateien auf (z.B. um Dateien auf
mehrere Disketten zu verteilen) und kann auch genutzt werden, um mehrere Teile einer Datei
wieder zu einer Datei zusammenzufügen. Es kann nur auf einem Debian-System verwendet werden (d.h.
auf einem System, das das Paket <package/dpkg/ beinhaltet), weil es das Programm
<tt>dpkg-deb</tt> verwendet, um die Debian-Paketdatei zu analysieren und in seine
Einzelteile zu zerlegen.
<p>Um zum Beispiel eine große .deb-Datei in <var>n</var> Dateien zu unterteilen,
<list>
  <item>Führen Sie das Kommando <tt>dpkg-split --split foo.deb</tt> aus.
    Dies wird <var>n</var> Dateien im aktuellen Verzeichnis erzeugen, wobei jede ungefähr 460 KByte
    lang ist.
  <item>Kopieren Sie die <var>n</var> Dateien auf Ihre Disketten.
  <item>Kopieren Sie den Inhalt der Disketten auf eine Festplatte Ihrer Wahl eines anderen Computers.
  <item>Fügen Sie die einzelnen Dateien wieder mittels <tt>dpkg-split --join "foo*"</tt> zusammen.
</list>

</sect1>

<sect id="updaterunning">Debian erhebt den Anspruch, dazu in der Lage zu sein, ein laufendes Programm
zu aktualisieren. Wie ist es dazu in der Lage?

<p>Der Kernel (Dateisystem) in &debian;-Systemen unterstützt das Ersetzen von Dateien auch
während sie benutzt werden.

<p>Außerdem stellen wir ein Programm namens <prgn/start-stop-daemon/ zur Verfügung, das benutzt wird,
um Daemonen während des Hochfahrens zu starten oder beim Wechsel des Runlevels zu stoppen
(z.B. von Mehrbenutzer- zu Einbenutzer-Modus oder zum Runterfahren). Das selbe Programm wird von Installationsskripten
benutzt, sobald ein neues Paket installiert wird, das einen Daemon beinhaltet, um laufende Daemonen zu stoppen und falls
nötig neu zu starten.

<sect id="whatpackages">Wie kann ich sehen, welche Pakete bereits auf einem
Debian-System installiert sind?

<p>Um den Status aller im Debian-System installierten Pakete zu sehen,
führen Sie das Kommando
<example>dpkg --list</example> aus.

Dies gibt eine einzeilige Zusammenfassung mit einem 2-buchstabigen Statussymbol (im Kopf erklärt), den Paketnamen,
die <em>installierte</em> Version des Paketes und eine kurze Beschreibung für jedes
einzelne Paket aus.

<p>Um den Status jedes Paketes zu sehen, dessen Name mit
»foo« anfängt, geben Sie folgendes Kommando ein:
  <example>dpkg --list 'foo*'</example>

<p>Um einen ausführlicheren Status für ein bestimmtes Paket zu erhalten, geben Sie folgendes Kommando ein:
  <example>dpkg --status Paketname</example>

<sect id="filesearch">Wie kann ich herausfinden, welches Paket eine bestimmte Datei angelegt hat?

<p>Um herauszufinden, welches Paket die Datei namens <file><var>foo</var></file> erstellt hat,
führen Sie eines der Kommandos aus:

<list>
  <item><tt>dpkg --search <file><var>foo</var></file></tt>
    <p>Dies sucht nach <file><var>foo</var></file> in den installierten Paketen.
    (Dies ist (momentan) gleichwertig mit der Suche nach allen Dateien
    mit der Endung <tt>.list</tt> im Verzeichnis
    <tt>/var/lib/dpkg/info/</tt> und des Manipulierens der Ausgabe, so dass
    alle Pakete, die dies beinhalten, aufgelistet werden.)

    <p>Eine schnellere Alternative dazu ist das <prgn>dlocate</prgn>-Werkzeug.

  <item><tt>zgrep foo Contents-ARCH.gz</tt>
    <p>Dies sucht nach Dateien, die die Zeichenkette <var>foo</var>
    in ihrem vollständigen Pfadnamen enthalten.
    Die Dateien <tt>Contents-<var>ARCH</var>.gz</tt> (wobei <var>ARCH</var>
    die gewünschte Architektur darstellt) befindet sich in den Hauptpaketverzeichnissen
    (main, non-free, contrib) auf dem Debian FTP-Server,
    d.h. unter <tt>/debian/dists/&releasename;</tt>). Eine <file>Contents</file>-Datei
    bezieht sich nur auf das Paket im Unterverzeichnisbaum, in dem es sich aufhält.
    Deshalb könnte es sein, dass der Benutzer mehr als eine <file>Contents</file>-Datei
    durchsuchen muss, um das Paket zu finden, das <var>foo</var> enthält.

    <p>Diese Methode hat gegenüber <tt>dpkg --search</tt> den Vorteil, dass
    Sie damit Dateien in Paketen finden können, die momentan nicht auf Ihrem System
    installiert sind.

  <item><tt>apt-file search <var>foo</var></tt>
    <p>Das selbe wie beim Beispiel davor, es sucht Dateien welche den Teiltext
    oder den regulären Ausdruck <tt>foo</tt> in ihrem vollen Verzeichnisnamen haben. Der
    Unterschied zum vorherigen Beispiel ist, dass es nicht notwendig ist, die
    <tt>Contents-ARCH.gz</tt>-Datei zu holen, da es dies automatisch, für
    alle Quellen die in der <file>/etc/apt/sources.list</file> definiert sind, tut,
    wenn Sie <tt>apt-file update</tt> (als root) ausführen.
</list>

<sect id="datapackages">Warum wird »foo-data« nicht entfernt, wenn ich
   »foo« deinstalliere?  Wie stelle ich sicher, dass alte unbenutzte
   Bibliothekspakete entfernt werden?


<p>Einige Pakete sind in Programme (»foo«) und Daten (»foo-data«)
geteilt. Dies trifft in Debian auf viele Spiele, Multimedia-Anwendungen und
Wörterbücher zu und wurde eingeführt, weil einige Benutzer auf die Rohdaten
zugreifen wollten, ohne das Programm zu installieren, oder
das Programm selbst ohne die Daten läuft, so dass diese optional sind.

<p>Ähnliche Situationen tauchen auf, wenn Sie mit Bibliotheken arbeiten:
normalerweise werden diese Pakete installiert, wenn Pakete Programme enthalten,
die von ihnen abhängen. Wenn das Programmpaket entfernt wird,
bleibt das Bibliothekspaket auf dem System.
Oder: Wenn das Programmpaket nicht länger z.B. von »libdb4.2« abhängt, aber nun von
»libdb4.3«, kann das »libdb4.2«-Paket installiert bleiben, wenn das Programmpaket aktualisiert
wird.

<p>In diesen Fällen hängt »foo-data« nicht von »foo« ab, so dass,
wenn Sie das »foo«-Paket entfernen, die meisten Paketverwaltungswerkzeuge
es nicht automatisch entfernen. Das selbe gilt für die
Bibliothekspakete. Dies ist nötig, um zirkuläre Abhängigkeiten
zu vermeiden. Wenn Sie <prgn>aptitude</prgn> (siehe <ref
id="aptitude">) als Ihr Paketverwaltungswerkzeug benutzen,
merkt es sich die automatisch installierten Pakete und entfernt sie,
wenn kein Paket auf Ihrem System verbleibt, das dieses benötigt.

