`dselect' Dokumentation für Anfänger ------------------------------------ Christian Leutloff (1997) Philipp Frauenfelder (1999) Martin Schulze (1999) ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- 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, dass 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' usw. 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 (http://www.debian.org/releases/2.2/arm/dselect-beginner). `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. * Quellmedium auswählen, an dem die neuen Pakete liegen, * Aktualisierung der internen Liste der verfügbaren Pakete, * Auswahl der zu installierenden oder zu entfernenden Pakete, * Installation und Aktualisierung der ausgewählten Pakete, * Konfiguration von Paketen, bei denen dies notwendig ist und * Entfernen der nicht mehr gewünschten Software. 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 CD, ü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 gemountet (`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, ob auch das Modul für Ihr CD Laufwerk geladen ist. Anschließend starten Sie `dselect' erneut und wählen den sechsten Menüpunkt aus. Um Debian GNU/Linux 2.2 von mehreren CDs zu installieren, ist die bevorzugte Methode `apt-setup'. Das ist ein Frontend für `apt-cdrom'. `apt-setup' fordert Sie auf jene Installationsquelle anzugeben, die Sie möchten. In `dselect' muss dafür als Access Methode ``apt'' ausgewählt worden sein. Wenig komfortabel ist der Punkt, die Distribution mit Disketten installieren zu müssen. Die nächste Möglichkeit setzt eine funktionierende Internetanbindung voraus, zumindest bis zu einem ftp-Server, der die Debian GNU/Linux Distribution gespiegelt hat. `apt' ist eine der besten Möglichkeiten zur Installation von einer lokalen Quelle oder aus dem Internet. Diese Methode verwendet das `apt'-System, um eine vollständige Abhängigkeitsüberprüfung und Sortierung durchzuführen, daher ist es so am Wahrscheinlichsten, die Pakete in der optimalen Reihenfolge zu installieren. Näheres zu `apt' und zu seiner Konfiguration ist unter Abschnitt 1.2.8, `Konfiguration der Quellen' zu finden. 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 einmal vertan, so kann die Auswahl mit ^C (Strg-Taste und C gleichzeitig drücken) abgebrochen werden. Starten Sie danach den Menüpunkt ``Access'' einfach noch einmal. 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 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, zunächst 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, dass sich Pakete mit gleichen Funktionen oder Dateien gegenseitig behindern, als auch sichergestellt, dss alle benötigten Bestandteile, wie Bibliotheken, mitinstalliert 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, dass es ohne die folgenden Pakete nicht funktionieren wird: * libc6-pic * slang1-pic * sysutils * makedev (>= 1.6-15) * newt0.25 * newt0.25-dev * popt * zlib1g * zlib1g-dev * recode * make * gettext * slice * m4 * lynx (>= 2.6) * debiandoc-sgml (>= 1.1.10) * man-db * libpaperg * tetex-bin * tetex-extra Weiterhin empfiehlt er, dass 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 Konfigurationsskripts, das ist 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 dass 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, 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: * `update', * `upgrade', * `dist-upgrade', * `install', * `check', * `dselect-upgrade' und * `clean'. 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 Abschnitt 1.2.8, `Konfiguration der Quellen'. 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, dass sich die Pakete und Paket-Listen geändert haben. Wenn Sie Pakete aus der aktuellen Entwicklerversion _unstable_ (zur Zeit _woody_) 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, nicht nur das angegebene Paket, 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 Abschnitt 1.2.5, `Dist-Upgrade'). 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 sind hier nur `deb' und `deb-src' möglich. Beide haben das selbe Format. Daher besteht das Argument dann typischerweise aus zwei Teilen: der _Distribution_ und den _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 muss 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: * Ein Archiv der stabilen Distribution, das lokal (oder über NFS gemountet) vorhanden ist. Zusätzlich zur Distribution werden auch die Archive von _contrib_ und _non-free_ ausgewählt. deb file:/home/jason/debian stable main contrib non-free * Das Archiv der stabilen Distribution auf www.debian.org. deb http://www.debian.org/archive stable main * Wie oben, aber über ftp und zusätzlich zur Distribution noch _contrib_. deb ftp://ftp.debian.org/archive stable main contrib * Zugriff mit ftp auf die kommende Distribution auf dem Mirror in der Schweiz. deb ftp://sunsite.cnlab-switch.ch/mirror/linux/distributions/debian frozen main * Eine CD, unter `/cdrom' gemountet. In `/cdrom' existiert ein Verzeichnis `/cdrom/dists' deb file:/cdrom stable main * Zugriff auf eine CD, unter `/cdrom' gemountet, die nicht die offizielle Struktur einer Debian-CD hat. Bei dieser CD ist das `Packages.gz'-File in `/cdrom/debian/main/binary-i386' zu finden. deb file:/cdrom/debian/main/binary-i386 ./ 1.3. Weitere Paketverwalter --------------------------- Eine ausführlichere Beschreibung der Pakete wird später folgen. * `apt-find' - Eine Textoberfläche zu APT. * `gnome-apt' - Die grafische Oberfläche zu APT. * `gdselect' - Eine grafische Oberfläche zu dpkg. * `swim' - Ein Kommandozeilen-orientiertes Frontend zu APT. ------------------------------------------------------------------------------- `dselect' Dokumentation für Anfänger Christian Leutloff (1997) Philipp Frauenfelder (1999) Martin Schulze (1999)