[ Inhalt ]

dselect Dokumentation für Anfänger - Kapitel 1
Einführung in die Paket-Verwaltung


Einige Vorbemerkungen zur Paket-Verwaltung ganz allgemein. Der Benutzer sollte der Paket-Verwaltung nicht ins Handwerk pfuschen. Im Klartext bedeutet dieses, daß auch der System-Administrator in den Verzeichnissen, die der Paket-Verwaltung unterstehen, nichts löschen oder hinzufügen sollte. Das gilt für alle Distributionen mit ausgefeilter Paket-Verwaltung, also insbesondere auch für Debian.

Ausdrücklich nicht der Paket-Verwaltung unterstehen /usr/local, /opt und natürlich /home. /usr/local ist der Ort der Wahl, wenn der Systemadministrator ein Programm installieren möchte, das nicht als Paket daher kommt. Innerhalb von /opt werden komplette Programmpakete installiert, die ihrerseits wieder Hierarchien .../bin, .../lib, .../man u.s.w. benötigen.

Ein weiterer Spezialfall betrifft die Konfigurations-Dateien, die bei Debian ausschließlich unter /etc gespeichert werden. Dort ist natürlich Editieren, und in begrenztem Maße auch Löschen und Erzeugen, von Dateien nötig. Wenn Pakete aktualisiert werden, bleibt die Konfiguration bestehen.


1.1 Aktuell: dselect

Diese Einführung orientiert sich am englischen Text Dselect documentation for beginners.

dselect dient dazu, die einzelnen Programmpakete der Debian GNU Distribution auszuwählen und zu installieren. In jedem dieser Pakete (package) sind neben den ausführbaren Programmen zusätzliche Informationen enthalten. Diese werden für die korrekte Installation, zur Konfiguration und zur vollständigen Entfernung, wenn beispielsweise eine neue Version aufgespielt werden soll, benötigt.

Zur Installation der einzelnen Pakete mit dselect werden die folgenden Schritte der Reihe nach durchgeführt. Es ist sinnvoll keinen der Schritte auszulassen.

Die gerade aufgezählten Punkte stehen nach dem Start von dselect zur Verfügung:

     Debian Linux `dselect' package handling frontend.
     
     0.  [A]ccess  Choose the access method to use. 
     1.  [U]pdate  Update list of available packages, if possible. 
     2   [S]elect  Request which packages you want on your system.
     3.  [I]nstall Install and upgrade wanted packages. 
     4.  [C]onfig  Configure any packages that are unconfigured. 
     5.  [R]emove  Remove unwanted software.
     6.  [Q]uit    Quit dselect.

Die nächsten Abschnitte beschreiben jeden der Menüpunkte.


1.1.1 Access

Nach der Auswahl des Menüpunktes ``Access'' erscheint der folgende Bildschirm, mit dem festgelegt wird, woher die zu installierenden Pakete genommen werden sollen:

     dselect - list of access methods
       Abbrev.        Description
       cdrom          Install from a CD-ROM
       multi_cd       Install from a CD-ROM set.
       nfs            Install from an NFS server (not yet mounted).
       multi_nfs      Install from an NFS server (using the CD-ROM set) (not yet mounted).
       harddisk       Install from a hard disk partition (not yet mounted).
       mounted        Install from a filesystem which is already mounted.
       multi_mount    Install from a mounted partition with changing contents.
       floppy         Install from a pile of floppy disks.
       ftp            Install using ftp.
       apt            APT Acquisition [file,http,ftp]

Wie Sie sehen, können Sie die Pakete sowohl von CDROM, über das Netzwerk mit NFS oder aber von einer lokalen Festplatte installieren. Dazu dürfen die betreffenden Medien noch nicht in das Dateisystem des Rechners eingehängt (mount) sein. Sollte das schon geschehen sein, so kann mit dem sechsten Punkt (mounted) das passende Verzeichnis angegeben werden. Haben Sie mit einem der ersten fünf Punkte Schwierigkeiten, so können Sie dselect verlassen und versuchen das Medium von Hand in das Dateisystem einzuhängen, zum Beispiel durch die Eingabe von:

     mount -t iso9660 -r /dev/cdrom /cdrom

Schlägt dieser Versuch fehl, so überprüfen Sie bitte, ob auch das Modul für Ihr CDROM Laufwerk geladen ist. Anschließend starten Sie dselect erneut und wählen den sechsten Menüpunkt aus.

Um Debian GNU/Linux 2.1 von mehreren CD's zu installieren, ist die bevorzugte Installationsmethode multi_cd. Aktuelle CD-Sets enthalten spezielle Zusatzinformationen, so daß von mehreren CDs installiert werden kann.

Wenig komfortabel ist der Punkt, die Distribution mit Disketten installieren zu müssen. Die letzte Möglichkeit setzt eine funktionierende Internetanbindung voraus, zumindest bis zu einem ftp-Server, der die Debian GNU/Linux Distribution gespiegelt hat.

Nach der Auswahl des Mediums müssen Sie unter Umständen verschiedene Verzeichnisse eingeben, in denen die Bestandteile der Gesamtdistribution abgelegt wurden, z.B. wenn eine CD nach /cdrom gemountet wurde, geben sie /cdrom/debian ein, wenn das Verzeichnis der Distribution auf der CD debian heißt. Haben Sie sich mal vertan, so kann die Auswahl mit ^C (Strg-Taste und C gleichzeitig drücken) abgebrochen werden. Starten Sie danach den Menüpunkt ``Access'' einfach nochmal.

Nach der korrekten Auswahl oder durch Drücken von x befinden Sie sich wieder in dem Hauptmenü.


1.1.2 Update

Nach der Aktivierung dieses Punktes werden die Dateien Packages oder Packages.gz der verschiedenen Verzeichnisse eingelesen. Mit den darin enthaltenen Informationen aktualisiert dselect seine interne Datenbank.


1.1.3 Select

An dieser Stelle können Sie nun jedes einzelne Paket auswählen, das auf Ihrem Rechner installiert werden soll. Bei langsamen Rechnern kann es eine Weile dauern, bis der neue Bildschirm erscheint. Drücken Sie also bitte nicht einfach irgendwelche Tasten, sondern warten Sie, bis Ihnen die Auswahl der verschiedenen Hilfeseiten präsentiert wird:

     Help: Introduction to package list
     Welcome to the main package listing.  Please read the help that is available !
     
     ...[weiteren Text gelöscht]...

Bei einer Erstinstallation ist es empfehlenswert, erst einmal keine eigene Auswahl zu treffen, sondern die Standardinstallation zu akzeptieren. Dazu wird zuerst die Leertaste gedrückt, um die Hilfeseiten zu verlassen. Durch die Betätigung der Enter-Taste wird die Auswahl akzeptiert und ins Hauptmenü zurückgekehrt. Dann können die standardmäßig vorgesehenen Pakete installiert und, soweit notwendig, auch konfiguriert werden. Zu jedem späteren Zeitpunkt kann dselect erneut gestartet werden, um dem System weitere Pakete hinzuzufügen oder auch um andere wieder zu entfernen.

Die Hilfeseiten stehen jederzeit nach Eingabe des Fragezeichens (?) zur Verfügung. In den Hilfeseiten wird mit dem Punkt (.) geblättert.

Der Bildschirm zur Auswahl der Pakete ist zweigeteilt. In der oberen Hälfte kann mit den Pfeiltasten von Paket zu Paket gewechselt werden, während im unteren Teil eine kurze Beschreibung erscheint. Bei Paketen, die installiert werden sollen, geben Sie ein Pluszeichen (+) ein und bei Paketen, die Sie loswerden möchten ein Minuszeichen (-). Zu jedem Paket gibt es drei Stufen der Informationsanzeige, die Sie mit i umschalten. Wenn der Platz in der unteren Hälfte nicht reicht, können Sie in der Informationssanzeige mit d vorwärts und mit u rückwärts blättern.

Bei der Auswahl kommt es vor, daß dselect eine Verletzung der Abhängigkeiten feststellt. Es wird dann ein neues Fenster angezeigt, in dem dselect die Lösung des Problems vorschlägt. Dafür sind je nach Situation Pakete neu ausgewählt worden und/oder andere zum Entfernen vorgesehen worden. Warum die Auswahl des Paketes verändert wurde, wird in der unteren Hälfte des Bildschirms angezeigt. Sind Sie mit der Auswahl zufrieden, drücken Sie einfach die Enter-Taste.

Dieses Verhalten scheint häufig sehr lästig und unnütz zu sein, doch es bewahrt das System vor Fehlfunktionen. Es wird sowohl verhindert, daß sich Pakete mit gleichen Funktionen oder Dateien gegenseitig behindern als auch sichergestellt, daß alle benötigten Bestandteile, wie Bibliotheken, mit installiert werden. Langfristig erweist sich diese kleine Unannehmlichkeit als sehr wertvolle Hilfe.

Können die Abhängigkeiten nicht aufgelöst werden, weil zum Beispiel Pakete fehlen, so kann mit einem großen Q die Überprüfung ignoriert werden. Dies sollte aber nur im äußersten Notfall geschehen. Mit dem großen X kann die Auswahl verlassen werden und alle Änderungen gehen verloren.


1.1.3.1 Beispiel

Es soll das Paket boot-floppies installiert werden. Der Entwickler dieses Pakets hat festgelegt, daß es ohne die folgenden Paketen nicht funktionieren wird:

Weiterhin empfiehlt er, daß das Paket unzip vorhanden sein sollte. Die Ziffern hinter den Namen sind die Versionsnummern, die das betreffende Paket erfüllen muß.

Wird das boot-floppies-Paket nun mit dem Pluszeichen ausgewählt, so erscheint das folgende Fenster (in diesem Fall sind die Pakete libc6-dev und newt0.25 schon installiert):

     dselect - recursive package listing                  mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       _* Opt admin    boot-floppie Scripts to create the Debian installation floppy
       _* Opt devel    libc6-pic    The GNU C library version 2 (PIC library)
       _* Opt devel    slang1-pic   The S-Lang programming library, shared library su
       _* Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       _* Opt devel    popt         C library for parsing command line parameters
      *** Std devel    libc6-dev    The GNU C library version 2 (development files).
       _* Opt devel    slang1-dev   The S-Lang programming library, development versi
      *** Opt base     newt0.25     Not Erik's Windowing Toolkit - text mode windowin

Zur Erklärung steht dann im unteren Teil:

     boot-floppies depends on libc6-pic
     boot-floppies depends on slang1-pic
     boot-floppies depends on newt0.25-dev
     boot-floppies depends on popt

Mit großem R kann der Ursprungszustand, also vor Eingabe des Pluszeichens, wieder hergestellt werden:

     dselect - recursive package listing                  mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       __ Opt admin    boot-floppie Scripts to create the Debian installation floppy
       __ Opt devel    libc6-pic    The GNU C library version 2 (PIC library)
       __ Opt devel    slang1-pic   The S-Lang programming library, shared library su
       __ Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       __ Opt devel    popt         C library for parsing command line parameters
      *** Std devel    libc6-dev    The GNU C library version 2 (development files).
       __ Opt devel    slang1-dev   The S-Lang programming library, development versi
      *** Opt base     newt0.25     Not Erik's Windowing Toolkit - text mode windowin

Mit großem D werden die Veränderungen, die dselect vorgenommen hat, wieder rückgängig gemacht:

     dselect - recursive package listing                  mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       _* Opt admin    boot-floppie Scripts to create the Debian installation floppy
       __ Opt devel    libc6-pic    The GNU C library version 2 (PIC library)
       __ Opt devel    slang1-pic   The S-Lang programming library, shared library su
       __ Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       __ Opt devel    popt         C library for parsing command line parameters
      *** Std devel    libc6-dev    The GNU C library version 2 (development files).
       __ Opt devel    slang1-dev   The S-Lang programming library, development versi
      *** Opt base     newt0.25     Not Erik's Windowing Toolkit - text mode windowin

Mit dem großem U werden die Vorschläge von dselect wiederhergetellt:

     dselect - recursive package listing                  mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       _* Opt admin    boot-floppie Scripts to create the Debian installation floppy
       _* Opt devel    libc6-pic    The GNU C library version 2 (PIC library)
       _* Opt devel    slang1-pic   The S-Lang programming library, shared library su
       _* Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       _* Opt devel    popt         C library for parsing command line parameters
      *** Std devel    libc6-dev    The GNU C library version 2 (development files).
       _* Opt devel    slang1-dev   The S-Lang programming library, development versi
      *** Opt base     newt0.25     Not Erik's Windowing Toolkit - text mode windowin

Durch die mehrfache Eingabe des kleinen i können Informationen über das aktuelle Paket abgerufen werden. Nach der abschließenden Auswahl betätigen Sie die Enter-Taste und gelangen zurück zum Hauptmenü.


1.1.4 Install

Im nächsten Schritt werden alle Pakete nacheinander in das System eingespielt. Einige Pakete benötigen weitere Informationen von Ihnen. Alle Eingaben können später durch Aufrufen des entsprechenden Konfigurationsscripts, meist der Paketname mit angehängtem config, zum Beispiel liloconfig für den Linux-Loader LILO, geändert werden.

Sollte die Installation eines Pakets fehlschlagen, weil die Abhängigkeiten nicht erfüllt werden konnten, so kann der Vorgang einfach wiederholt werden. Die Pakete, bei denen es Probleme gab, werden am Ende der Installation aufgelistet.


1.1.5 Configure

Die meisten Pakete werden direkt bei der Installation konfiguriert. Wurde die Installation abgebrochen, so kann sie hier wiederholt werden.


1.1.6 Remove

Hiermit werden die Pakete entfernt, die nicht mehr benötigt werden. Normalerweise bleiben die Konfigurationsdateien erhalten, so daß durch diesen Vorgang keine Informationen verloren gehen. Sollen auch diese Dateien entfernt werden, so muß das Paket mit dem Unterstrich (_) statt einem Minus (-) markiert werden (purge).


1.1.7 Quit

Mit diesem Punkt wird dselect verlassen.

Nun ist es empfehlenswert das Skript /etc/cron.daily/find auszuführen, da viele neue Dateien in das System gelangt sind. Danach berücksichtigt das Programm locate auch wieder alle Dateien an, die im System vorhanden sind.


1.2 Next Generation: apt-get

apt-get ist ein erweitertes Paketverwaltungs-Tool, das in kommenden Versionen von Debian GNU enthalten sein wird. Zur Zeit fehlt noch ein grafisches und ein textorientiertes Frontend. Das Backend apt-get läuft stabil und wird bereits eingesetzt.

apt-get stützt sich wie dselect auf dpkg ab. In diesem Sinne kann es dselect ersetzen. Es bietet allerdings nicht in allen Bereichen die gleiche Funktionalität wie dselect. Die Paket-Verwaltungs-Optionen von apt-get sind:

Das Verhalten von apt-get wird über die Konfigurationsdatei /etc/apt/sources.list gesteuert. In dieser Datei stehen die Quellen, von wo apt-get die Pakete und ihre Beschreibungen laden soll. Mehr dazu in Konfiguration der Quellen, Abschnitt 1.2.8.

Ausführliche Dokumentation zu apt-get gibt es in den Manpages apt(8), apt-cache(8), dpkg(8), dselect(8) und sources.list(5).


1.2.1 Update

Der update-Befehl lädt die Beschreibungen der verfügbaren Pakete (die Packages.gz-Files) ins System; Sie stehen anschließend apt-get und dselect mit der Access-Methode apt zur Verfügung.

Diesen Befehl sollten Sie immer ausführen, bevor Sie neue Pakete mit apt-get installieren. Natürlich ist dieser Befehl nur dann nötig, wenn Sie die Quellen (in sources.list) geändert haben oder wenn Sie vermuten, daß sich die Pakete und Paket-Listen geändert haben. Wenn Sie Pakete aus der aktuellen Entwicklerversion unstable (zur Zeit potato) benutzen wollen, ändern sich die Paketlisten täglich.


1.2.2 Upgrade

Mit upgrade werden alle Pakete, die momentan installiert sind, aktualisiert. Unter keinen Umständen werden Pakete, die bis jetzt noch nicht installiert waren, neu installiert. Es werden auch keine Pakete, die bis jetzt installiert waren, gelöscht.

Wenn es Pakete gibt, die nicht aktualisiert werden können, ohne den Status eines anderen Pakets zu ändern (löschen oder neu installieren), dann werden diese Pakete von der Aktualisierung ausgenommen.


1.2.3 Install

Mit install werden einzelne Pakete neu installiert. Geben Sie als zusätzliche Argumente einfach die Namen der gewünschten Pakete an:

     apt-get install boot-floppies kernel-sources-2.0.36

Die benötigten Pakete werden anschließend geladen und installiert. Dabei wird nicht nur das angegebene Paket installiert, sondern zusätzlich alle weiteren, von denen es abhängt.

Dabei auftretende Konflikte werden intelligent gelöst. Wenn Sie ein `-' (Minus) an den Namen eines Pakets anhängen, dann wird dieses Paket aus dem System gelöscht. Auf diese Weise können Sie den Algorithmus zur Konfliktlösung von apt-get beeinflussen (siehe auch Dist-Upgrade, Abschnitt 1.2.5).


1.2.4 Check

check überprüft die Installation auf defekte Pakete.


1.2.5 Dist-Upgrade

dist-upgrade funktioniert ähnlich wie upgrade. Alle Pakete, die momentan installiert sind, werden auf den neuesten Stand gebracht. Zusätzlich werden wechselnde Abhängigkeiten intelligent gehandhabt. Bei Konflikten versucht apt-get die wichtigsten Pakete auf Kosten weniger wichtiger Pakete zu aktualisieren.


1.2.6 Dselect-Upgrade

Das dselect-upgrade-Kommando wird vom traditionellen Frontend dselect benutzt. Es folgt den Änderungen, die dselect gemacht hat und installiert oder löscht die gewünschten Pakete.

Dieses Kommando führt keine automatische Konfliktlösung durch. Das ist ja auch die Aufgabe von dselect. Es bricht ab, wenn es Konflikte oder Abhängigkeitsprobleme gibt ohne irgend etwas zu tun.


1.2.7 Clean

Dieser Befehl löscht die auf der Festplatte zwischengespeicherten Pakete. Alle Pakete, die mit apt-get installiert wurden, sind vorher auf das lokale System geladen und im Verzeichnis /var/cache/apt/archives gespeichert worden. Das kann unter Umständen ziemlich viel Platz verschlingen. Daher ist es empfehlenswert, nach größeren Installationsvorgängen

     apt-get clean

aufzurufen. Wenn dselect mit der apt-Methode aufgerufen wird, ist dieses nicht nötig.


1.2.8 Konfiguration der Quellen

In der Datei /etc/apt/sources.list werden die verschiedenen Quellen eingetragen, von denen apt-get Pakete installieren soll. Jede Zeile enthält eine Quellpfadangabe, die bevorzugteste zuerst. Das Format einer Zeile lautet:

     Typ URI Argumente

Typ
Der Typ bestimmt auch das Format der Argumente. Im Moment ist hier nur deb möglich. Daher besteht das Argument dann typischer Weise aus zwei Teilen: der Distribution und der Komponenten.

URI
Für die Angabe der URI werden zur Zeit drei Typen unterstützt: file, http und ftp. Die Notation ist die gleiche wie in einem WWW-Browser. Diese Angabe muß auf das Hauptverzeichnis von Debian zeigen, also auf das Verzeichnis, in dem das Unterverzeichnis dists liegt. Von dort aus findet apt-get dann die gesuchten Informationen.

Argumente
Mit dem Typ deb bestehen die Argumente aus den beiden Teilen Distribution (eines aus stable, frozen oder unstable) und Komponenten (aus main, contrib, non-free oder non-US).

Daraus lassen sich nun verschiedene mögliche Kombinationen ableiten. Ein paar Beispiele:


1.3 Weitere Paketverwalter

Eine ausführlichere Beschreibung der Pakete wird später folgen.


[ Inhalt ]
dselect Dokumentation für Anfänger
Christian Leutloff (1997) leutloff@oche.de
Philipp Frauenfelder (1999) pfrauenf@debian.org
Martin Schulze (1999) joey@infodrom.north.de