`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>
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
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/sparc/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) <leutloff@oche.de>
Philipp Frauenfelder (1999) <pfrauenf@debian.org>
Martin Schulze (1999) <joey@infodrom.north.de>