<!doctype debiandoc system><debiandoc>
 <book>
  <titlepag>
   <title>
     APT HOWTO
   </title>
   <author>
     <name>Gustavo Noronha Silva</name><email>kov@debian.org</email>
   </author>
   <author>
      <name>Deutsche Übersetzung: David Spreen</name> <email>netzwurm@debian.org</email>
   </author>

   <version>
     2.0.2 - Oktober 2006
   </version>
   <abstract>
     Dieses Dokument soll dem Benutzer ein gutes Verständnis für die 
     Arbeitsweise des Debian-Paketmanagement-Werkzeugs APT liefern. Ziel ist 
     es, das Leben für neue Debian-Benutzer zu erleichtern und denen zu 
     helfen, die ihr Verständnis für die Administration dieses Systems 
     vertiefen wollen. Es wurde für das Debian-Projekt geschaffen, um den 
     verfügbaren Support für Benutzer dieser Distribution zu erweitern.
   </abstract>
   <copyright>
    <copyrightsummary>
      Copyright &copy; 2001, 2002, 2003, 2004, 2005 Gustavo Noronha Silva
    </copyrightsummary>
<copyrightsummary>
Copyright &copy; German Translation 2002 David Spreen
</copyrightsummary>
    <p>
      Diese Dokumentation ist Freie Software; sie darf weiterverteilt 
      und/oder verändert werden unter den Bedingungen der GNU General Public 
      License, wie sie von der Free Software Foundation veröffentlicht 
      wurde; entweder Version 2 oder (nach Ihrer Wahl) jede spätere Version.
    </p>
    <p>
      Diese wird in der Hoffnung verteilt, dass sie nützlich ist, aber ohne 
      jede Garantie; selbst ohne die implizierte Garantie der Eignung für 
      den Verkauf oder Tauglichkeit für einen besonderen Zweck. Siehe die 
      GNU General Public License für weitere Details.
    </p>
    <p>
      Eine Kopie der GNU General Public License ist in der Debian 
      GNU/Linux-Distribution verfügbar unter /usr/share/common-licenses/GPL 
      oder im World-Wide-Web unter der GNU General Public License. Sie 
      können sie auch beziehen, indem Sie an die FSF schreiben, unter Free 
      Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
      02110-1301, USA.
    </p>
   </copyright>
  </titlepag>
  <toc detail="sect">
<chapt id=trans>Zur Deutschen Übersetzung

<sect id=vorwort>Vorwort
<p>
Der Text dieser Übersetzung hat das Ziel, sich möglichst eng an der 
englischen Übersetzung zu orientieren. Leider lassen sich einige Fachbegriffe
schlecht übersetzen. Diese Begriffe habe ich versucht, entweder sinnvoll
einzudeutschen oder als englisches Wort zu übernehmen. Alle diese Begriffe 
werden im untenstehenden Glossar kurz erläutert.
</sect>

<sect id=glossar>Glossar
<p>
Die Begriffe sind hier in der Reihenfolge aufgelistet, in der sie 
im Text auftauchen.
<list>
<item><em>Kompilieren</em> (eingedeutscht): Das Übersetzen des 
Programmquelltextes in ein für den Computer ausführbares Programm.

<item><em>Paket</em> (eingedeutscht): Hier Sammlung von Dateien,
die meist ein vorkompiliertes und konfiguriertes Programm enthält,
welches sich mit einem Paketverwaltungsprogramm installieren
lässt.

<item><em>Portieren</em> (eingedeutscht): Das Verändern eines Programms,
um es auf einem anderen System oder einer anderen Architektur benutzen
zu können.

<item><em>Update</em>: Aktualisieren von Informationen oder Software,
um sie auf dem neusten Stand zu halten, wobei Paket-Updates bei APT
»Upgrade« heißen. Verwirrenderweise heißen Paketupgrades aufgrund von
Sicherheitslücken bei Debian allerdings »Sicherheits-Updates«.

<item><em>Spiegel</em>: Eine exakte Kopie eines Web- oder FTP-Servers,
die dazu dient, den Originalserver zu entlasten. Die Liste der
Debian-Mirrors gibt es auf http://www.debian.org/distrib/ftplist.

<item><em>Upgrade</em>: Sehen Sie Update. Hierbei handelt es sich um
das Aktualisieren von Paketen.

<item><em>Ncurses</em>: Programmbibliothek, um auf der Konsole
Fenster, Menüs usw. darzustellen.

<item><em>MTA</em>: Mail Transport Agent - Programm zum Transportieren von
E-Mails, oft auch Mailserver.

<item><em>Manpage</em>: Anleitung für ein Programm, welche auf der 
Kommandozeile per <tt>man Programmname</tt> verfügbar ist.

<item><em>Lock-Datei</em>: Datei, deren Existenz anzeigt, daß eine Ressource (z.B. die
APT-Datenbank) zur Zeit genutzt wird.
</list>
</sect>
</chapt> 
 
 <chapt>
  <heading>
    Einführung
  </heading>
  <p>
    Am Anfang war das .tar.gz. Benutzer mussten jedes Programm, welches sie 
    auf ihren GNU/Linux-Systemen benutzen wollten, selbst kompilieren. Zu 
    Beginn der Entwicklung des Debian-Projekts erachtete man es für 
    notwendig, dass das System eine Methode zum Verwalten der Pakete, die 
    auf dem System installiert sind, enthält. Man gab dieser Methode den 
    Namen <prgn>dpkg</prgn>. Dadurch war das erste »Paket« auf GNU/Linux 
    geboren, bevor Red Hat sich entschied, ihr eigenes RPM-System zu 
    erschaffen.
  </p>
  <p>
    Schnell standen die Macher von GNU/Linux vor einem neuen Dilemma. Sie 
    brauchten ein schnelles, praktisches und effizientes Mittel, um Pakete 
    zu installieren, das Abhängigkeiten automatisch behandeln und ihre 
    Konfigurationsdateien während des Aktualisierens berücksichtigen 
    würde. Und wieder war es das Debian-Projekt, das den Weg machte und APT, 
    das »Advanced Packaging Tool« (fortgeschrittenes Paketierungswerkzeug) 
    das Licht der Welt erblicken ließ, welches seitdem von Connectiva auf 
    RPM portiert und von einigen anderen Distributionen übernommen wurde.
  </p>
  <p>
    Diese Anleitung versucht nicht, apt-rpm (den Connectiva-Port von APT) zu 
    behandeln, aber »Patches« für dieses Dokument, welche es tun, sind 
    willkommen.
  </p>
  <p>
    Diese Dokumentation basiert auf der nächsten Debian-Version: 
    <tt>Etch</tt> (Stand: 31. August 2005).
  </p>
  <sect id="terminology">
   <heading>
     Grundlegende Begriffe und Konzepte
   </heading>
   <p>
     Hier finden Sie einige grundlegende Begriffe und Konzepte, die in 
     dieser Anleitung benutzt werden:
   </p>
   <p>
     <strong>APT-Quelle (englisch: APT source)</strong>: eine APT-Quelle ist 
     ein Ort (oft im Internet, möglicherweise eine CDROM oder ein anderer 
     Ort), der als Repository von Debian-Paketen dient, siehe <ref 
     id="sources.list">.
   </p>
   <p>
     <strong>APT-Quellenzeile (englisch: APT source line)</strong>: Eine 
     APT-Quellenzeile ist eine Zeile, die Sie einer Konfigurationsdatei 
     hinzufügen, um APT die »APT-Quellen«, die Sie benutzen möchten, 
     mitzuteilen, siehe <ref id="sources.list">.
   </p>
   <p>
     <strong>Binärpaket</strong>: ein Binärpaket ist eine <tt>.deb</tt> 
     Datei, die vorbereitet wurde, um vom Paketmanager (dpkg) installiert zu 
     werden. Sie kann binäre Dateien, aber auch nur architektur-unabhändige 
     Daten enthalten -- es heißt in beiden Fällen Binärpaket.
   </p>
   <p>
     <strong>debian-nativ</strong>: ein spezifisch für Debian erstelltes 
     Paket, diese Art Pakete hat für gewöhnlich die Debian-Kontrolldateien 
     innerhalb der Originalquellen, und jede neue Version des Pakets ist 
     auch eine neue Version von Originalprogramm oder -daten.
   </p>
   <p>
     <strong>debianisieren</strong>: ein Verb, das für gewöhnlich heißt: 
     »Vorbereiten für die Benutzung mit Debian«, oder einfacher gesagt, 
     paketieren im <tt>.deb</tt>-Format.
   </p>
   <p>
     <strong>Quellpaket (englisch: source package)</strong>: »Quellpaket« 
     ist in Wirklichkeit eine abstrakte Definition einer Menge von zwei oder 
     drei Dateien, die Teil des Debian-Quellformates sind: eine 
     <tt>.dsc</tt>-Datei, die Informationen über das Paket enthält, auch 
     Quellkontrolldatei (englisch: source control file) genannt; eine 
     <tt>.orig.tar.gz</tt>-Datei, welche die originalen Upstream-Quellen für 
     dieses Paket enthält -- Sie mögen auch Pakete finden, bei denen diese 
     Datei einfach <tt>.tar.gz</tt> heißt, ohne ».orig«, was bedeutet, dass 
     dies ein debian-natives Paket ist; und eine <tt>.diff.gz</tt>-Datei, 
     die die Änderungen an den Originalquellen beim »Debianisieren« des 
     Pakets enthält -- bei debian-nativen Paketen finden Sie diese Art Datei 
     nicht.
   </p>
   <p>
     <strong>Upstream</strong>: dieses Wort meint für gewöhnlich etwas, das 
     vom Original-Entwickler der Software oder Daten kommt, oder den 
     Entwickler selbst.
   </p>
   <p>
     <strong>Virtuelle Pakete</strong>: Dies sind Pakete, die nicht wirklich 
     existieren, sondern generische Dienste sind, die von einigen 
     spezifischen Pakete »bereitgestellt« werden -- das bekannteste Beispiel 
     ist das Paket <package>mail-transport-agent</package>, auf das Pakete, 
     die einen MTA<footnote>MTA bedeutet Mail Transfer Agent -- es ist für 
     gewöhnlich ein Server zum Verschicken und Empfangen von 
     Email</footnote> benötigen, eine Abhängigkeit setzen können, während 
     die Wahl des Benutzers, welchen MTA er benutzen will, frei bleibt.
   </p>
  </sect>
 </chapt>
 <chapt id="archive-layout">
  <heading>
    Einführung in das Debian-Archiv
  </heading>
  <sect id="archive:suites">
   <heading>
     Einführung in Debian-Suiten
   </heading>
   <p>
     Die Debian-Entwicklung geschieht in einem Model, wo wir drei 
     Haupt-»Zweige« haben, die wir »Suiten« nennen: Die stabile Suite 
     (englisch: stable) ist die zuletzt zum Release gebrachte Version von 
     Debian; die testing Suite enthält theoretisch eine Version, die stets 
     fertig zum Release ist, Pakete kommen aus dem instabilen Zweig hierher, 
     nachdem sie dort 10 Tage verbracht haben, keine kritischen Probleme 
     berichtet wurden und sie auf allen Release-Architekturen gebaut wurden; 
     in der instabilen Suite (englisch: unstable) passiert die Entwicklung: 
     alle neuen Pakete kommen hierher, um darauf getestet zu werden, ob sie 
     bereit zum Release sind, und gelangen dann nach testing.
   </p>
   <p>
     Die stabile Suite erhält niemals neue Versionen von Paketen, nur neue 
     Revisionen um Sicherheits- oder kritische Probleme zu beheben. Sie soll 
     stabil bleiben, in dem Sinne dass der Administrator keine 
     Veränderungerungen in Konfiguration oder Verhalten der Software, die er 
     administriert, erwarten muss.
   </p>
   <p>
     Es gibt eine weitere Suite, die von vielen Werkzeugen anders behandelt 
     wird als die üblichen: die Suite experimental. Zu aller erst ist es 
     keine in sich geschlossene Suite, d.h. Sie können nur aus ihr kein 
     System installieren, für gewöhnlich müssen Sie sie zusammen mit einer 
     der oben genannten benutzen: meistens wird die instabile gewählt.
   </p>
   <p>
     Sie wird anders behandelt, weil sie in der Tat von höchst 
     experimenteller Natur ist. Pakete, von denen ihre Betreuer denken, dass 
     sie kaputt oder noch nicht bereit sind, in die instabile Suite zu 
     gelangen, kommen in die experimentelle Suite, um ausgiebiger von 
     furchlosen Betreuern getestet zu werden. Bitte benutzen Sie 
     »experimental« nicht, wenn Sie nicht wirklich bei der Entwicklung 
     helfen wollen, selbst achtgebend auf die Mühen, die es Ihnen bringen 
     könnte.
   </p>
  </sect>
  <sect id="archive:suites:sections">
   <heading>
     Debians Sektionen
   </heading>
   <p>
     Jede Suite eines Debian-Repositories besteht für gewöhnlich aus einer 
     oder mehreren Sektionen; Namen und Bestimmungen können von Distributor 
     zu Distributor variieren. Debian selbst hat drei Sektionen: main, 
     contrib und non-free.
   </p>
   <p>
     Die Sektion <tt>main</tt> ist das, was offiziell Debian wirklich 
     ist. Alle Software, die konform ist zu den <url 
     id="http://www.debian.org/social_contract#guidelines" name="»Debian 
     Free Software Guidelines«"> (Debians Richtlinien für Freie Software, 
     kurz DFSG) und nur von DSFG-konformer Software abhängt, kommt in diese 
     Sektion des Archivs, in Einklang mit dem <url 
     id="http://www.debian.org/social_contract" name="»Social Contract«"> 
     (Debians Sozialvertrag). Durch diese Dokumente und das Versprechen, es 
     nur Software, die mit ihnen im Einklang ist, zu erlauben, in die 
     Sektion main zu gelangen, bietet Debian einen vernünftigen klaren 
     Basisstandard Freiheit, auf den sich Benutzer verlassen können, wenn 
     sie Software aus main installieren.
   </p>
   <p>
     Die Sektion <tt>contrib</tt> wird von DFSG-konformer Software gebildet, 
     die zum Arbeiten von nicht-DFSG-konformen Software oder Daten 
     abhängt. Die Sektion <tt>non-free</tt> wird von nicht-DFSG-konformer 
     Software gebildet, die aber verteilt werden darf. Sie sollten die 
     Lizenz jeder Software aus non-free, die Sie installieren möchten, 
     prüfen, um zu beurteilen, ob sie Ihnen gut genug ist, ihr zuzustimmen.
   </p>
  </sect>
  <sect id="trustchain">
   <heading>
     APTs Vertrauenskette
   </heading>
   <p>
     APT ist mit einer kryptographischen Vertrauenskette (englisch: chain of 
     trust) ausgestattet, die sich von den Debian-Entwicklern bis zu den 
     Endbenutzern erstreckt.
   </p>
   <p>
     Die Kette beginnt bei den Paket-Betreuern, die ihre Pakete signieren 
     und herauf laden. Jede Signatur wird gegen den Schlüssel des Paketieres 
     geprüft, der herauf geladen wurde, als er ein offizieller 
     Debian-Entwickler wurde. Dieser Schlüssel selbst wurde persönlich von 
     anderen Debian-Entwicklern verifiziert.
   </p>
   <p>
     Sobald verifiziert wurde, dass das herauf geladene Paket vom Betreuer 
     signiert wurde, wird eine MD5-Prüfsumme des Pakets berechnet und in die 
     Datei »Packages« geschrieben. Dann werden die MD5-Prüfsummen aller 
     Packages-Dateien berechnet und in die Datei »Release« geschrieben. Dann 
     wird diese mit dem Archiv-Schlüssel signiert, der einmal pro Jahr 
     erzeugt und vom FTP-Server verteilt wird. Dieser Schlüssel ist auch im 
     Debian-Schlüsselbund.
   </p>
   <p>
     Daher kann der Endbenutzer, nachdem er den Archiv-Schlüssel seinem 
     Schlüsselbund hinzugefügt hat, überprüfen, dass die Datei 
     <tt>Release</tt> mit dem richtigen Schlüssel signiert wurde, die 
     MD5-Prüfsummen aller <tt>Packages</tt>-Dateien und die MD5-Prüfsummen 
     aller Debian-Pakete überprüfen. APT automatisiert diesen Prozess:
   </p>
   <p>
     Während des Updates (siehe <ref id="update">) prüft APT die Signatur 
     der Release-Dateien unter Benutzung seines Schlüsselbunds (für 
     Informationen hierüber siehe <ref id="apt-key">) und die MD5-Prüfsummen 
     der Packages-Dateien (die in den Release-Dateien aufgezeichet sind).
   </p>
   <p>
     Beim Aktualisieren oder Installieren eines Paketes (siehe <ref 
     id="upgrade"> bzw. <ref id="install">) prüft APT die MD5-Prüfsummen der 
     Pakete (die in den Packages-Dateien gespeichert sind).
   </p>
   <p>
     Wenn irgendeiner dieser Schritte scheitert, wird der Benutzer gewarnt 
     und der Prozess unterbricht.
   </p>
  </sect>
 </chapt>
 <chapt id="basico">
  <heading>
    Basis-Konfiguration
  </heading>
  <sect id="sources.list">
   <heading>
     Die Datei /etc/apt/sources.list
   </heading>
   <p>
     Als Teil seiner Arbeit benutzt APT eine Datei, die die »APT-Quellen«, 
     von denen man Pakete beziehen kann, auflistet. Diese Datei heißt 
     <tt>/etc/apt/sources.list</tt>.
   </p>
   <p>
     Die Einträge in dieser Datei sind normalerweise von folgendem Format:
   </p>
   <p>
    <example>
deb http://host/debian distribution sektion1 sektion2 sektion3
deb-src http://host/debian distribution sektion1 sektion2 sektion3
</example>
   </p>
   <p>
     Natürlich sind obige Einträge erfunden und sollten nicht benutzt 
     werden. Das erste Wort jeder Zeile, <tt>deb</tt> oder <tt>deb-src</tt> 
     zeigt den Typ des Archivs: entweder es enthält Binär-Pakete 
     (<tt>deb</tt>), das sind die vorkompilierten Pakete, die wir 
     normalerweise benutzen, oder Quellpakete (<tt>deb-src</tt>), welche die 
     originalen Programmquellen und die Debian-Kontrolldatei (<tt>.dsc</tt>) 
     und das <tt>diff.gz</tt>, welches die Änderungen enthält, die für das 
     »Debianisieren« des Programms von Nöten sind.
   </p>
   <p>
     Wenn wir in dem obigen Beispiel das Wort <tt>distribution</tt> 
     betrachten, definiert es, welche Debian Suite wir zum Ziel haben. Dies 
     können generische Namen, wie »stable« und »testing«, oder spezifische, 
     wie »sarge« und »etch«, sein. Sagen wir, das aktuelle testing nennt 
     sich »etch«, und Sie wollen »etch« weiterverfolgen, selbst wenn es 
     stabil wird; in diesem Falle sollten Sie »etch« für 
     <tt>distribution</tt> verwenden. Wenn Sie dagegen stets testing 
     verfolgen wollen, sollten Sie stattdessen »testing« verwenden.
   </p>
   <p>
     Wenn Sie also immer die neuste stabile Distribution haben und, sobald 
     ein neues Release herausgegeben wird, aktualisieren möchten, sollten 
     Sie für <tt>distribution</tt> »stable« benutzen. Dies muss nicht 
     unbedingt eine gute Idee sein, wenn Sie Aktualisierungen für stabile 
     Veröffentlichungen planen möchten, sie beinhalten manchmal mehr als 
     einfach ein paar Fragen zu beantworten, neben etwas Testen und 
     Backuppen vor dem Fortfahren, deshalb empfehle ich Ihnen, stets die 
     Kodenamen zu benutzen.
   </p>
   <p>
     Normalerweise finden wir folgendes in der Standard-Debian-sources.list:
   </p>
   <p>
    <example>
deb http://http.us.debian.org/debian stable main
deb http://security.debian.org stable/updates main

#deb-src http://http.us.debian.org/debian stable
#deb-src http://security.debian.org stable/updates main
</example>
   </p>
   <p>
     Dieses sind die Zeilen, die eine Debian-Basis-Installation 
     benötigt. Die erste <tt>deb</tt> Zeile zeigt auf das offizielle Archiv 
     und die zweite auf das Archiv der Debian Sicherheits-Updates.
   </p>
   <p>
     Die letzten beiden Zeilen sind auskommentiert (mit einem »#« am 
     Anfang), deshalb ignoriert sie APT. Sie sind <tt>deb-src</tt>-Zeilen, 
     das bedeutet, sie führen uns zu Debian-Quellpaketen. Wenn Sie öfters 
     Programm-Quellen herunterladen, um sie zu testen oder neu zu 
     kompilieren, sollten Sie die Kommentarzeichen entfernen.
   </p>
   <p>
     Die Datei <tt>/etc/apt/sources.list</tt> kann verschiedene Typen von 
     Zeilen enthalten. APT kann mit Archiven der Typen <tt>http</tt>, 
     <tt>ftp</tt>, <tt>file</tt> (lokale Dateien, z.B. ein Verzeichnis, mit 
     einem gemounteten ISO9660-Dateisystem) und <tt>ssh</tt>, soweit ich 
     weiß.
   </p>
   <p>
     Merken Sie: jedesmal wenn Sie eine Quelle, von der Pakete bezogen 
     werden sollen, für APT hinzufügen möchten, ist dieses die Datei die Sie 
     bearbeiten.
   </p>
   <p>
     Vergessen Sie nicht, die Liste von Paketen zu aktualisieren (siehe <ref 
     id="update">), nachdem die Datei <tt>/etc/apt-/sources.list</tt> 
     editiert wurde. Dies ist notwendig, damit APT weiß, welche Pakete von 
     den spezifizierten Quellen verfügbar sind.
   </p>
  </sect>
  <sect id="apt-key">
   <heading>
     Pakete für echt befinden
   </heading>
   <p>
     Seit APT-Version 0.6 werden Pakete auf ihre Echtheit geprüft, um 
     sicherzustellen, dass sie von der Quelle ausgehen, von der sie vorgeben 
     zu kommen. Dies ist ein zusätzliches Sicherheitsfeature. Wenn das 
     System die bei der Installation eines Paketes die Echtheit nicht 
     feststellen kann, werden Sie gefragt, ob Sie die Installation abrechen 
     wollen.
   </p>
   <p>
     Da diese Echtheitsprüfung auf kryptographischen Methoden basiert, 
     verwaltet APT seinen eigenen Schlüsselbund. Jeder der Einträge in der 
     Datei <tt>sources.list</tt> hat einen korrespondierenden 
     Schlüssel. Wenn Sie jedoch inoffizielle APT-Quellen benutzen, ist es 
     möglich, dass eine Quelle, die Sie benutzen, nicht auf Echtheit 
     überprüft wird. Wenn dies der Fall ist, sollten Sie den Betreuer dieser 
     Quelle ermuntern, Echtheitsprüfung für sein Angebot zu implementieren.
   </p>
   <p>
     Um aus diesem Sicherheitsfeature Gewinn zu ziehen, müssen Sie für jede 
     auf auf Echtheit zu prüfende Quelle einen Schlüssel zu APTs 
     Schlüsselbund hinzufügen. Dies kann mit GPG erledigt werden, aber APT 
     bietet ein Werkzeug, <prgn>apt-key</prgn>, das eine vereinfachte 
     Schnittstelle für GPG ist.
   </p>
   <p>
     <prgn>apt-key</prgn> ist einfach zu benutzen. Der schwierige Teil des 
     Prozesses ist es, einen Schlüssel für jede der Quellen zu besorgen, und 
     sicherzustellen, dass Sie diesem Schlüssel vertrauen können.
   </p>
   <p>
     Debians Archivschlüssel wird in 
     <file>/usr/share/apt/debian-archive.gpg</file> installiert, so dass Sie 
     einfach diese Datei benutzen können, um den offiziellen Archivschlüssel 
     zu Ihrem APT-Schlüsselbund hinzuzufügen, indem Sie dies eingeben:
   </p>
   <p>
    <example>
# apt-key add /usr/share/apt/debian-archive.gpg
</example>
   </p>
   <p>
     Für unoffizielle Quellen außerhalb Debian müssen Sie herausfinden, wo 
     sie ihren öffentlichen Schlüssel bereitstellen, so dass Sie ihn in 
     Ihren APT-Schlüsselbund importieren können.
   </p>
   <p>
     Wenn Sie es aus einem bestimmten Grund vorziehen, die kryptographische 
     Überprüfung der Release-Dateien zu deaktivieren, können Sie folgendes 
     zu APTs Konfiguration hinzufügen (siehe <ref id="apt.conf">):
   </p>
   <p>
    <example>
APT::Get::AllowUnauthenticated "true";
</example>
   </p>
  </sect>
  <sect id="cdrom">
   <heading>
     Hinzufügen einer CD-ROM in die Datei sources.list
   </heading>
   <p>
     Wenn Sie lieber eine CD-ROM zum Installieren von Paketen oder 
     automatischen Updaten des Systems durch APT verwenden möchten, können 
     Sie sie in Ihre <tt>sources.list</tt> eintragen. Um dieses zu tun, 
     können Sie das Programm <prgn>apt-cdrom</prgn> benutzen, wie im 
     folgenden beschrieben:
   </p>
   <p>
    <example>
# apt-cdrom add
</example>
   </p>
   <p>
     mit der Debian-CD-ROM im Laufwerk. Die CD-ROM wird gemountet, und wenn 
     sie eine gültige Debian-CD ist, wird auf ihr nach Paketinformationen 
     gesucht. Wenn Ihre CD-ROM-Konfiguration ein wenig ungewöhnlich ist, 
     können Sie auch die folgenden Optionen benutzen:
   </p>
   <p>
    <example>
-h             - Programmhilfe
-d Verzeichnis - Einhängepunkt der CD-ROM
-r             - Eine erkannte CD-ROM umbenennen
-m             - kein Einhängen
-f             - Schneller Modus, überprüft keine Paket Dateien
-a             - Gründlicher Scan-Modus
</example>
   </p>
   <p>
     Zum Beispiel:
   </p>
   <p>
    <example>
# apt-cdrom -d /home/kov/mycdrom add
</example>
   </p>
   <p>
     Sie können eine CD-ROM auch identifizieren, ohne sie zur sources.list 
     hinzuzufügen:
   </p>
   <p>
    <example>
# apt-cdrom ident
</example>
   </p>
   <p>
     Beachten Sie, dass dieses Programm nur funktioniert, wenn Ihr CD-ROM 
     Laufwerk in der <tt>/etc/fstab</tt> ihres Systems korrekt konfiguriert 
     ist.
   </p>
  </sect>
  <sect id="apt.conf">
   <heading>
     Die APT Konfigurationsdatei
   </heading>
   <p>
     APT benutzt <file>/etc/apt/apt.conf</file> als seine 
     Hauptkonfigurationsdatei. Obwohl es keine so benannte Datei in einer 
     Standardinstallation gibt, wie Sie herausfinden werden, können Sie 
     sicher eine erzeugen und editieren. Es gibt einen modularen Weg, die 
     Konfiguration zu bewerkstelligen, wenn Sie dies vorziehen: Sie können 
     einzelne Dateien mit beliebigen Namen in 
     <file>/etc/apt/apt.conf.d/</file> platzieren.
   </p>
   <p>
     Hüten Sie sich vor zwei Tatsachen, wenn Sie den modularen Weg wählen: 
     einige Debian-Pakete legen ihre eigene Konfiguration in dieses 
     Verzeichnis, so dass Sie versuchen müssen, Namenskollisionen zu 
     vermeiden, zum Beispiel indem Sie ein Suffix <tt>-local</tt> an den 
     Namen anhängen. Desweiteren wird die Konfiguration geordnet nach 
     Dateinamen gelesen, so dass Sie eine Nummer ganz am Anfang des 
     Dateinamens hinzufügen können, um sie in der Folge zu 
     positionieren. Zum Beispiel können Sie sie <tt>00000myconf-local</tt> 
     nennen, wenn Sie sicherstellen wollen, dass sie die erste 
     berücksichtigte Konfigurationsdatei ist.
   </p>
   <p>
     Um die Syntax und Optionen kennen zu lernen, die von diesen 
     Konfigurationsdateien akzeptiert werden, siehe die Manpage 
     <tt>apt.conf(5)</tt>.
   </p>
  </sect>
  <sect id="apt:policy">
   <heading>
     APT-Prioritäten für Pakete anpassen
   </heading>
   <p>
     APT benutzt einen Priorisierungsalgorithmus, um zu entscheiden, von 
     welchem Repository es ein gegebenes Paket holen soll. Hier ist ein 
     einfaches Beispiel:
   </p>
   <p>
    <example>
$ apt-cache policy apt-howto
apt-howto:
  Installiert: 1.8.10.3-1
  Mögliche Pakete: 1.8.11-1
  Versions-Tabelle:
     1.8.11-1 0
        500 http://ftp.nl.debian.org sid/main Packages
 *** 1.8.10.3-1 0
        500 http://ftp.nl.debian.org sarge/main Packages
        100 /var/lib/dpkg/status
</example>
   </p>
   <p>
     Ich habe hier zwei Quellen: eine für »sid« und eine für »sarge«, und 
     das ist alles.
   </p>
   <p>
     Die installierte Version wird mit <tt>***</tt> markiert. Wir können 
     sehen, dass sie installiert ist, weil auch die Datei 
     <file>/var/lib/dpkg/status</file> erwähnt wird, die die Informationen 
     über den aktuelle Zustand des Systems enthält. Wir können sehen, dass 
     das Paket aus »sarge« kommt. Die Version aus »sid« ist ebenfalls als 
     verfügbar gelistet.
   </p>
   <p>
     APT gibt installierten Paketen Priorität 100, wie wir sehen können, und 
     500 für alle anderen Quellen, mit einer einzigen Ausnahme: die Suite 
     <tt>experimental</tt>, die, wie wir bereits sagten, von vielen 
     Werkzeugen auf spezielle Art behandelt wird. APTs Algorithmus zieht es 
     vor, Pakete von Quellen mit höherer Priorität zu installieren. Wenn die 
     Prioritäten die selben sind, zieht es die höchste Version vor. Sie 
     können dies beim Betrachten des Feldes <tt>Mögliche Version</tt> sehen, 
     welches die neuere Version, aus »unstable«, als mögliche Version zur 
     Installation listet: APT will sie aktualisieren.
   </p>
   <p>
     Wenn Sie nur ausgewählte Pakete aus der Quelle »sid« installieren 
     möchten, und nicht möchten, dass APT automatisch Pakete von dieser 
     Quelle als mögliche Versionen für Aktualisierungen betrachtet, dann 
     müssen Sie an seinen Prioritäten drehen. Sie tun dies, indem Sie das 
     Feld <tt>Archive</tt> der <tt>Release</tt>-Datei der Quelle, der Sie 
     Priorität geben möchten, benutzen. Sie können diese Information 
     herausfinden, indem Sie in die Release-Datei schauen, die der Prozess 
     des Updatens heruntergeladen hat:
   </p>
   <p>
    <example>
# grep ^Archive /var/lib/apt/lists/ftp.nl.debian.org_debian_dists_sarge_main_binary-i386_Release
Archive: stable
</example>
   </p>
   <p>
     Beachten Sie, dass sich der Dateiname in Abhängigkeit von Ihrer 
     Quellenzeile ändert. Um nun APT dazu zu bringen, die Pakete auf der 
     stabilen Suite zu halten, fügen Sie eine Datei folgenden Inhaltes zu 
     <file>/etc/apt/apt.conf.d/</file> hinzu:
   </p>
   <p>
    <example>
APT::Default-Release "stable";
</example>
   </p>
   <p>
     Danach hat sich APTs Strategie (englisch: policy) geändert:
   </p>
   <p>
    <example>
$ apt-cache policy apt-howto
apt-howto:
  Installiert: 1.8.10.3-1
  Mögliche Version: 1.8.10.3-1
  Versions-Tabelle:
     1.8.11-1 0
        500 http://ftp.nl.debian.org sid/main Packages
 *** 1.8.10.3-1 0
        990 http://ftp.nl.debian.org sarge/main Packages
        100 /var/lib/dpkg/status
</example>
   </p>
   <p>
     APT gibt seiner Standard-Quelle Priorität 990 für jedes Paket, die 
     anderen Quellen bleiben genau wie vorher. Pakete aus anderen Quellen, 
     die installiert sind, haben ihre Priorität von 100 auf 500 
     erhöht. Warum wird sie APT nicht deaktualisieren? Weil APT eine 
     Deaktualisierung nur in Betracht zieht, wenn etwas eine Priorität über 
     1000 erhält. Das heißt aber, dass APT nicht automatisch die Versionen 
     von den Nicht-Standard-Quellen aktualisiert, solange das Werkzeug, das 
     Sie benutzen, Ihnen dabei helfen will, was der Fall ist bei 
     <prgn>aptitude</prgn>.
   </p>
   <p>
     Prioritäten für Gruppen von Paketen, basierend auf vielen anderen 
     Kriterien, definieren ist ebenfalls möglich, durch Nutzen der 
     Konfigurationsdatei <file>/etc/apt/preferences</file>. Sie können APT 
     sogar überzeugen, Ihr ganzes System zu deaktualisieren, obwohl das 
     nicht unterstützt wird, und nicht ausprobiert werden sollte, wenn Sie 
     ein schwaches Herz haben. Sie können hierüber mehr Informationen 
     bekommen, indem Sie die Manpage <tt>apt_preferences(5)</tt> lesen.
   </p>
  </sect>
  <sect id="proxy">
   <heading>
     APT durch einen Proxy hindurch benutzen
   </heading>
   <p>
     Wenn Sie APT in einem Netzwerk benutzen, in dem alle HTTP- und 
     FTP-Verbindungen durch einen Proxy laufen, müssen Sie APT so aufsetzen, 
     dass es diesen Proxy benutzt. Sie können dies tun, indem Sie die 
     Konfigurationdatei <file>/etc/apt/apt.conf</file> editieren oder eine 
     Konfigurationsdatei in dem Verzeichnis 
     <file>/etc/apt/apt.conf.d/</file> platzieren, was es einfacher macht, 
     den Konfigurationskram zu organisieren (siehe <ref id="apt.conf">).
   </p>
   <p>
     Wenn diese Datei nicht existiert, dann erzeugen Sie sie und fügen 
     Zeilen wie die folgenden hinzu:
   </p>
   <p>
    <example>
Acquire::http::proxy "http://<var>Proxy</var>:<var>Port</var>";
Acquire::ftp::proxy "http://<var>Proxy</var>:<var>Port</var>";
</example>
   </p>
   <p>
     Ersetzen Sie <var>Proxy</var> und <var>Port</var> durch das, was Ihnen 
     Ihr Netzwerk-Administrator gegeben hat. Sie können auch einen Benutzer 
     und ein Passwort angeben, wenn es der Proxy erfordert, so wie hier:
   </p>
   <p>
    <example>
Acquire::http::proxy "http://<var>Benutzer</var>:<var>Passwort</var>@<var>Proxy</var>:<var>Port</var>";
</example>
   </p>
   <p>
     Es gibt viele andere nützliche Optionen, die Sie für APT in der 
     Konfigurationsdatei <file>/etc/apt/apt.conf</file> setzen können, siehe 
     <ref id="apt.conf">.
   </p>
  </sect>
 </chapt>
 <chapt id="apt-get">
  <heading>
    Paketverwaltung
  </heading>
  <sect id="aptitude">
   <heading>
     Debians Paketmanager benutzen: »aptitude«
   </heading>
   <p>
     Debian hat lange mit einem Paketmanager gelebt, der bekannt dafür war, 
     schwierig zu verstehen und zu benutzen zu sein, genannt 
     <prgn>dselect</prgn>. Das Debian-System bewegt sich zu einem neuen 
     Standard-Manager, genannt <prgn>aptitude</prgn>, der ebenfalls auf der 
     APT-Bibliothek basiert.
   </p>
   <p>
     Wenn Sie »Sarge« installiert haben, haben Sie <prgn>aptitude</prgn> im 
     Basissystem installiert, ansonsten installieren Sie, bevor Sie 
     fortfahren, das Paket <package>aptitude</package>, zum Beispiel, indem 
     Sie dieses Kommando ausführen:
   </p>
   <p>
    <example>
# apt-get install aptitude
</example>
   </p>
   <p>
     Versuchen Sie, die Benutzung von <prgn>apt-get</prgn> zu vermeiden und 
     stattdessen <prgn>aptitude</prgn> zu benutzen, weil es viel mehr über 
     die Fähigkeiten von APT weiß und einige einzigartige Features hat, wie 
     das Markieren von Paketen, die automatisch installiert wurden, um 
     Abhängigkeiten zu erfüllen, und das Fragen, diese automatisch zu 
     entfernen, wenn sie nicht mehr gebraucht werden.
   </p>
   <p>
     <prgn>aptitude</prgn> hat zwei Hauptmodi: eine ncurses-basierte 
     Benutzerschnittstelle, in der Sie durch ein Liste von Paketen 
     navigieren können, fast wie in <prgn>dselect</prgn>, und eine 
     Befehlszeilen-basierte Benutzerschnittstelle, fast wie 
     <prgn>apt-get</prgn>. Die meisten Beispiele in diesem Dokument benutzen 
     die Befehlszeilen-basierte Schnittstelle, Tipps gebend, welches 
     Kommando benutzt wird, um dieselben Resultate in <prgn>aptitude</prgn>s 
     dselect-ähnlicher Schnittstelle zu erreichen.
   </p>
   <p>
     Um diese Schnittstelle zu starten, geben Sie in einem Terminal 
     <tt>aptitude</tt> ein -- Sie müssen zu diesem Zeitpunkt nicht »root« 
     sein, aptitude fordert automatisch Rootrechte an, wenn es sie 
     braucht. Sehen wir uns die Grundlagen an: um die Menüzeile oben auf dem 
     Bildschirm zu erreichen, müssen Sie »<tt>F10</tt>« drücken, wie die 
     zweite Zeile vorschlägt. Diese zweite Zeile hat eine Zusammenfassung 
     der meistgenutzten Features, wie Hilfe bekommen, Beenden, die Liste der 
     Pakete aktualisieren und Fortfahren.
   </p>
   <p>
     Werfen Sie einen Blick in das <tt>Handbuch</tt>, welche sich im Menü 
     <tt>Hilfe</tt> befindet, um zu verstehen, wie das Ding arbeitet.
   </p>
   <p>
     Beachten Sie, dass <prgn>aptitude</prgn> auf eine Weise arbeitet, die 
     ähnlich anderen Paketmanagern ist: Sie machen alle Ihre Auswahlen und 
     <tt>kommitieren</tt> dann die Änderungen. Fast alle zu erledigenden 
     Aktionen beim Managen der Installation eines Paketes erfordern es, die 
     Taste »<tt>g</tt>« zwei Mal zu drücken, um in Aktion zu treten. Das 
     erste Mal, wenn Sie »<tt>g</tt>« drücken, wird Ihnen die Liste der zu 
     erledigenden Änderungen präsentiert, dann drücken Sie nochmals 
     »<tt>g</tt>«, um die Änderungen zu bestätigen, oder »<tt>q</tt>« um 
     zurück zu gehen,
   </p>
   <p>
     Ähnlich können Sie die »<tt>Eingabe</tt>«-Taste drücken, um mehr 
     Details über ein Paket oder eine Gruppe von Paketen zu bekommen -- zum 
     Beispiel können Sie »<tt>Eingabe</tt>« drücken, wenn der Auswahlbalken 
     auf »Neue Pakete« ist, um eine Liste von Sektionen zu sehen. Durch 
     Drücken von »<tt>Eingabe</tt>« auf einer Sektion sehen Sie die Liste 
     neuer Pakete in dieser Sektion, und Sie können mehr Details zu einem 
     Paket sehen, indem Sie auf ihm »<tt>Eingabe</tt>« drücken. Beachten 
     Sie, dass das Betreten der Detailansicht eines Paketes 
     <prgn>aptitude</prgn>s Sichtkontext ändert, so dass Sie »<tt>q</tt> 
     drücken müssen um zurück zu gelangen.
   </p>
   <p>
     Die Pakete sind standardmäßig basierend auf ihrem Installationsstatus 
     und einigen anderen besonderen Kriterien kategorisiert. Sie sehen 
     folgendes, wenn Sie das erste Mal <prgn>aptitude</prgn> betreten:
   </p>
   <p>
    <example>
--- Neue Pakete
--- Aktualisierbare Pakete
--- Installierte Pakete
--- Nicht installierte Pakete
--- Veraltete und selbst erstellte Pakete
--- Virtuelle Pakete
--- Schnellauswahl (Tasks)
</example>
   </p>
   <p>
     »Neue Pakete« hat die Pakete, die zu Debian dazugekommen sind, seit Sie 
     Ihre Liste neuer Pakete, durch Benutzen der Option <tt>Neue Pakete 
     vergessen</tt> im Menü <tt>Aktionen</tt> oder der Taste »<tt>f</tt>«, 
     geleert haben.
   </p>
   <p>
     »Aktualisierbare Pakete« sind installierte Paket, die neue Versionen 
     verfügbar haben. »Installierte Pakete« sind die korrekt installierten 
     Pakete. »Nicht installierte Pakete« sind die, die Sie nicht installiert 
     haben, die aber von einer der APT-Quellen verfügbar sind. »Veraltete 
     und selbst erstellte Pakete« sind diejenigen Pakete, die nicht mehr von 
     mindestens einer APT-Quelle verfügbar sind, oder solche, die Sie selbst 
     erzeugt haben. »Virtuelle Pakete« sind Pakete, die einen Dienst statt 
     einer bestimmten Software definieren, und die von mehreren spezifischen 
     Paketen »bereitgestellt« werden. Schließlich sind »Schnellauswahl 
     (Tasks)« eine Sammlung von Paketen, die einen bestimmten Zweck dienen, 
     sie werden auch von dem Programm <prgn>tasksel</prgn> benutzt.
   </p>
   <p>
     »<tt>Enter</tt>« auf einem von diesen drücken erweitert den Baum 
     ungefähr so:
   </p>
   <p>
    <example>
--\ Nicht installierte Pakete
  --- admin - Administrator-Werkzeuge
  --- base - Das Debian-Grundsystem
[...] 
</example>
   </p>
   <p>
     Noch tiefergehend haben wir:
   </p>
   <p>
    <example>
  --\ games - Spiel &amp; Spaß
    --- contrib - Programme, die von Nicht-Debian-Software abhängen
    --\ main - Die Debian-Distribution
p     3dchess                                              &lt;keine&gt;    0.8.1-12
</example>
   </p>
   <p>
     Dies zeigt uns ein Paket, das nicht installiert ist, das ein Spiel ist 
     und das vom Debian-Repository »main« verfügbar ist, was das ist, was 
     die Distribution Debian offiziell ist.
   </p>
   <p>
     In der Mitte des Bildschirms ist eine markierte Zeile, die sich mit 
     etwas Text füllt, wenn Sie ein Paket auswählen. Das nennen wir 
     <tt>Kurzbeschreibung</tt> (englisch: <tt>short description</tt>) des 
     Paketes. Darunter ist ein Kasten, der detailiertere Informationen über 
     das Paket enthält. Das ist die <tt>lange Beschreibung</tt> (englisch: 
     <tt>long description</tt>. Manches Mal ist die lange Beschreibung zu 
     groß, um in das für sie reservierte Rechteck zu passen, dann können sie 
     die Taste »<tt>z</tt>« zum Herunter-Scrollen drücken und »<tt>a</tt>« 
     um wieder hoch zu scrollen.
   </p>
   <p>
     Für mehr Informationen über die hier gezeigten Daten siehe <ref 
     id="install">.
   </p>
  </sect>
  <sect id="update">
   <heading>
     Update der Liste der verfügbaren Pakete
   </heading>
   <p>
     Das Paketsystem benutzt eine private Datenbank um Buch zu führen über 
     installierte, nicht installierte und für eine Installation verfügbare 
     Pakete. Das Programm <prgn>aptitude</prgn> benutzt diese Datenbank, um 
     herauszufinden, wie es die vom Benutzer angeforderten Pakete 
     installieren soll und welche zusätzlichen Pakete benötigt werden, damit 
     die ausgewählten Pakete ordentlich funktionieren.
   </p>
   <p>
     Um diese Liste zu updaten, benutzen Sie das Kommando <prgn>aptitude 
     update</prgn>. Dieses Kommando sucht nach den Paketlisten in den 
     Archiven aus der <tt>/etc/apt/sources.list</tt>; siehe <ref 
     id="sources.list"> für weitere Information über diese Datei. Sie können 
     auch die Taste »<tt>u</tt>« in der Ncurses-Schnittstelle von 
     <prgn>aptitude</prgn> benutzen, um es die Paketlisten updaten zu 
     lassen.
   </p>
   <p>
     Einer der Schritte die APT beim Updaten Ihrer Datenbank unternimmt, ist 
     es zu verifizieren, dass die Liste von Paketen und ihre MD5-Prüfsummen 
     sicher ist. Es tut dies durch Verifizieren einer kryptographischen 
     Signatur und Überprüfen einiger MD5-Prüfsummen, für mehr Informationen 
     siehe <ref id="trustchain">. Wenn APT findet, dass die Signatur 
     inkorrekt ist oder dass die MD5-Prüfsummen nicht passen, gibt es Ihnen 
     eine Fehlermeldung aus während des Updatens Ihrer Paketdatenbank. Dies 
     geschieht, um zu vehindern, dass trojanisierte Pakete auf Ihrem 
     Computer installiert werden. Wenn dies auftritt, könnte es ein 
     Konfigurationsproblem geben (etwa ein abgelaufener Schlüssel), das Sie 
     beheben können. Scheitert dies, sollten Sie den Administrator der 
     scheiternden APT-Quelle kontaktieren.
   </p>
   <p>
     Es ist eine gute Idee, die Listen der verfügbaren Pakete regelmäßig zu 
     updaten, um sich selbst und sein System auf dem neusten Stand über 
     mögliche Paket- bzw. Sicherheitsupdates zu halten.
   </p>
  </sect>
  <sect id="searching">
   <heading>
     Nach Paketen suchen
   </heading>
   <p>
     <prgn>aptitude</prgn> bietet eine sehr flexible und mächtige 
     Suchfunktion. Sie können auf sie zugreifen, indem Sie die Taste 
     »<tt>/</tt>« (Schrägstrich) drücken. Dies öffnet einen kleinen Dialog 
     in der Mitte des Bildschirms.
   </p>
   <p>
     Dann können Sie den Namen eines Paketes tippen. <prgn>aptitude</prgn> 
     sucht, während Sie tippen. Wenn das Paket, das es findet, nicht genau 
     das ist, was Sie wollen, können Sie »<tt>Eingabe</tt>« drücken, dass 
     der Dialog verschwindet, und dann die Taste »<tt>n</tt>«, um die Suche 
     nach derselben Zeichenkette zu wiederholen.
   </p>
   <p>
     Sie können im Suchdialog reguläre Ausdrücke<footnote><p>Reguläre 
     Ausdrücke sind besondere Zeichenketten, um Übereinstimmungen basierend 
     auf bestimmten Bedigungungen zu finden, werfen Sie einen Blick auf die 
     Manpage <tt>regex(7)</tt></p></footnote> benutzen, hüten Sie sich nur 
     davor, dass <prgn>aptitude</prgn> seine eigene Such-Sprache hat, die 
     sich manchmal mit der Sprache der regulären Ausdrücke überlappt. Gehen 
     wir nun zu einem Beispiel: Wenn Sie einen exakten Treffer auf die 
     Zeichenkette »gnome« haben wollen, geben Sie »<tt>^gnome$</tt>« im 
     Suchdialog ein.
   </p>
   <p>
     Beachten Sie, dass, wenn Sie so suchen, Sie nach einfachen Paketnamen 
     suchen. Wenn Sie in den Beschreibungen suchen wollen, müssen Sie 
     »<tt>~d</tt>« direkt vor dem Suchausdruck benutzen. Falls Sie also nach 
     allen Paketen suchen wollen, die »isolinux« in ihrer Beschreibung 
     erwähnen, werden Sie »<tt>~disolinux</tt>« im Suchdialog schreiben.
   </p>
   <p>
     Sie können auch nach Paketen suchen, die gegenwärtig kaputt sind, indem 
     Sie nach »<tt>~b</tt>« suchen, oder mit »<tt>~c</tt>« nach Paketen 
     suchen, die entfernt wurden, deren Konfigurationsdateien aber erhalten 
     wurden.
   </p>
   <p>
     Für weiter fortgeschrittenes Suchen in <prgn>aptitude</prgn> werfen Sie 
     einen Blick in sein <tt>Handbuch</tt>, das Sie im Menü <tt>Hilfe</tt> 
     finden können.
   </p>
   <p>
     Sie können auch die Befehlszeile benutzen, um nach Paketen zu suchen, 
     wie hier:
   </p>
   <p>
    <example>
$ aptitude search '~c'
c A abiword-common                  - WYSIWYG word processor based on GTK2
c A acme                            - Enables the "multimedia buttons" found on
(...)
</example>
   </p>
   <p>
     Wie Sie sehen können, können Sie jede von aptitudes Suchzeichenketten 
     auch auf der Befehlszeile benutzen, und <prgn>aptitude</prgn> bietet 
     Ihnen einige Informationen zum Zustand von Paketen, die wir später in 
     diesem Dokument diskutieren werden.
   </p>
  </sect>
  <sect id="install">
   <heading>
     Installieren und Reinstallieren von Paketen
   </heading>
   <p>
     Endlich kommt das, worauf Sie alle gewartet haben! Mit Ihrer fertigen 
     sources.list, den Schlüsseln zu APTs Schlüsselbund hinzugefügt, und 
     Ihrer Liste der verfügbaren Pakete auf dem neusten Stand ist alles, was 
     Sie zu tun haben, <tt>aptitude</tt> auszuführen, um Ihr gewünschtes 
     Paket zu installieren.
   </p>
   <p>
     Wenn Sie <prgn>aptitude</prgn> betreten, können Sie es ein oder mehrere 
     Pakete installieren lassen, indem Sie die Taste »<tt>+</tt>« drücken, 
     während das fragliche Paket ausgewählt ist. Sie können die Taste 
     »<tt>/</tt>« benutzen, um nach dem Paket, das Sie wollen, zu suchen, 
     siehe <ref id="searching">. Wenn Sie die Installation eines Paketes 
     anfordern, wird es grün markiert, und die Zeile sieht aus wie in diesem 
     Beispiel:
   </p>
   <p>
    <example>
pi    celestia-gnome                                        &lt;keine&gt;    1.3.0-1
</example>
   </p>
   <p>
     Dies bedeutet, dass das Paket nicht installiert ist (»p«) und zur 
     Installation markiert ist (»i«). Das Wort <tt>&lt;keine&gt;</tt> 
     bedeutet, keine Version ist installiert, und die Versionsnummer danach 
     ist die, die zur Installation markiert wurde.
   </p>
   <p>
     Beachten Sie, dass wenn Sie dies tun, andere Pakete automatisch zur 
     Installation markiert werden. Dies sind die Abhängigkeiten, Vorschläge 
     und Empfehlungen des ausgewählten Paketes. Sie werdem 
     höchstwahrscheinlich so markiert:
   </p>
   <p>
    <example>
piA   gnome-bin                                             &lt;keine&gt;    1.4.2-16
</example>
   </p>
   <p>
     Das große »A« bedeutet, dass dies Paket installiert wird, weil ein 
     anderes Paket von ihm abhängt. Alle so installierten Paket werden 
     entfernt, wenn sie nicht mehr gebraucht werden. Sie können diese 
     Markierung von Hand setzen, indem sie »<tt>M</tt>« tippen, während der 
     Cursor auf einem Paket positioniert ist.
   </p>
   <p>
     Ein »U« in der vierten Spalte bedeutet, dass das Paket von einer Quelle 
     kommt, der nicht vertraut wird, was bedeutet, dass es keine signierte 
     <tt>Release</tt>-Datei für die Quelle gibt, von der das Paket kommt, 
     oder dass ihr öffentlicher Schlüssel nicht in APTs Schlüsselbund 
     importiert wurde. Siehe <ref id="apt-key"> um zu verstehen, was Sie tun 
     sollten, dass dieser Quelle vertraut wird. Sie könnten dasselbe Paket 
     allerdings auch in einer der Quellen, denen vertraut wird, haben, so 
     dass Sie einen Blick auf die detailierten Informationen über verfügbare 
     Versionen dieses Paketes werfen möchten.
   </p>
   <p>
     Sie können detailierte Informationen über das Paket, das Sie 
     installieren wollen, bekommen, indem Sie »<tt>Eingabe</tt>« drücken, 
     während das Paket ausgewählt ist. Dies bringt Sie zu etwas wie diesem 
     hier:
   </p>
   <p>
    <example>
i A --\ xterm                                             4.2.1-14     4.2.1-14
  Beschreibung: xterm - X terminal emulator
    xterm is a terminal emulator for the X Window System.  It provides DEC
    VT102 and Tektronix 4014 compatible terminals for programs that cannot
    use the window system directly.  This version implements ISO/ANSI
    colors and most of the control sequences used by DEC VT220 terminals.
  Priorität: optional
  Bereich: x11
  Verwalter: Branden Robinson &lt;branden@debian.org&gt;
  Komprimierte Größe: 547k
  Unkomprimierte Größe: 1130k
  Quellpaket: xfree86
  --\ Hängt ab
    --- libc6 (>= 2.3.2.ds1-4)
    --- libfreetype6 (>= 2.1.5-1)
    --- libncurses5 (>= 5.3.20030510-1)
    --- libxaw7 (> 4.1.0)
    --- xlibs (> 4.1.0)
    --- xlibs (> 4.2.0)
  --\ Kollidiert
    --- xbase (< 3.3.2.3a-2)
    --- suidmanager (< 0.50)
  --\ Ersetzt
    --- xbase (< 3.3.2.3a-2)
  --- Pakete, die von xterm abhängen
  --\ Versionen
p A 4.3.0-0pre1v4
i A 4.2.1-14
</example>
   </p>
   <p>
     Die Versionen, denen vertraut wird, haben nicht den Buchstaben »U« in 
     der vierten Spalte, so dass Sie einfach die, die man haben möchte, 
     herauspicken und »aptitude« installieren lassen können. Unser obiges 
     Beispiel hat verschiedene Versionen, die von Quellen kommen, denen 
     vertraut wird.
   </p>
   <p>
     Beachten Sie, dass fast immer, wenn Sie drei oder mehr Bindestriche 
     sehen, Sie »<tt>Eingabe</tt>« drücken können, um sie aufklappen zu 
     lassen. Sie werden dann zu <tt>--\</tt>. Sie haben nun viele 
     Informationen über dies Paket, etwa von welchen Paketen es abhängt und 
     mit welchen es kollidiert<footnote><p>Ein Paket, das mit einem anderen 
     oder mit einer spezifischen Version eines anderen Paketes kollidiert, 
     kann nicht zur gleichen Zeit installiert sein, wie dies Paket oder 
     diese Paketversion.</p></footnote> zum Beispiel.
   </p>
   <p>
     Beachten Sie auch, dass Sie am Ende des Bildschirms (sie können mit den 
     »<tt>Pfeiltasten</tt>« oder »<tt>Bild ab</tt>« nach unten gehen) die 
     verschiedenen Versionen finden, die für das Paket verfügbar sind. Das 
     Paket <package>xterm</package> hat für mich zwei verfügbare Versionen, 
     weil ich mehr als eine APT-Quelle habe, die es in verschiedenen 
     Versionen anbieten.
   </p>
   <p>
     Sie können die Version, die Sie wollen, installieren, indem Sie auf ihr 
     »<tt>+</tt>« drücken. Erinnern Sie sich, dass sie <prgn>aptitude</prgn> 
     anweisen müssen, mit den Markierungen, die Sie gemacht haben, 
     fortzufahren. Sie tun dies, indem Sie »<tt>g</tt>« 
     drücken. <prgn>aptitude</prgn> zeigt Ihnen dann eine Liste mit den 
     Aktionen, die es ausführen will, wo Sie sehen können, ob es tut, was 
     Sie wollen:
   </p>
   <p>
    <example>
--\ Pakete, die automatisch installiert werden, um Abhängigkeiten zu erfüllen
ciA calctool                                                &lt;keine&gt;    4.3.16-2
--\ Pakete, die zurückgehalten werden
ih  libgnomeprintui2.2-0                                   2.4.0-1     2.4.2-1
--\ Pakete, die installiert werden
pi  gwget2                                                  &lt;keine&gt;    0.7-3
--\ Pakete, die entfernt werden
ip  qvwm                                                1:1.1.12-1     1:1.1.12-1</example>
   </p>
   <p>
     Die Einträge sollten leicht verständlich sein. Das Neue hier ist, dass 
     ein Paket zurückgehalten wird. Sie können darüber mehr unter <ref 
     id="holding"> lesen. Nachdem Sie geprüft haben, dass die Änderungen die 
     gewünschten sind, bestätigen Sie die Auswahl durch nochmaliges Drücken 
     der Taste »<tt>g</tt>«.
   </p>
   <p>
     <prgn>aptitude</prgn> startet nun den Prozess des Herunterladens und 
     Installierens der Pakete, die Sie ausgewählt haben. APT mag auch das 
     Aktualisieren von Paketen beginnen, die zu dieser Zeit aktualisiert 
     werden müssen (siehe <ref id="upgrade">). Wenn Sie Pakete von Quellen, 
     denen nicht vertraut wird, ausgewählt haben, zeigt Ihnen 
     <prgn>aptitude</prgn> eine Liste dieser Pakete und erwartet eine 
     Eingabe von Ihnen, bevor es beginnt die Pakete zu holen, ob Sie sie 
     wirklich installieren möchten. Siehe <ref id="trustchain"> für mehr 
     Informationen über sichere Quellen.
   </p>
   <p>
     Wenn Sie ein Paket reinstallieren wollen, zum Beispiel um Dateien, die 
     Sie versehentlich entfernt haben, zurückzuholen, können Sie die Taste 
     »<tt>L</tt>« drücken, um es zur Reinstallation zu markieren. Sie gehen 
     dann durch denselben Prozess, als wenn Sie es Installieren würden.
   </p>
   <p>
     Sie können <prgn>aptitude</prgn> auch ohne die interaktive 
     Benutzerschnittstelle benutzen, um Pakete zu installieren oder 
     reinstallieren:
   </p>
   <p>
    <example>
# aptitude install <var>Paket1</var> <var>Paket2</var> ...
# aptitude --reinstall install <var>Paket1</var> <var>Paket2</var> ...
</example>
   </p>
  </sect>
  <sect id="manual-install">
   <heading>
     Manuell heruntergeladene oder lokal erzeugte Debian-Pakete installieren
   </heading>
   <p>
     Wenn Sie eine <tt>.deb</tt>-Datei von Hand aus dem Internet herunter 
     geladen, oder Sie ein <tt>.deb</tt> von einer Quelle haben, die APT 
     nicht benutzt, können Sie <prgn>aptitude</prgn> oder irgendeinanderes 
     APT-basiertes Programm nicht benutzen, um es zu installieren.
   </p>
   <p>
     Sie müssen dann das darunterliegende Paket-Management-Werkzeug 
     benutzen, welches tatsächlich die harte Arbeit des Paketeinstallierens 
     erledigt -- sogar <prgn>aptitude</prgn> ruft dieses Werkzeug zum 
     Installieren auf: <prgn>dpkg</prgn>.
   </p>
   <p>
     Sie können folgendermaßen ein Paket installieren:
   </p>
   <p>
    <example>
# dpkg -i <var>Datei.deb</var>
</example>
   </p>
   <p>
     Wenn Sie den Zweig <tt>unstable</tt> von Debian benutzen oder 
     Debian-Pakete erzeugen möchten, sollten Sie besser mehr über 
     <prgn>dpkg</prgn> heraus finden! Es ist ein sehr mächtiges Werkzeug und 
     hat viele nützliche Optionen.
   </p>
  </sect>
  <sect id="remove">
   <heading>
     Pakete entfernen
   </heading>
   <p>
     Falls Sie ein Paket nicht mehr benutzen möchten, können Sie es unter 
     Benutzung von APT von Ihrem System entfernen. Um dies zu tun, tippen 
     Sie einfach »<tt>-</tt>«, während Sie das Paket in 
     <prgn>aptitude</prgn> ausgewählt haben. Das markiert das Paket zum 
     Entfernen mit einer purpur-farbenen Zeile, wie hier:
   </p>
   <p>
    <example>
id    celestia-gnome                                       1.3.0-1     1.3.0-1
</example>
   </p>
   <p>
     Beachten Sie, dass dies mit einer Zeile endet, die wie folgt aussieht, 
     nachdem das Paket entfernt ist:
   </p>
   <p>
    <example>
c    ocaml-base                                             &lt;keine&gt;    3.07.2a-1
</example>
   </p>
   <p>
     Da ist ein ein »<tt>c</tt>« am Anfang der Zeile, statt eines 
     »<tt>p</tt>«s. Das heißt, dass auf meinem System das Paket 
     <package>ocaml-base</package> entfernt wurde, aber die 
     Konfigurationsdateien immer noch herum liegen. Um das Paket mitsamt 
     seinen Konfigurationsdateien zu entfernen, müssen Sie stattdessen die 
     Taste »<tt>_</tt>«<footnote><p>Die Unterstrich-Taste, gewöhnlich 
     zusammen mit dem Bindestrich zu finden, zu tippen durch Halten der 
     Umschalttaste und Drücken der Bindestrich-Taste.</p></footnote> 
     benutzen -- dies heißt vollständig entfernen oder, auf englisch, purge.
   </p>
   <p>
     Eine wichtige Anmerkung: Falls Sie versuchen, ein Paket zu entfernen, 
     das eine Abhängigkeit eines installierten Paketes ist, enden Sie mit 
     kaputten Paketen, wie oben im <prgn>aptitude</prgn>-Bildschirm gezeigt:
   </p>
   <p>
    <example>
aptitude 0.2.13      #Kaputt: 1   Werde 208MB freigeben
</example>
   </p>
   <p>
     Die kaputten Pakete werden wie folgt markiert:
   </p>
   <p>
    <example>
iBA   openoffice.org                                       1.1.0-3     1.1.0-3
</example>
   </p>
   <p>
     Sie können versuchen, die Kaputtheit selbst zu lösen, indem Sie die 
     fehlerhaften Pakete ebenfalls entfernen lassen, so dass keine 
     verletzten Abhängigkeiten zurückbleiben, oder <prgn>aptitude</prgn> 
     durch Drücken der Taste »<tt>g</tt>« bitten fortzufahren. Es versucht 
     dann, die ganze Kaputtheit zu reparieren. Wenn die von dem Programm 
     gewählte Lösung nicht Ihren Wünschen entspricht, können Sie es von Hand 
     reparieren, bevor Sie mit »<tt>g</tt>« bestätigen.
   </p>
   <p>
     Sie können nach kaputten Paketen suchen, indem Sie »<tt>/</tt>« tippen, 
     »<tt>~b</tt>« als Suchzeichenkette benutzen und »<tt>Eingabe</tt>« 
     drücken; Sie können dann mit der Taste »<tt>\</tt>« nach dem nächsten 
     Treffer suchen. Sie können kaputte Pakete auch suchen, indem Sie 
     einfach die Taste »<tt>b</tt>« drücken; nochmaliges Drücken zeigt Ihnen 
     das nächste kaputte Paket. Siehe <ref id="search"> für mehr 
     Informationen wie man Pakete findet.
   </p>
   <p>
     Wie üblich können Sie auch Pakete durch die Befehlszeilenschnittstelle 
     entfernen oder vollständig entfernen lassen:
   </p>
   <p>
    <example>
# aptitude remove <var>Paket1</var> <var>Paket2</var> ...
# aptitude purge <var>Paket1</var> <var>Paket2</var> ...
</example>
   </p>
  </sect>
  <sect id="upgrade">
   <heading>
     Aktualisieren von Paketen
   </heading>
   <p>
     Paket-Aktualisierungen (engl: upgrades) sind ein großer Erfolg des 
     APT-Systems. <prgn>aptitude</prgn> markiert automatisch die Pakete, die 
     neuere Versionen haben, zur Aktualisierung, so dass alles, was Sie für 
     gewöhnlich tun müssen, um Ihr System zu aktualisieren, das Updaten der 
     Paketlisten (siehe <ref id="update">) und dann <prgn>aptitude</prgn> 
     durch Tippen von »<tt>g</tt>« bitten fortzufahren und nach Besichtigung 
     der Veränderungen wieder mit »<tt>g</tt>« bestätigen ist. Falls 
     <prgn>aptitude</prgn> die Aktualisierungen nicht automatisch markiert, 
     können Sie die Taste »<tt>U</tt>« (großes »U«) drücken, um es dies tun 
     zu lassen. Dies ist eine Konfigurations-Option, die sich im Menü 
     <tt>Optionen-&gt;Verschiedenes</tt> befindet.
   </p>
   <p>
     Sie können die Liste der Pakete, die neue Versionen verfügbar haben, 
     überprüfen, indem Sie in die Kategorie <tt>Aktualisierbare Pakete</tt> 
     schauen:
   </p>
   <p>
    <example>
--\ Aktualisierbare Pakete
  --\ libs - Bibliotheken
    --\ main - Die Debian-Distribution
iu    libgnomeprintui2.2-0                                 2.4.0-1     2.4.2-1
</example>
   </p>
   <p>
     Zur Aktualisierung markierte Pakete haben eine zyan-farbene Zeile und 
     den Buchstaben <tt>u</tt> als die auszuführende Aktion. Falls Sie auf 
     eine neue Veröffentlichung aktualisieren möchten, schauen Sie in den 
     nächsten Abschnitt (<ref id="dist-upgrade">).
   </p>
  </sect>
  <sect id="dist-upgrade">
   <heading>
     Aktualisierung auf eine neue Debian-Version
   </heading>
   <p>
     APT erlaubt es Ihnen, ein ganzes Debian-System auf einmal zu 
     aktualisieren, entweder über das Internet oder von einer neuen CD-ROM 
     (gekauft oder als ISO-Abbild aus dem Netz heruntergeladen).
   </p>
   <p>
     Wenn auf Ihrem System z.B. Revision 0 der stabilen Debian-Version läuft 
     und Sie sich Revision 3 auf CD kaufen, können Sie APT benutzen, um ein 
     Upgrade auf die neue Version von CD durchzuführen. Dafür benutzen Sie 
     <prgn>apt-cdrom</prgn> (Siehe Abschnitt <ref id="cdrom">), um die CD zu 
     Ihrer <tt>/etc/apt/sources.list</tt> hinzuzufügen und fahren Sie mit 
     der Installation fort, wie oben beschrieben.
   </p>
   <p>
     Es ist wichtig zu wissen, dass APT immer nach der aktuellsten Version 
     eines Pakets sucht, aber nur nachdem es die Prioritäten der Quellen 
     berücksichtigt, wie wir in <ref id="apt:policy"> gesehen 
     haben. Berücksichtigen Sie das und, falls Ihre 
     <tt>/etc/apt/sources.list</tt> ein Archiv enthält, das eine neuere 
     Version eines Pakets enthält, als die Version auf CD-ROM, würde APT das 
     Paket von dort herunterladen, falls beide Quellen dieselbe Priorität 
     haben, oder das andere Archiv eine höhere Priorität hat, als das auf 
     CD-ROM.
   </p>
   <p>
     Falls Sie Ihr System nur vom Internet aktualisieren möchen, brauchen 
     Sie nur Ihre Datei <file>/etc/apt/sources.list</file> entsprechend 
     aufsetzen. Auf eine neue stabile Veröffentlichung zu aktualisiereni, 
     ist für gewöhnlich nur eine Frage des Durchlaufens des normalen 
     Aktualisierungs-Prozess in <prgn>aptitude</prgn>. Falls Ihre 
     <file>/etc/apt/sources.list</file> den Kodenamen<footnote><p>Debian 3.0 
     nannte sich zum Beispiel »woody«, Debian 3.1 ist »sarge«</p></footnote> 
     der Veröffentlichung benutzt, müssen Sie ihn auf den neuen Namen setzen 
     oder in »stable« ändern.
   </p>
   <p>
     Zum Beispiel würde diese Zeile:
   </p>
   <p>
    <example>
deb http://http.us.debian.org/debian sarge main
</example>
   </p>
   <p>
     wie eine der folgenden aussehen müssen, sobald »Etch« »stable« wird, 
     damit Ihr Computer auf dem Stand des aktuellen stabilen Systems bleibt:
   </p>
   <p>
    <example>
deb http://http.us.debian.org/debian etch main
deb http://http.us.debian.org/debian stable main
</example>
   </p>
   <p>
     Der Unterschied hier ist, dass die erste Sie solange bei »etch« hält 
     wie Sie wollen, selbst wenn ein neues »stable« herauskommt. Dies kann 
     nützlich sein, falls Sie selbst entscheiden wollen, wann Sie auf das 
     neue »stable« aktualisieren. Das zweite Beispiel aktualisiert Ihren 
     Rechner automatisch auf die neue Version, wenn sie veröffentlicht wird.
   </p>
  </sect>
  <sect id="holding">
   <heading>
     Pakete auf »halten« setzen
   </heading>
   <p>
     Wie wir im vorletzten Abschnitt gesehen haben, markiert 
     <prgn>aptitude</prgn> automatisch Pakete zur Aktualisierung. Falls Sie 
     aber die aktuelle Version installiert behalten wollen, können Sie es 
     das Paket <tt>auf Halten</tt> setzen lassen.
   </p>
   <p>
     Dies wird durch Drücken der Taste »<tt>=</tt>« erreicht. Pakete, die 
     vor Aktualisierungen zurückgehalten werden, sehen so aus:
   </p>
   <p>
    <example>
ih    alien                                                   8.41     8.41
</example>
   </p>
   <p>
     In diesem Beispiel wird das Paket <package>alien</package> auf Version 
     8.41 gehalten, selbst wenn eine neue Version in einer APT-Quelle 
     erscheint -- beachten Sie den Buchstaben »<tt>h</tt>« links. Um es 
     wieder aktualisierbar zu machen, markieren Sie es mit »<tt>+</tt>« zur 
     Installation.
   </p>
   <p>
     Sie können Pakete auch über die Befehlszeile auf »halten« setzen, indem 
     Sie folgendes ausführen:
   </p>
   <p>
    <example>
# aptitude hold <var>paket1</var> <var>paket2</var> ...
</example>
   </p>
  </sect>
  <sect id="clean">
   <heading>
     Ungenutzte Paket-Dateien entfernen: »clean« und »autoclean«
   </heading>
   <p>
     Wenn ein Paket installiert werden soll, bezieht APT von den Quellen, 
     die in der /etc/apt/sources.list aufgelistet sind, die nötigen Dateien, 
     legt sie in ein lokales Archiv (<file>/var/cache/apt/archives/</file>) 
     und fährt mit der Installation fort (siehe <ref id="install">).
   </p>
   <p>
     Nach und nach kann dieses lokale Archiv immer größer werden und eine 
     Menge Platz auf der Festplatte belegen. Auch für diesen Fall bietet APT 
     Werkzeuge an, um sein lokales Archiv zu warten: <prgn>APT</prgn>s 
     <tt>clean</tt> und <tt>autoclean</tt> Methoden.
   </p>
   <p>
     Die Methode »clean« wird aufgerufen über den Punkt <tt>Paketcache 
     komplett leeren</tt> aus dem Menü <tt>Aktionen</tt>. Sie wird benutzt 
     um alle heruntergeladenen <tt>.deb</tt>-Dateien zu löschen. Die Methode 
     »autoclean« wird über den Punkt <tt>Nur veraltete Paketdateien 
     löschen</tt>, auch im Menü <tt>Aktionen</tt>, aufgerufen.
   </p>
   <p>
     Die Methode »autoclean« soll hauptsächlich von denen benutzt werden, 
     die gerne eine lokale Kopie der aktuell installierten Pakete behalten 
     wollen. Sie löscht nur diejenigen <tt>.deb</tt>-Dateien, die nicht mehr 
     von irgendeiner APT-Quelle bereitgestellt werden und somit von einer 
     neueren Version abgelöst wurden.
   </p>
  </sect>
 </chapt>
 <chapt id="sourcehandling">
  <heading>
    Aus den Quellen bauen
  </heading>
  <sect id="source">
   <heading>
     Herunterladen von Quellpaketen
   </heading>
   <p>
     In der Welt der freien Software ist es üblich, den Quellcode zu 
     studieren oder auch Korrekturen an fehlerhaftem Code vorzunehmen. Ein 
     Paket aus den Quellen zu bauen kann auch nützlich sein, falls Sie 
     Features aktivieren wollen, die im offiziellen Paket deaktiviert sind, 
     oder welche deaktivieren wollen, die aktiviert sind. Um dieses zu tun, 
     müssen Sie den Quellcode des Programms herunterladen. Das APT-System 
     bietet eine einfache Möglichkeit, den Quellcode der vielen Programme 
     der Distribution einschließlich aller für das Erstellen eines 
     <tt>.deb</tt> des Programms nötigen Dateien zu beziehen.
   </p>
   <p>
     Eine andere übliche Anwendung für Debian-Quellen ist es eine aktuellere 
     Version eines Programms aus der Distribution »unstable« zum Beispiel in 
     »stable« zu benutzen. Das Paket »gegen« »stable« zu kompilieren erzeugt 
     ein Paket mit Abhängigkeiten, die auf die Pakete aus dieser 
     Distribution ausgerichtet sind.
   </p>
   <p>
     Hierfür sollte der <tt>deb-src</tt>-Eintrag in Ihrer 
     <tt>/etc/apt/sources.list</tt> auf »unstable« zeigen. Es sollte 
     außerdem aktiviert sein, d.h. eventuelle Kommentarzeichen vor der Zeile 
     müssen entfernt werden (Siehe Abschnitt <ref id="sources.list">).
   </p>
   <p>
     <prgn>aptitude</prgn>, Debians Paketmanager, ist hauptsächlich auf 
     Binär-Pakete ausgerichtet. Um Quellpakete zu benutzen müssen wir 
     stattdessen <prgn>apt-get</prgn> benutzen. Um ein Quellpaket 
     herunterzuladen, benutzen Sie folgenden Befehl:
   </p>
   <p>
    <example>
$ apt-get source Paketname
</example>
   </p>
   <p>
     Dies lädt drei Dateien herunter: ein <tt>.orig.tar.gz</tt>, ein 
     <tt>.dsc</tt> und ein <tt>.diff.gz</tt>. Im Falle von Debian-nativen 
     Paketen fällt das letzte weg und das erste hat für gewöhnlich kein 
     »<tt>orig</tt>« im Namen.
   </p>
   <p>
     Die Datei <tt>.dsc</tt> wird von <prgn>dpkg-source</prgn> benutzt, um 
     das Quellpaket in das Verzeichnis <var>Paketname-Version</var> zu 
     entpacken. In jedem heruntergeladenen Quellpaket befindet sich ein 
     Verzeichnis <tt>debian/</tt>, welches die für das Bauen des 
     <tt>.deb</tt>-Paketes nötigen Dateien enthält.
   </p>
   <p>
     Um das Paket beim Herunterladen automatisch zu erzeugen, fügen Sie 
     einfach <tt>-b</tt> zur Befehlszeile hinzu:
   </p>
   <p>
    <example>
$ apt-get -b source Paketname
</example>
   </p>
   <p>
     Wenn Sie sich dazu entscheiden, das Paket noch nicht beim Herunterladen 
     zu erzeugen, können Sie dieses später nachholen, indem Sie den 
     folgenden Befehl in dem Verzeichnis, in dem das Paket nach dem 
     Herunterladen entpackt wurde, ausführen:
   </p>
   <p>
    <example>
$ dpkg-buildpackage -rfakeroot -uc -b
</example>
   </p>
   <p>
     Beachten Sie, dass Sie zum Bauen der meisten Pakete zumindest die 
     folgenden Pakete benötigen: <package>devscripts</package>, 
     <package>dpkg-dev</package>, <package>debhelper</package> und 
     <package>fakeroot</package>; werfen Sie einen Blick auf <ref 
     id="install"> und installieren Sie diese, bevor Sie fortfahren. Die 
     meisten Pakete hängen auch von Kompilierungs-Werkzeugen ab, so dass es 
     nützlich ist, auch das Paket <package>build-essential</package> zu 
     installieren. Andere Pakete könnten gebraucht werden, werfen Sie einen 
     Blick auf <ref id="build-dep"> für weitere Informationen.
   </p>
   <p>
     Um das von den obigen Befehlen erzeugte Paket zu installieren muss man 
     den Paket-Manager direkt benutzen. Werfen Sie einen Blick auf <ref 
     id="manual-install">. Das Paket <package>devscripts</package> enthält 
     ein nützliches Werkzeug: <prgn>debi</prgn>. Falls Sie <prgn>debi</prgn> 
     innerhalb des Verzeichnisses des Quellpaket ausführen, sucht es nach 
     der <tt>.changes</tt>-Datei im übergeordneten Verzeichnis, um 
     herauszufinden, welche Binärpakete das Quellpaket erzeugt, und es führt 
     <prgn>dpkg</prgn> aus, um diese zu installieren. Dies ist in den 
     meisten Fällen nützlich, außer wenn das Quellpaket kollidierende 
     Binärpakete erzeugt. Natürlich brauchen Sie Root-Rechte, um dies 
     auszuführen.
   </p>
   <p>
     Es besteht ein Unterschied zwischen <prgn>apt-get</prgn>s Methode 
     <tt>source</tt> und seinen anderen Methoden. Die 
     <tt>source</tt>-Methode kann von normalen Benutzern ohne Root-Rechte 
     benutzt werden. Die Dateien werden in das Verzeichnis heruntergeladen, 
     aus dem der Befehl <tt>apt-get source Paket</tt> aufgerufen wurde.
   </p>
  </sect>
  <sect id="build-dep">
   <heading>
     Für das Kompilieren eines Quellpaketes notwendige Pakete
   </heading>
   <p>
     Normalerweise müssen sich spezielle Header-Dateien und Bibliotheken auf 
     dem System befinden, um ein Quellpaket zu kompilieren. Alle Quellpakete 
     haben ein Feld mit Namen »Build-Depends:« in ihrer Kontrolldatei, 
     welches die Namen der zusätzlichen Pakete enthält, die für das Erzeugen 
     des Paketes aus dem Quellcode nötig sind. Einige grundlegende Pakete 
     werden ebenfalls benötigt, siehe <ref id="source">, bevor Sie 
     fortfahren.
   </p>
   <p>
     APT bietet eine einfache Möglichkeit diese Pakete 
     herunterzuladen. Führen Sie einfach <tt>apt-get build-dep Paket</tt> 
     aus, wobei »Paket« für den Namen des Pakets, welches Sie erzeugen 
     wollen, steht. Beispiel:
   </p>
   <p>
    <example>
# apt-get build-dep gmc
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden NEUEN Pakete werden installiert:
  comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
  libgpmg1-dev 
0 aktualisiert, 7 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
Es müssen 1069kB Archive geholt werden. Nach dem Auspacken werden 3514kB
benutzt.
Möchten Sie fortfahren? [J/n]
</example>
   </p>
   <p>
     Die Pakete, die installiert werden, werden gebraucht, um 
     <package>gmc</package> korrekt zu erzeugen. Es ist wichtig zu beachten, 
     dass dieser Befehl nicht das Quellpaket des zu bauenden Programms 
     herunterlädt. Sie müssen hierfür zusätzlich <tt>apt-get source</tt> 
     ausführen.
   </p>
   <p>
     Falls Sie nur feststellen möchten, welche Pakete zum Bau eines 
     bestimmten Paketes benötigt werden, gibt es eine Methode 
     <tt>showpkg</tt> des Befehls <prgn>apt-cache</prgn> (siehe <ref 
     id="search">), die neben anderer Informationene die Zeile 
     <tt>Build-Depends</tt> aufführt, die ihrerseits die erforderlichen 
     Pakete auflistet.
   </p>
   <p>
    <example>
# apt-cache showsrc <var>Paket</var>
</example>
   </p>
  </sect>
  <sect id="source-debuging">
   <heading>
     Ein Paket zur Fehlersuche bauen
   </heading>
   <p>
     Wenn Sie ein Paket zum Zwecke der Fehlersuche bauen wollen, zum 
     Beispiel um einen Fehler zu melden -- oder zu reparieren, können Sie 
     einfache Umgebungsvariablen benutzen, die von den meisten 
     Debian-Paketen unterstützt werden.
   </p>
   <p>
     Um ein Paket zu bauen, das ungestrippte<footnote><p>Debian strippt für 
     gewöhnlich alle ausgelieferten Binärdateien und Bibliotheken. Das 
     heißt, dass alle Symbole zur Fehlersuche entfernt 
     werden.</p></footnote> Binärdateien enthält, müssen Sie dem Bau-Befehl 
     nur <tt>DEB_BUILD_OPTIONS=nostrip</tt> voranstellen. Optimierungen 
     können ebenfalls die Fehlersuche erschweren, deshalb können Sie sie 
     durch Hinzufügen von <tt>noopt</tt> zu der Variablen DEB_BUILD_OPTIONS 
     ebenfalls deaktivieren. Ein Beispiel:
   </p>
   <p>
    <example>
$ DEB_BUILD_OPTIONS="nostrip noopt" dpkg-buildpackage -rfakeroot -uc -b
</example>
   </p>
  </sect>
  <sect id="changing-source">
   <heading>
     Anpassen von Optionen des Paket-Baus
   </heading>
   <p>
     Wenn Sie die Art und Weise anpassen wollen, wie das Paket gebaut wird, 
     müssen Sie daran gehen, die Datei <file>debian/rules</file> zu 
     editieren. Dies heißt: Innerhalb des Hauptverzeichnisses, das erzeugt 
     wird wenn das Quellpaket entpackt wird, ist ein Verzeichnis 
     <tt>debian</tt>, das viele Dateien enthält. Eine davon ist besonders: 
     Die Datei <file>rules</file>.
   </p>
   <p>
     Diese Datei ist für gewöhnlich ein Makefile, das Ziele hat zum 
     Konfigurieren, Bauen, Installieren und Erzeugen des Pakets. Falls Sie 
     zum Beispiel das Paket <package>luola</package><footnote><p>Ein sehr 
     nettes Kampfspiel mit Schiffen, dem ein Netzwerk-Modus 
     fehlt. Irgendwelche Mitspieler?</p></footnote> ohne Sound bauen wollen, 
     kann ich, nachdem ich seine Quellen heruntergeladen und entpackt habe, 
     die Datei <file>debian/rules</file> editieren, die wie folgt aussieht:
   </p>
   <p>
    <example>
[...]
configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.
	./configure $(confflags) \
		--prefix=/usr \
		--mandir=share/man \
		--infodir=share/info \
		--datadir=share/games \
		--bindir=games \
		--enable-sound
#		 --enable-sdl-gfx	

	touch configure-stamp
[...]
</example>
   </p>
   <p>
     Sehen Sie den Schalter <tt>--enable-sound</tt>? Falls ich ihn entferne 
     oder durch <tt>--disable-sound</tt> ersetze und dann das Paket unter 
     Benutzung der in <ref id="source"> beschriebenen Technik neu baue, habe 
     ich ein luola-Paket, das ohne Sound gebaut wurde.
   </p>
   <p>
     Wenn Sie wirklich auf einer täglichen Basis mit Quellpaketen arbeiten 
     möchten, würde ich hauptsächlich das Lesen des <url 
     id="http://www.debian.org/doc/maint-guide/" name="Debian New 
     Maintainers Guide"> (Führer für neue Debian-Betreuer) und des <url 
     id="http://www.debian.org/doc/debian-policy/" name="Debian Policy"> 
     (Debian-Richtlinien-Handbuch) vorschlagen. Andere in der <url 
     id="http://www.debian.org/devel/" name="Debian Developers Corner"> 
     (Debians Entwicklerecke) verfügbare Dokumentation mag ebenfalls 
     nützlich sein.
   </p>
  </sect>
  <sect id="equivs">
   <heading>
     Aber heh, ich will den Debian-Kram nicht benutzen!
   </heading>
   <p>
     Manchmal will man spezielle Versionen eines Programms benutzen, die nur 
     als Quellcode verfügbar sind und nicht als Debian-Paket. Hier kann es 
     allerdings Probleme mit dem Paket-System geben. Angenommen Sie wollen 
     eine neue Version Ihres Mailservers kompilieren und alles klappt, aber 
     viele Pakete in Debian hängen von einem MTA (Mail Transfer Agent) 
     ab. Da etwas installiert wurde, was Sie selbst kompiliert haben, weiß 
     das Paketsystem darüber nicht Bescheid.
   </p>
   <p>
     Hier kommt das <package>equivs</package> ins Spiel. Um es zu benutzen, 
     installieren Sie das Paket mit diesem Namen. Es erstellt ein leeres 
     Paket, das die Abhängigkeiten erfüllt und dem Paketsystem mitteilt, so 
     dass es keine Probleme mit Abhängigkeiten gibt.
   </p>
   <p>
     Bevor wir näher darauf eingehen, ist es wichtig, Sie darauf 
     hinzuweisen, dass es sicherere Möglichkeiten gibt, Programme, für die 
     in Debian schon Pakete existieren, mit anderen Optionen zu kompilieren 
     und man equivs nicht benutzen sollte, um Abhängigkeiten zu entfernen, 
     ohne genau zu wissen, was man tut. Siehe <ref id="source"> für nähere 
     Informationen.
   </p>
   <p>
     Lassen Sie uns mit dem MTA-Beispiel fortfahren. Sie haben also gerade 
     Ihren frisch kompilierten <prgn>postfix</prgn> installiert und wollen 
     nun <package>mutt</package> (ein Mailprogramm) installieren. Plötzlich 
     stellen Sie fest, dass <package>mutt</package> einen anderen MTA 
     installieren möchte, obwohl Sie schon Ihren selbstkompilierten laufen 
     haben.
   </p>
   <p>
     Wechseln Sie in irgendein Verzeichnis (z.B. <file>/tmp</file>), und 
     führen Sie folgendes aus:
   </p>
   <p>
    <example>
# equivs-control <var>Name</var>
</example>
   </p>
   <p>
     Ersetzen Sie <var>Name</var> durch den Namen der Kontrolldatei, die Sie 
     erstellen wollen. Die Datei wird wie folgt erstellt:
   </p>
   <p>
    <example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: &lt;Paketname; wenn nicht angegeben: equivs-dummy&gt;
Version: &lt;Versionsnummer; wenn nicht angegeben: 1.0&gt;
Maintainer: &lt;Ihr Name mit E-Mail-Adresse; wenn nicht angegeben: Benutzername &gt;
Pre-Depends: &lt;Pakete&gt;
Depends: &lt;Pakete&gt;
Recommends: &lt;Pakete&gt;
Suggests: &lt;Pakete&gt;
Provides: &lt;(virtuelles) Paket&gt;
Architecture: all
Copyright: &lt;copyright Datei; normalerweise GPL2&gt;
Changelog: &lt;changelog file; normalerweise ein generisches Changelog&gt;
Readme: &lt;README.Debian file; wenn nicht angegeben, ebenfalls ein generisches&gt;
Extra-Files: &lt;Zusätzliche Dateien für das doc-Verzeichnis, durch Komma getrennt&gt;
Description: &lt;kurze Beschreibung; Standard ist "some wise words"&gt;
 Lange Beschreibung und Info
 .
 Zweiter Absatz
</example>
   </p>
   <p>
     Nun muss das so angepaßt werden, dass es tut, was wir wollen. Gucken 
     Sie sich die Felder und ihre Beschreibungen an, es ist nicht nötig, 
     jedes einzelne hier zu erklären, lassen Sie uns stattdessen ein 
     Beispiel ansehen:
   </p>
   <p>
    <example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Conflicts: mail-transport-agent
Replaces: mail-transport-agent
Provides: mail-transport-agent
</example>
   </p>
   <p>
     Das war es schon. <package>mutt</package> hängt von 
     <package>mail-transport-agent</package> ab, was ein virtuelles Paket 
     ist, was alle MTAs liefern; mta-local meldet sich selbst unter 
     Benutzung des Feldes »Provides« (Liefert) als ein mail-transport-agent 
     an.
   </p>
   <p>
     Die Felder <tt>Conflicts</tt> (Kollidiert) und <tt>Replaces</tt> 
     (Ersetzt) werden ebenfalls benötigt, so dass <prgn>APT</prgn> und 
     <prgn>dpkg</prgn> wissen, dass sie das aktuell installiert MTA-Paket 
     zugunsten des neuen, das Sie installieren, entfernen sollten.
   </p>
   <p>
     Nun muss das Paket nur noch gebaut werden:
   </p>
   <p>
    <example>
# equivs-build <var>name</var>
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: Baue Paket »<var>Name</var>« in »../<var>Name</var>_1.0_all.deb«.

The package has been created.
Attention, the package has been created in the current directory,
</example>
   </p>
   <p>
     Und installieren Sie das erzeugte <tt>.deb</tt> (siehe <ref 
     id="manual-install">.
   </p>
   <p>
     Wie man erkennen kann, gibt es verschiedene Anwendungen für 
     <prgn>equivs</prgn>. Man könnte sogar ein <tt>Favoriten</tt>-Paket 
     erstellen, was von den Paketen abhängt, die Sie normalerweise 
     installieren. Lassen Sie Ihren Vorstellungen einfach freien Lauf, aber 
     seien Sie vorsichtig.
   </p>
   <p>
     Es ist wichtig zu erwähnen, dass es in 
     <file>/usr/share/doc/equivs/examples</file> einige 
     Beispiel-Kontrolldateien gibt. Werfen Sie mal einen Blick darauf.
   </p>
  </sect>
 </chapt>
 <chapt id="search">
  <heading>
    Informationen über Pakete bekommen
  </heading>
  <p>
    Es gibt einige Front-End Programme für das APT-System, die es 
    signifikant einfacher machen, Listen über verfügbare oder schon 
    installierte Pakete zu bekommen oder auch herauszufinden, zu welcher 
    Sektion ein Paket gehört, welche Priorität es hat, wie seine 
    Beschreibung lautet, usw.
  </p>
  <p>
    Unser Ziel aber hier ist, APT selbst benutzen zu lernen. Wie können wir 
    also den Namen eines Paketes herausfinden, welches wir installieren 
    wollen?
  </p>
  <p>
    Dies ist es, was diese Kapitel beantworten möchte. Lassen Sie uns unsere 
    Optionen austesten.
  </p>
  <sect id="cache">
   <heading>
     Paketnamen entdecken
   </heading>
   <p>
     Angenommen, Sie wollen die alten Zeiten des Atari 2600 wieder aufleben 
     lassen. Sie möchten APT benutzen, um einen Atari-Emulator zu 
     installieren und dann Spiele herunterladen. Sie haben folgende 
     Möglichkeit:
   </p>
   <p>
    <example>
$ aptitude search atari
p   atari-fdisk-cross               - Partition editor for Atari (running on no
p   atari800                        - Atari emulator for X/curses/SDL
p   console-keymaps-atari           - Keymaps for Atari keyboards.
</example>
   </p>
   <p>
     Wir finden einige Pakete, die zu dem, was wir suchen, in Beziehung 
     stehen, zusammen mit kurzen Beschreibungen. Der Buchstabe »<tt>p</tt>« 
     am Zeilenanfang ist ähnlich der Notation, die in <prgn>aptitude</prgn>s 
     Curses Benutzerschnittstelle benutzt wird. Er bedeutet also, dass das 
     Paket nicht installiert ist. Es ist wichtig zu beachten, dass 
     <prgn>aptitude</prgn> standardmäßig nur Paketnamen durchsucht. Sie 
     können alle Such-Optionen benutzen, die <prgn>aptitude</prgn> 
     bereitstellt, die Sie im Benutzerhandbuch finden können. Um zum 
     Beispiel die Beschreibungen zu durchsuchen, können Sie folgendes 
     benutzen:
   </p>
   <p>
    <example>
$ aptitude search ~datari 
p   aranym                          - Atari Running on Any Machine
p   atari-fdisk-cross               - Partition editor for Atari (running on no
p   atari800                        - Atari emulator for X/curses/SDL
p   circuslinux                     - The clowns are trying to pop balloons to
p   circuslinux-data                - Data files for circuslinux
p   console-keymaps-atari           - Keymaps for Atari keyboards.
[...]
p   stella                          - Atari 2600 Emulator for SDL & X windows
[...]
</example>
   </p>
   <p>
     Wie wir sehen, werden jetzt viel mehr Pakete zurückgegeben. Nun, da wir 
     eine Liste möglicher Lösungen für unser Problem gefunden haben, lassen 
     Sie uns einen Schritt tiefer gehen:
   </p>
   <p>
    <example>
$ aptitude show stella
Paket: stella
Zustand: nicht installiert
Version: 2.2-1
Priorität: optional
Bereich: contrib/otherosfs
Verwalter: Mario Iseli &lt;admin@marioiseli.com&gt;
Unkomprimierte Größe: 2998k
Hängt ab von: libc6 (>= 2.3.5-1), libgcc1 (>= 1:4.1.0), libpng12-0 (>=
              1.2.8rel), libsdl1.2debian (> 1.2.7+1.2.8), libstdc++6 (>= 4.1.0),
              zlib1g (>= 1:1.2.1)
Beschreibung: Atari 2600 Emulator for SDL & X windows
 Stella is a portable emulator of the old Atari 2600 video-game console written
 in C++.  You can play most Atari 2600 games with it. 
 
 Homepage: http://stella.sf.net/

</example>
   </p>
   <p>
     Mit dieser Ausgabe erhalten Sie eine Menge Details über das Paket, das 
     Sie installieren wollen (oder nicht wollen) inklusive der vollständigen 
     Beschreibung des Pakets. Sie können auch das Programm 
     <prgn>apt-cache</prgn> benutzen, um solche Informationen zu 
     bekommen. Falls Sie dieses Werkzeug benutzen, ist es fähig mehrere 
     verfügbare Versionen eines Paketes anzuzeigen, zum Beispiel:
   </p>
   <p>
    <example>
$ apt-cache show muine
Package: muine
Version: 0.5.0-1
Priority: optional
Section: gnome
Maintainer: Link Dupont &lt;link@subpop.net&gt;
Depends: gstreamer-gconf (>= 0.6.4), libatk1.0-0 (>= 1.4.1), libbonobo2-0 (>= 2.4.3), libc6 (>= 2.3.2.ds1-4), libflac4, libgconf2-4 (>= 2.4.0.1), libgdbm3, libglib2.0-0 (>= 2.2.3), libgnomevfs2-0 (>= 2.4.1), libgnomevfs2-common (>= 2.4.1), libgstreamer0.6-0 (>= 0.6.1-2), libgtk2.0-0 (>= 2.2.1), libid3tag0 (>= 0.15.0b), libogg0 (>= 1.1.0), liborbit2 (>= 1:2.8.0), libpango1.0-0 (>= 1.2.1), libvorbis0a (>= 1.0.1), libvorbisfile3 (>= 1.0.1), libxml2 (>= 2.6.7), zlib1g (>= 1:1.2.1), gconf2 (>= 2.4.0), mono-jit (>= 0.30) | cli-virtual-machine, gtk-sharp (>= 0.17), gconf-sharp (>= 0.17), gnome-sharp (>= 0.17)
Architecture: i386
Filename: ./pool/main/m/muine/muine_0.5.0-1_i386.deb
Size: 164314
Installed-Size: 692
MD5sum: 9885f13e5ef4f76b3bf6fe7bb3ea8634
Description: Simple music player
 Muine is an innovative music player. It has a simple interface designed to
 allow the user to easily construct playlists from albums and/or single songs.
 Its goal is to be simply a music player, not to become a robust music
 management application.
 
Package: muine
Priority: optional
Section: gnome
Installed-Size: 492
Maintainer: Link Dupont &lt;link@subpop.net&gt;
Architecture: i386
Version: 0.4.0-8
Depends: gstreamer-gconf (>= 0.6.4), libatk1.0-0 (>= 1.4.1), libbonobo2-0 (>= 2.4.3), libc6 (>= 2.3.2.ds1-4), libflac4, libgconf2-4 (>= 2.4.0.1), libgdbm3, libglib2.0-0 (>= 2.2.3), libgnomevfs2-0 (>= 2.4.1), libgnomevfs2-common (>= 2.4.1), libgstreamer0.6-0 (>= 0.6.1-2), libgtk2.0-0 (>= 2.2.1), libid3tag0 (>= 0.15.0b), libogg0 (>= 1.1.0), liborbit2 (>= 1:2.8.0), libpango1.0-0 (>= 1.2.1), libvorbis0a (>= 1.0.1), libvorbisfile3 (>= 1.0.1), libxml2 (>= 2.6.6), zlib1g (>= 1:1.2.1), gconf2 (>= 2.4.0), mono-jit (>= 0.30) | cli-virtual-machine, gtk-sharp (>= 0.16), gconf-sharp (>= 0.16), gnome-sharp (>= 0.16)
Filename: pool/main/m/muine/muine_0.4.0-8_i386.deb
Size: 139864
MD5sum: e746709ad6a6fcc1e9c46b46b3d6e5b2
Description: Simple music player
 Muine is an innovative music player. It has a simple interface designed to
 allow the user to easily construct playlists from albums and/or single songs.
 Its goal is to be simply a music player, not to become a robust music
 management application.
</example>
   </p>
   <p>
     Für allgemeinere Informationen über ein Paket können Sie folgendes 
     benutzen:
   </p>
   <p>
    <example>
# apt-cache showpkg penguin-command
Package: penguin-command
Versions: 
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends: 
Dependencies: 
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) 
Provides: 
1.4.5-1 - 
Reverse Provides:  
</example>
   </p>
   <p>
     Und um nur herauszufinden, von welchen Paketen es abhängt:
   </p>
   <p>
    <example>
# apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g
</example>
   </p>
   <p>
     Zusammengefaßt haben wir eine handvoll Waffen, die wir benutzen können, 
     um den Namen des Paketes herauszufinden, das wir installieren wollen.
   </p>
  </sect>
  <sect id="dpkg-search">
   <heading>
     Paketnamen mit dpkg finden
   </heading>
   <p>
     Ein Weg, den Namen eines Pakets zu finden, ist, den Namen einer 
     wichtigen Datei zu kennen, die sich in dem Paket befindet. Um zum 
     Beispiel das Paket zu finden, welches eine bestimmte »<tt>.h</tt>« 
     Datei enthält, die für das Kompilieren eines Programms benötigt wird, 
     ist folgendes auszuführen:
   </p>
   <p>
    <example>
# dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
</example>
   </p>
   <p>
     oder:
   </p>
   <p>
    <example>
# dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h
</example>
   </p>
   <p>
     Beachten Sie, dass diese Methode nur Paketnamen von Paketen findet, die 
     auf Ihrem System installiert sind. Sie müssen <prgn>auto-apt</prgn> 
     (siehe <ref id="auto-apt">) oder <prgn>apt-file</prgn> (siehe <ref 
     id="apt-file">) benutzen, um nach Dateien in nicht-installierten 
     Paketen zu suchen. Sie können auch einen Blick auf das Webangebot <url 
     id="http://packages.debian.org/" name="http://packages.debian.org/"> 
     werfen. Um die Namen der auf Ihrem System installierten Pakete 
     aufzulisten, was zum Beispiel nützlich ist, falls Sie planen, Ihre 
     Festplatte aufzuräumen, können Sie folgendes ausführen:
   </p>
   <p>
    <example>
# dpkg -l | grep mozilla
ii  mozilla-browse 0.9.6-7        Mozilla Web Browser
</example>
   </p>
   <p>
     Das Problem mit diesem Befehl ist, dass er Paketnamen »brechen« 
     kann. Im obigen Beispiel ist der ganze Name des Pakets 
     <tt>mozilla-browser</tt>. Um das Problem zu beheben, können Sie die 
     Umgebungsvariable <tt>COLUMNS</tt> folgendermaßen benutzen:
   </p>
   <p>
    <example>
[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser
</example>
   </p>
  </sect>
  <sect id="apt-file">
   <heading>
     Herausfinden, zu welchem Paket eine Datei gehört 
   </heading>
   <p>
     Wenn ein Paket installiert werden soll und Sie nicht herausfinden 
     können, wie es heißt, indem Sie mit <prgn>apt-cache</prgn> suchen, aber 
     den Dateinamen des Programms oder einer Datei, die zu dem Paket gehört 
     kennen, können Sie <prgn>apt-file</prgn> benutzen, um den Dateinamen zu 
     finden. Das wird folgendermaßen gemacht:
   </p>
   <p>
    <example>
$ apt-file search <var>Dateinamen</var>
</example>
   </p>
   <p>
     Es funktioniert genau wie <tt>dpkg -S</tt>, es zeigt Ihnen aber auch 
     nicht installierte Pakete, die die Datei enthalten. Man kann es auch 
     dazu benutzen, benötigte include-Dateien, die beim Kompilieren von 
     Programmen fehlen, zu installieren, allerdings ist 
     <prgn>auto-apt</prgn> eine wesentlich bessere Methode solche Fälle zu 
     lösen, siehe <ref id="auto-apt">.
   </p>
   <p>
     Man kann auch den Inhalt von Paketen auflisten:
   </p>
   <p>
    <example>
$ apt-file list <var>Paketname</var>
</example>
   </p>
   <p>
     <prgn>apt-file</prgn> hat genau wie auto-apt eine Datenbank über die 
     Dateien aller Pakete und diese muss aktuell gehalten werden. Dies wird 
     erledigt durch:
   </p>
   <p>
    <example>
# apt-file update
</example>
   </p>
   <p>
     Standardmäßig benutzt <prgn>apt-file</prgn> die gleiche Datenbank wie 
     <prgn>auto-apt</prgn>, siehe <ref id="auto-apt">.
   </p>
  </sect>
  <sect id="info-web">
   <heading>
     Informationen über Pakete im Web
   </heading>
   <p>
     Es gibt viele Web-Resourcen mit Informationen über die in der 
     Debian-Distribution verfügbaren Pakete, die meisten richten sich 
     hauptsächlich an Debian-Entwickler, aber viele von ihnen können auch 
     für Benutzer nützlich sein.
   </p>
   <p>
     Die <url id="http://packages.debian.org/" name="Debian Packages Pages"> 
     (Paket-Seiten) lassen Sie nach Paketen suchen, die für die 
     verschiedenen Architekturen, die Debian unterstützt, verfügbar sind, 
     und auch nach dem Inhalt aller Debian-Pakete. Es gibt Informationen 
     bezüglich Abhängigkeiten und anderer Beziehungengen mit anderen 
     Paketen. Es gibt ebenso Links um Quell- und Binärpaket für alle 
     Architekturen herunter zu laden. Sie können einen Shortcut 
     <tt>http://packages.debian.org/<var>Paketname</var></tt> benutzen, um 
     schnellen Zugriff auf ein Paket zu bekommen.
   </p>
   <p>
     Das <url id="http://packages.qa.debian.org/" name="Package Tracking 
     System"> (Paket-Verfolgungs-System) liefert Informationen darüber, was 
     kürzlich mit einem Paket geschehen ist, was die zu erledigenden Punkte 
     aus der Sicht eines Debian-Betreuers sind, liefert eine Zusammenfassung 
     der Fehlerberichte, und einige mehr sehr nützliche Informationen. Eines 
     der netten Dinge des Paket-Verfolgungs-Systems ist die Möglichkeit, 
     sich für ein Paket »einzuschreiben«, um alle E-Mails zu verfolgen, die 
     gewöhnlich der Betreuer des Paketes bekommt. Auf diese Weise können Sie 
     die Entwicklung der Pakete verfolgen, die entscheidend sind für Ihre 
     Arbeit oder Ihr Hobby. Auch hier funktioniert der Shortcut 
     <tt>http://packages.qa.debian.org/<var>Paketname</var></tt>.
   </p>
   <p>
     Schließlich liefert das <url id="http://bugs.debian.org/" name="Bug 
     Tracking System"> (Fehler-Verfolgungs-System) Informationen über 
     bekannte Fehler in den Paketen, die von Debian verteilt werden. Dies 
     mag für Sie nützlich sein, um herauszufinden, warum etwas nicht so 
     funktioniert, wie Sie erwarten, und sogar um Lösungen und Work-Arounds 
     in den Fehler-Aufzeichnungen zu finden. Lesen Sie diese Seiten und ihre 
     Dokumentation auch, um in der Lage zu sein, gute Fehlerberichte für 
     Debian einreichen zu können. Der Shortcut 
     <tt>http://bugs.debian.org/<var>Paketname</var></tt> funktioniert auch 
     hier wie erwartet, aber das BTS (Bug Tracking System) akzeptiert auch 
     andere sehr nützliche Shortcuts, wie zum Beispiel 
     <tt>http://bugs.debian.org/src:<var>Paketname</var></tt> um alle 
     Fehlerberichte aller Binärpakete, die vom angebenen Quellpaket 
     geliefert werden, anzuzeigen.
   </p>
  </sect>
 </chapt>
 <chapt id="tricks">
  <heading>
    Tricks und Techniken
  </heading>
  <sect id="auto-apt">
   <heading>
     Wie Pakete »nach Bedarf« installieren
   </heading>
   <p>
     Sie kompilieren gerade ein Programm, und wie aus heiterem Himmel - 
     Boom! Es gibt einen Fehler, da eine <tt>.h</tt> Datei gebraucht wird, 
     die Sie nicht haben. Das Programm <prgn>auto-apt</prgn>, enthalten im 
     Paket desselben Namens, kann Sie vor solchen Szenarios bewahren. Es 
     fragt, ob es die benötigten Pakete installieren soll, nachdem es den 
     betroffenden Prozess gestoppt hat und führt ihn fort, wenn die 
     relevanten Pakete installiert sind.
   </p>
   <p>
     Der Befehl sieht folgendermaßen aus:
   </p>
   <p>
    <example>
# auto-apt run <var>Befehl</var>
</example>
   </p>
   <p>
     Wobei <var>Befehl</var> der Befehl ist, der ausgeführt werden soll und 
     evtl. nicht vorhandene Dateien benötigt. Beispiel:
   </p>
   <p>
    <example>
# auto-apt run ./configure
</example>
   </p>
   <p>
     Es wird fragen, ob die benötigten Pakete installiert werden sollen, und 
     <prgn>apt-get</prgn> automatisch aufrufen. Wenn X läuft, ersetzt eine 
     grafische Oberfläche die übliche Text-Oberfläche.
   </p>
   <p>
     Auto-apt funktioniert mit einer Datenbank, welche aktuell gehalten 
     werden muss, um effektiv zu funktionieren. Das erreicht man mit den 
     Kommandos <tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> und 
     <tt>auto-apt update-local</tt>.
   </p>
  </sect>
  <sect id="apt-proxy">
   <heading>
     Pakete zwischenspeichern
   </heading>
   <p>
     Falls Sie mehrere Maschinen in einem Netzwerk haben, wäre es nützlich 
     ein System zur Paketzwischenlagerung zu haben, so dass Sie die Pakete 
     nicht für jede Maschine herunterladen müssen. Diese Anleitung befasst 
     sich mit dem Paket <package>apt-proxy</package>, das genau dies tut. Es 
     gibt jedoch andere Lösungen, wie <package>apt-cacher</package>. Sie 
     mögen jede ausprobieren wollen, um die auszuwählen, die am besten Ihren 
     Bedürfnissen entspricht.
   </p>
   <p>
     Zuallererst installieren Sie das Paket <package>apt-proxy</package>. Es 
     registriert sich beim <prgn>inetd</prgn>, um auf Anfragen auf Port 9999 
     zu warten, Sie mögen den Dienst <prgn>inetd</prgn> neustarten müssen.
   </p>
   <p>
     Als nächstes werden Sie die Datei 
     <file>/etc/apt-proxy/apt-proxy.conf</file> editieren wollen. Sie listet 
     die wahren Server auf, von denen <prgn>apt-proxy</prgn> Paketlisten und 
     Pakete herunterlädt. Sie können http, ftp und rsync als 
     Transfermethoden benutzen. Die Datei hat ein Standard-»Backend«, das 
     wie folgt aussieht:
   </p>
   <p>
    <example>
add_backend /debian/                                    \
        $APT_PROXY_CACHE/debian/                        \
        http://ftp.us.debian.org/debian/                \
        http://ftp.de.debian.org/debian/                \
        http://ftp.uk.debian.org/debian/                \
        +ftp.us.debian.org::debian/
</example>
   </p>
   <p>
     Dies heißt, dass wann immer ein Client versucht, etwas aus 
     <file>/debian/</file> zu bekommen, benutzt <prgn>apt-proxy</prgn> 
     seinen Zwischenspeicher, die aufgelisteten HTTP-Spiegel und einen 
     RSYNC-Server, von dem bevorzugt die Paketlisten heruntergeladen werden 
     (Das Zeichen »+« bedeutet bevorzugt für Kontroll-Dateien).
   </p>
   <p>
     Wie benutzt nun ein Client dieses Backend? Durch Hinzufügen folgender 
     Zeile zur Datei <file>/etc/apt/sources.list</file> auf den Clients 
     (einschließlich des Rechners, auf dem <prgn>apt-proxy</prgn> 
     installiert ist):
   </p>
   <p>
    <example>
deb http://<var>server</var>:9999/debian/ stable main
</example>
   </p>
   <p>
     Die Zeile sieht sehr wie eine normal Zeile aus. Der Unterschied hier 
     ist, dass Sie dort Ihren <prgn>apt-proxy</prgn>-Server setzen, wo Sie 
     normalerweise einen HTTP- oder FTP-Spiegel setzen, dass Sie einen 
     Port-Wert benutzen (9999) und dann das Backend auswählen 
     (/debian/). Nachdem Sie all diese anfänglichen Einstellungen erledigt 
     haben, updaten Sie die Paketliste auf einer der Maschinen und 
     aktualisieren Sie sie, so dass sie nur ein Paket gleichzeitig 
     herunterlädt. Nachdem die erste Maschine auf den aktuellen Stand 
     gebracht wurde, aktualisieren Sie die anderen.
   </p>
   <p>
     Sie können den Befehl <prgn>apt-proxy-import</prgn> benutzen, um die 
     Pakete zu importieren, die sich in Ihrem aktuellen APT-Zwischenspeicher 
     (<file>/var/cache/apt/archives/</file> befinden, indem Sie 
     <tt>apt-proxy-import /var/cache/apt/archives</tt> ausführen. Beachten 
     Sie, dass Sie auf mindestens einem Client den Aktualisierungsprozeß 
     durchführen müssen, um <prgn>apt-proxy</prgn>s Zwischenspeicher zu 
     initialisieren, bevor Sie <prgn>apt-proxy-import</prgn> benutzen.
   </p>
   <p>
     Sie können mehr über <prgn>apt-proxy</prgn> erfahren, indem Sie die 
     Kommentare in der Datei <file>/etc/apt-proxy/apt-proxy.conf</file> 
     lesen. Um zum Beispiel <prgn>apt-proxy</prgn> mit HTTP- und FTP-Proxies 
     zu benutzen, finden Sie am Ende der Datei Beispielkonfigurationen.
   </p>
  </sect>
  <sect id="netselect">
   <heading>
     Entscheidung - Welcher Spiegel ist der beste für die sources.list: 
     netselect, netselect-apt
   </heading>
   <p>
     Eine häufige Frage der meist neuen Benutzer ist: »Welchen 
     Debian-Spiegel soll ich in die <tt>sources.list</tt> eintragen?«. Es 
     gibt viele Wege, sich für einen Mirror zu entscheiden. Die Experten 
     haben möglicherweise ein Skript, welches den Ping der verschiedenen 
     Spiegel vergleicht. Aber es gibt ein Programm, das dies für uns 
     erledigt: <prgn>netselect</prgn>.
   </p>
   <p>
     Man installiert <package>netselect</package> wie üblich:
   </p>
   <p>
    <example>
# aptitude install netselect
</example>
   </p>
   <p>
     Wenn man es ohne Parameter ausführt, zeigt es seinen Hilfetext 
     an. Führt man es mit einer durch Leerzeichen separierten Liste von 
     Hostnamen (Spiegeln) aus, gibt es uns einen Hostnamen zusammen mit der 
     einer Punktzahl zurück. Diese Punktzahl berücksichtigt die erwarteten 
     Pingzeit und die Zahl der Hops (Rechner, die eine Netzwerkanfrage 
     passiert, um ihren Zielort zu erreichen) und ist antiproportional zur 
     erwarteten Downloadgeschwindigkeit (also je niedriger, desto 
     besser). Angezeigt wird nur der Host mit der niedrigsten Punktzahl (Die 
     ganze Liste der Mirrors kann mit der Option -vv angesehen werden). Zum 
     Beispiel:
   </p>
   <p>
    <example>
# netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
  365 ftp.debian.org.br
#
</example>
   </p>
   <p>
     Das bedeutet, dass von den Mirrors die als Parameter an netselect 
     übergeben wurden, <tt>ftp.debian.org.br</tt> der beste war mit einer 
     Punktzahl von 365. (Achtung! Weil es auf meinem Computer ausgeführt 
     wurde und die Netzwerktopographie extrem unterschiedlich und abhängig 
     vom Standort des Computers ist, ist dieser Wert nicht notwendigerweise 
     die richtige Geschwindigkeit für andere Computer).
   </p>
   <p>
     Jetzt tragen Sie einfach den schnellsten Spiegel in die Datei 
     <tt>/etc/apt/sources.list</tt> ein (siehe <ref id="sources.list">) und 
     befolgen Sie die Tipps in <ref id="apt-get">.
   </p>
   <p>
     <strong>Hinweis:</strong> Die Liste der Spiegel ist immer auf <url 
     id="http://www.debian.org/mirror/mirrors_full" 
     name="http://www.debian.org/mirror/mirrors_full"> zu finden.
   </p>
   <p>
     Ab Version 0.3 enthält das netselect-Paket das 
     <strong>netselect-apt</strong>-Script, das obigen Prozess 
     automatisiert. Übergeben Sie einfach die Distribution als Parameter 
     (Der Standardwert ist stable) und die <tt>sources.list</tt> wird mit 
     den besten »main«- Spiegeln generiert und im aktuellen Verzeichnis 
     gespeichert. Das folgende Beispiel generiert eine sources.list für die 
     stabile Distribution:
   </p>
   <p>
    <example>
# ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list
#
</example>
   </p>
   <p>
     <strong>Hinweis:</strong> Die <tt>sources.list</tt> wird im aktuellen 
     Verzeichnis erzeugt und muss nach <tt>/etc/apt</tt> verschoben werden.
   </p>
  </sect>
  <sect id="localepurge">
   <heading>
     Entfernen von unbenutzten locale-Dateien: localepurge
   </heading>
   <p>
     Viele Debian-Benutzer verwenden nur ein locale (Spracheinstellung). Ein 
     brasilianischer Debian-Benutzer benutzt z.B. vermutlich immer das 
     brasilianische <tt>pt_BR</tt>-locale und interessiert sich nicht für 
     das spanische <tt>es</tt>-locale.
   </p>
   <p>
     <package>localepurge</package> ist ein sehr nützliches Werkzeug für 
     diese Art von Benutzern. Sie können eine Menge Festplattenplatz sparen, 
     wenn Sie nur die locales installiert haben, die Sie auch wirklich 
     brauchen. Installieren Sie einfach <tt>apt-get install 
     localepurge</tt>.
   </p>
   <p>
     Es ist wirklich einfach zu konfigurieren, Debconf-Fragen führen den 
     Benutzer Schritt für Schritt durch die Konfiguration. Seien Sie 
     vorsichtig beim Beantworten der ersten Frage, da falsche Antworten alle 
     locales entfernen können - selbst die, die Sie benutzen. Die einzige 
     Möglichkeit, sie wiederherzustellen, ist, alle Pakete neu zu 
     installieren, die sie enthalten.
   </p>
  </sect>
  <sect id="apt-listchanges">
   <heading>
     Wie über Änderungen in Paketen informiert bleiben
   </heading>
   <p>
     Jedes Paket installiert in sein Dokumentationsverzeichnis 
     (<tt>/usr/share/doc/Paketname</tt>) eine Datei mit Namen 
     <tt>changelog.Debian.gz</tt>, welche die Liste der Änderungen gegenüber 
     der letzten Version enthält. Sie können diese Dateien z.B. mit Hilfe 
     von <tt>zless</tt> lesen, aber es ist nicht wirklich leicht, nach einem 
     System-Upgrade nach dem changelog jedes aktualisierten Paketes zu 
     suchen.
   </p>
   <p>
     Es gibt aber eine Möglichkeit, diese Aufgabe zu automatisieren mit 
     Hilfe eines Werkzeugs mit Namen <prgn>apt-listchanges</prgn>. Hierfür 
     muss das Paket <package>apt-listchanges</package> erst einmal 
     installiert werden. Während der Installation übernimmt Debconf die 
     Installation. Beantworten Sie die Fragen nach Ihren Bedürfnissen.
   </p>
   <p>
     Die Option »Soll apt-listchanges automatisch von APT gestartet werden?« 
     ist sehr nützlich, weil es eine Liste von Veränderungen an jedem Paket, 
     das von APT während einer Aktualisierung installiert wird, und läßt Sie 
     sie analysieren, bevor Sie fortfahren.Die Option "Soll apt-listchanges 
     nach dem Anzeigen der Changelogs um eine Bestätigung bitten?" ist sehr 
     nützlich, da es eine Liste der Änderungen jedes Paketes, das während 
     eines Upgrades installiert wird, anzeigt und Ihnen die Möglichkeit 
     bietet, diese vor dem Fortfahren einzusehen. Wenn Sie hier sagen, dass 
     Sie nicht fortfahren möchten, gibt apt-listchanges einen Fehlercode 
     zurück und APT bricht die Installation ab.
   </p>
   <p>
     Nachdem apt-listchanges installiert wurde, zeigt es die Liste der 
     Änderungen installierter Pakete an, wenn Pakete aus dem Netz (oder von 
     einer CD oder gemounteten Partition) heruntergeladen werden, bevor Sie 
     installiert werden.
   </p>
  </sect>
 </chapt>
 <chapt id="repositories">
  <heading>
    Auf der anderen Seite: ein Repository erzeugen
  </heading>
  <p>
    Um ein Repository zu erzeugen, brauchen Sie hauptsächlich eine Reihe von 
    Paketen (Quellen oder Binär) um aus ihnen die Dateien 
    <tt>Packages.gz</tt> und <tt>Sources.gz</tt> zu erzeugen. In einigen 
    Fällen mögen Sie nur Binärpakete haben, aber seien Sie vorsichtig, keine 
    Lizenzen zu verletzen. GPL-lizensierte Software zum Beispiel muss neben 
    den Binärdateien zusammen mit seinen Quellen verteilt werden.
  </p>
  <p>
    Um das zu erledigen, benutzen Sie das Programm 
    <prgn>apt-ftparchive</prgn>, das vom Paket <package>apt-utils</package> 
    installiert wird. Zuerst sammeln Sie all Ihre Pakete in einem 
    Verzeichnis. Sagen wir <file>~/public_html/debian</file>, zum Beispiel; 
    wenn wir dies benutzen, stellen wir bereits unser Repository durch 
    unseren HTTP-Server bereit!
  </p>
  <p>
    Ich kann in dieses Verzeichnis gehen und folgendes ausführen:
  </p>
  <p>
   <example>
$ apt-ftparchive sources . &gt; Sources
$ apt-ftparchive packages . &gt; Packages
$ gzip -c Packages &gt; Packages.gz
$ gzip -c Sources &gt; Sources.gz
</example>
  </p>
  <p>
    Die ersten beiden Befehle durchsuchen das angebene Verzeichnis (in 
    diesem Fall <file>.</file>) und seine Unterverzeichnisse und geben die 
    entstehenden Paketlisten auf der Standardausgabe aus, die wir in die 
    Dateien <file>Sources</file> und <file>Packages</file> umleiten.
  </p>
  <p>
    Falls Sie die <tt>file</tt>-Methode benutzen, um auf das Repository 
    zuzugreifen, sind die ersten beiden Zeilen genug. Falls Sie aber eine 
    Methode für entfernten Zugriff benutzen, wie <tt>FTP</tt> oder 
    <tt>HTTP</tt>, brauchen Sie die komprimierten Versionen, weil APT danach 
    sucht, wenn es die Paketlisten updatet.
  </p>
  <p>
    Hier sind die Quellzeilen, die Sie Ihrer 
    <file>/etc/apt/sources.list</file> hinzufügen können, um APT Ihr 
    Repository bekannt zu machen:
  </p>
  <p>
   <example>
# Dies funktioniert nur bei lokalem Zugriff auf das Dateisystem
deb file:/home/<var>Benutzer</var>/public_html/debian/ ./

# Dies kann von Leuten benutzt werden, die auf Ihre
# Maschine über eine Netzwerkverbindung zugreifen können,
# falls Sie Ihren HTTP-Server entsprechen konfiguriert haben
deb http://<var>Host</var>/~<var>Benutzer</var>/debian/ ./
</example>
  </p>
  <p>
    Sie bekommen eine Vorstellung. So wie wir <prgn>apt-ftparchive</prgn> 
    imselben Verzeichnis, in dem die Pakete lagen, können wir einfach den 
    vollen Pfad dahin, wo die Pakete sind, angeben und ein <tt>./</tt> am 
    Ende anfügen. Sie können es anders machen, indem Sie 
    <prgn>apt-ftparchive</prgn> mit anderen relativen Pfaden aufrufen, statt 
    es in demselben Verzeichnis, in dem die Pakete liegen, aufzurufen. Sie 
    können auch Gruppen von Paketen in Sektionen trennen, wie es Debian 
    tut. Lesen Sie die Manpage <tt>apt-ftparchive(1)</tt> und spielen Sie 
    mit den Möglichkeiten.
  </p>
 </chapt>
 <chapt id="otheruis">
  <heading>
    Alternative Benutzerschnittstellen zur Paketverwaltung
  </heading>
  <p>
    Dieses Howto empfiehlt aptitude als die Haupt-Benutzerschnittstelle zur 
    Paketverwaltung Ihres Debian-Systems. Dies ist, weil, wie wir in diesem 
    Dokument gesagt haben, aptitude eine Reihe von Featuren hat, die das 
    Leben des Administrators einfacher machen.
  </p>
  <p>
    Es gibt jedoch andere Benutzerschnittstellen, sogar grafische, wie 
    Synaptic oder GNOME-APT. In diesem Kapitel werden wir sie durchnehmen.
  </p>
  <sect id="synaptic">
   <heading>
     Synaptic
   </heading>
   <p>
     Synaptic wurde ursprünglich von Alfredo Kojima für Conectiva 
     geschrieben. Heute wird es von Leute aus Conectiva und Debian 
     betreut. Es wurde ursprünglich für Wing, Window Makers grafisches 
     Toolkit, geschrieben, wurde aber für GTK+ umgeschrieben.
   </p>
   <p>
     Um Synaptic zu benutzen, müssen Sie das Paket 
     <package>synaptic</package> installieren.
   </p>
   <p>
     Synaptic ist wahrscheinlich die am besten benutzbare aller grafischen 
     Benutzerschnittstellen für APT, die mit der Endbenutzer die wenigsten 
     Probleme haben.
   </p>
  </sect>
  <sect id="gnome-apt">
   <heading>
     GNOME-APT
   </heading>
   <p>
     GNOME-APT wurde zuerst von Havoc Pennigton und Diego Lages für Debian 
     geschrieben. Es blieb einige Zeit unbetreut, aber die Leute haben es 
     geschafft, es für Woody am Leben zu halten. Für Sarge hat das Paket 
     einen neuen Betreuer bekommen, der es weiterbrachte. Im Gegensatz zu 
     Synaptic ist GNOME-APT für die Leute, die, während sie sich an einer 
     schönen GTK+ Schnittstelle erfreuen, Flexibilität Benutzbarkeit 
     vorziehen.
   </p>
   <p>
     Sie können GNOME-APT benutzen, indem Sie das Paket 
     <package>gnome-apt</package> installieren.
   </p>
  </sect>
 </chapt>
 <chapt id="errors">
  <heading>
    Der Umgang mit Fehlern
  </heading>
  <sect id="common-errors">
   <heading>
     Häufige Fehler
   </heading>
   <p>
     Fehler wird es immer geben. Viele werden durch unachtsame Benutzer 
     verursacht. Im Folgenden finden Sie eine Liste mit häufig gemeldeten 
     Fehlern und wie Sie mit ihnen umgehen sollten.
   </p>
   <p>
     Wenn Sie eine Nachricht erhalten, die aussieht wie die im unteren 
     Beispiel, bei dem Versuch <tt>apt-get install Paket</tt> auszuführen 
     ...
   </p>
   <p>
    <example>
Paketlisten werden gelesen... FertigAbhängigkeitsbaum wird aufgebaut... FertigW: Kann nicht auf die Liste 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) der Quellpakete zugreifen - stat (2 Datei oder Verzeichnis nicht gefunden)
W: Probieren Sie »apt-get update«, um diese Probleme zu korrigieren.
E: Konnte Paket penguineyes nicht finden
</example>
   </p>
   <p>
     haben Sie vergessen <tt>apt-get update</tt> nach Ihrer letzten Änderung 
     in der <tt>/etc/apt/sources.list</tt> auszuführen.
   </p>
   <p>
     Wenn folgender Fehler auftritt ...
   </p>
   <p>
    <example>
E: Konnte Lockdatei /var/lib/dpkg/lock nicht öffnen - open (13 Keine Berechtigung)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
</example>
   </p>
   <p>
     nach dem Versuch, irgend eine andere <prgn>apt-get</prgn>-Methode 
     auszuführen als <tt>source</tt>, haben Sie keine Root-Rechte, d.h. Sie 
     haben sie als normaler Benutzer ausgeführt.
   </p>
   <p>
     Der gleiche Fehler wie oben tritt auf, wenn versucht wird, zweimal 
     <prgn>apt-get</prgn> gleichzeitig auszuführen oder auch, wenn versucht 
     wird <prgn>apt-get</prgn> auszuführen während ein <prgn>dpkg</prgn> 
     Prozess läuft. Die einzige Methode, die simultan zu anderen ausgeführt 
     werden darf, ist die <tt>source</tt>-Methode.
   </p>
   <p>
     Wenn eine Installation mitten im Prozess abbricht und Sie merken, dass 
     es nicht mehr möglich ist, Pakete zu installieren oder zu entfernen, 
     versuchen Sie diese zwei Befehle auszuführen:
   </p>
   <p>
    <example>
# apt-get -f install
# dpkg --configure -a
</example>
   </p>
   <p>
     Danach versuchen Sie es erneut. Es kann nötig sein, den zweiten der 
     beiden Befehle mehr als einmal auszuführen. Dies ist eine wichtige 
     Information für die Abenteurer, die »unstable« benutzen.
   </p>
   <p>
     Tritt »E: Dynamic MMap ran out of room« beim Ausführen von <tt>apt-get 
     update</tt> auf, sollte die folgende Zeile der 
     <file>/etc/apt/apt.conf</file> hinzugefügt werden:
   </p>
   <p>
    <example>
APT::Cache-Limit 10000000;
</example>
   </p>
  </sect>
  <sect id="help">
   <heading>
     Wo gibt es Hilfe?
   </heading>
   <p>
     Wenn Sie sich von Zweifeln geplagt fühlen, ziehen Sie die umfangreiche 
     Dokumentation des Debian-Paketsystems zu Rate. <tt>--help</tt> und 
     Manpages können eine enorme Hilfe sein, genau wie die Dokumentation in 
     den Verzeichnissen in <tt>/usr/share/doc</tt> wie 
     <tt>/usr/share/doc/apt</tt>.
   </p>
   <p>
     Wenn diese Dokumentation nicht ausreicht, um Ihre Probleme zu 
     beseitigen, versuchen Sie es auf den Debian-Mailinglisten. Mehr 
     Informationen über die speziellen Benutzer-Listen gibt es auf der 
     Debian-Webseite: <url id="http://www.debian.org" 
     name="http://www.debian.org">.
   </p>
   <p>
     Natürlich sind diese Listen und Hilfen nur für Debian-Benutzer; 
     Benutzer anderer Systeme werden von der Gemeinschaft Ihrer Distribution 
     bessere Hilfe erlangen.
   </p>
  </sect>
 </chapt>
 <chapt id="distros">
  <heading>
    Welche Distributionen unterstützen APT?
  </heading>
  <p>
    Hier finden Sie die Namen einiger Distributionen, die APT unterstützen:
  </p>
  <p>
    Debian GNU/Linux (<url id="http://www.debian.org" 
    name="http://www.debian.org">) - Für diese Distribution wurde APT 
    entwickelt
  </p>
  <p>
    Mandriva Conectiva (<url id="http://www.conectiva.com.br" 
    name="http://www.conectiva.com.br">) - Die erste Distribution, die APT 
    mit RPM benutzte
  </p>
  <p>
    Libranet (<url id="http://www.libranet.com" 
    name="http://www.libranet.com">)
  </p>
  <p>
    Mandriva (<url id="http://www.mandriva.com/" 
    name="http://www.mandriva.com">)
  </p>
  <p>
    PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
  </p>
  <p>
    Vine (<url id="http://www.vinelinux.org" 
    name="http://www.vinelinux.org">)
  </p>
  <p>
    APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
  </p>
  <p>
    Alt Linux (<url id="http://www.altlinux.ru/" 
    name="http://www.altlinux.ru/">)
  </p>
  <p>
    Red Hat (<url id="http://www.redhat.com/" 
    name="http://www.redhat.com/">)
  </p>
  <p>
    Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
  </p>
  <p>
    SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
  </p>
  <p>
    Ubuntu (<url id="http://www.ubuntulinux.com/" 
    name="http://www.ubuntulinux.com/">)
  </p>
  <p>
    Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/" 
    name="http://www.yellowdoglinux.com/">)
  </p>
 </chapt>
 <chapt id="agradecimentos">
  <heading>
    Danksagungen
  </heading>
  <p>
    Ein großes Dankeschön geht an meine Freunde aus dem Debian-BR-Projekt 
    und Debian selbst, die eine ständige Hilfe für mich sind und mir immer 
    die Kraft geben, für das Wohl der Menschheit zu arbeiten genauso wie Sie 
    mir bei meinem Ziel helfen, die Welt zu retten. :)
  </p>
  <p>
    Außerdem möchte ich CIPSGA für die enorme Hilfe danken, die es für unser 
    Projekt und alle freien Projekte die aus großen Ideen entstehen 
    bedeutet.
  </p>
  <p>
    Und spezieller Dank geht an:
  </p>
  <p>
    Yooseong Yang &lt;yooseong@debian.org&gt;
  </p>
  <p>
    Michael Bramer &lt;grisu@debian.org&gt;
  </p>
  <p>
    Bryan Stillwell &lt;bryan@bokeoa.com&gt;
  </p>
  <p>
    Pawel Tecza &lt;pawel.tecza@poczta.fm&gt;
  </p>
  <p>
    Hugo Mora &lt;h.mora@melix.com.mx&gt;
  </p>
  <p>
    Luca Monducci &lt;luca.mo@tiscali.it&gt;
  </p>
  <p>
    Tomohiro KUBOTA &lt;kubota@debian.org&gt;
  </p>
  <p>
    Pablo Lorenzzoni &lt;spectra@debian.org&gt;
  </p>
  <p>
    Steve Langasek &lt;vorlon@netexpress.net&gt;
  </p>
  <p>
    Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
  </p>
  <p>
    Erik Rossen &lt;rossen@freesurf.ch&gt;
  </p>
  <p>
    Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
  </p>
  <p>
    Matt Kraai &lt;kraai@debian.org&gt;
  </p>
  <p>
    Aaron M. Ucko &lt;ucko@debian.org&gt;
  </p>
  <p>
    Jon &Aring;slund &lt;d98-jas@nada.kth.se&gt;
  </p>
  <p>
    Isaac Jones &lt;ijones@syntaxpolice.org&gt;
  </p>
 </chapt>
 <chapt id="novas">
  <heading>
    Neue Versionen dieses Dokuments
  </heading>
  <p>
    Diese Anleitung wurde vom <url id="http://www.debian-br.org/" 
    name="Debian-BR">-Projekt mit dem Ziel geschrieben, den täglichen Umgang 
    mit Debian zu erleichtern.
  </p>
  <p>
    Neue Versionen dieses Dokuments werden auf der Webseite des 
    Debian-Dokumentationsprojekts zur Verfügung gestellt werden <url 
    id="http://www.debian.org/doc/ddp" 
    name="http://www.debian.org/doc/ddp">.
  </p>
  <p>
    Kommentare und Kritik können direkt per Mail an mich gesandt werden 
    unter der Adresse <email>kov@debian.org</email> oder als Fehler im 
    Debian BTS gegen das Paket <package>apt-howto</package> eingereicht 
    werden.
  </p>
<p>
Kritik zur deutschen Übersetzung geht an
David Spreen <email>netzwurm@debian.org</email> und
Florian »eix« Rehnisch <email>eixman@gmx.de</email>.
</p>
 </chapt>
</book>
</debiandoc>
