[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ weiter ]

APT HOWTO
Kapitel 4 - Paketverwaltung


4.1 Update der Liste der verfügbaren Pakete

Das Paketsystem benutzt eine private Datenbank mit Informationen über installierte, nicht installierte und für eine Installation verfügbare Pakete. Das Programm apt-get 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.

Um diese Liste zu updaten, benutzt man das Kommando apt-get update. apt-get sucht dann nach den Paketlisten in den Archiven aus der /etc/apt/sources.list; In Die Datei /etc/apt/sources.list, Abschnitt 3.1 finden Sie weitere Information über diese Datei.

Es ist eine gute Idee, dieses Kommando regelmäßig auszuführen, um sich selbst und sein System auf dem neusten Stand über mögliche Paket- bzw. Sicherheitsupdates zu halten.


4.2 Installieren von Paketen

Endlich kommt das, worauf Sie alle gewartet haben! Mit der fertigen sources.list und der Liste der verfügbaren Pakete auf dem neusten Stand ist alles, was Sie zu tun haben apt-get auszuführen, um das gewünschte Paket zu installieren. Zum Beispiel:

     # apt-get install xchat

APT durchsucht seine Datenbank nach der aktuellsten Version dieses Paketes und holt es aus dem entsprechenden Archiv, welches in der sources.list spezifiziert ist. Wenn es eintritt, daß das Paket von einem anderen abhängt -- wie es hier der Fall ist -- überprüft APT die Abhängigkeiten und installiert die benötigten Pakete. Sehen Sie folgendes Beispiel:

     # apt-get install nautilus
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following extra packages will be installed:
       bonobo libmedusa0 libnautilus0 
     The following NEW packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     0 packages upgraded, 4 newly installed, 0 to remove and 1  not upgraded.
     Need to get 8329kB of archives. After unpacking 17.2MB will be used.
     Do you want to continue? [Y/n]

Das Paket nautilus benötigt die genannten Bibliotheken (bonobo libmedusa0 libnautilus0), deshalb holt APT sie aus dem Archiv. Übergibt man apt-get die Namen der Bibliotheken beim Aufruf mit, fragt es nicht, ob es fortfahren soll, es akzeptiert automatisch, daß die genannten Pakete installiert werden sollen.

Das bedeutet, daß APT nur um Bestätigung bittet, wenn es Pakete installieren muß, die man nicht auf der Kommandozeile übergeben hat.

Die folgenden Optionen von apt-get können hilfreich sein:

     -h  Dieser Hilfetext
     -d  Nur herunterladen - Nicht installieren oder entpacken
     -f  Versuche fortzufahren wenn der integrity check fehlschlägt
     -s  Nichts wirklich tun. Simulation durchführen.
     -y  Beantworte alle Fragen mit Ja anstatt sie zu stellen.
     -u  Zeige eine Liste der Pakete die geupgraded werden.

Es können mehrere Pakete in einer Zeile zur Installation ausgewählt werden. Pakete, die über das Netzwerk oder Internet heruntergeladen wurden, werden im Verzeichnis /var/cache/apt/archives für spätere Installationen gespeichert.

Ebenfalls kann man Pakete zum Entfernen auf derselben Zeile angeben, indem man ein '-' direkt hinter den Paketnamen hängt wie im folgenden:

     # apt-get install nautilus gnome-panel-       
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following extra packages will be installed:
       bonobo libmedusa0 libnautilus0 
     The following packages will be REMOVED:
       gnome-applets gnome-panel gnome-panel-data gnome-session 
     The following NEW packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
     Need to get 8329kB of archives. After unpacking 2594kB will be used.
     Do you want to continue? [Y/n]

Im Abschnitt Pakete entfernen, Abschnitt 4.3 finden Sie weitere Details zum Entfernen von Paketen.

Wenn Sie ein installiertes Paket irgendwie beschädigt haben oder einfach die Dateien eines Paketes mit der aktuellsten verfügbaren Version neu installieren möchten, können Sie die Option --reinstall wie im folgenden nutzen:

     # apt-get --reinstall install gdm
     Reading Package Lists... Done
     Building Dependency Tree... Done
     0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1  not upgraded.
     Need to get 0B/182kB of archives. After unpacking 0B will be used.
     Do you want to continue? [Y/n]

Die Version des APT, die zur Erstellung dieser Anleitung benutzt wurde, ist Version 0.5.3, die aktuelle Version in Debian `unstable' (sid) zur Zeit als sie geschrieben wurde. Wenn diese Version installiert ist, kann APT auf Ihren Wunsch noch mehr: Sie können ein Kommando der Form apt-get install paket/distribution benutzen, um ein Paket einer anderen Distribution zu installieren, oder apt-get install package=version. Zum Beispiel:

     # apt-get install nautilus/unstable

Dies installiert nautilus aus der Distribution `unstable', auch wenn die aktuell laufende Distribution `stable' ist. Mögliche Werte für 'distribution' sind stable, testing, und unstable.

Meistens ist es besser, die Option -t zu benutzen, um eine Distribution zu wählen, was dazu führt, daß apt-get diese Distribution beim Auflösen von Abhängigkeiten bevorzugt.

WICHTIG: Die `unstable'-Version von Debian ist die Version, in welcher neue Versionen von Debian-Paketen zuerst erscheinen. Diese Distribution sieht alle Änderungen, die an Paketen vorgenommen werden, kleinere und größere, welche mehrere Pakete oder das ganze System betreffen können. Aus diesem Grund sollte sie nicht von unerfahrenen Benutzern oder solchen, die geprüfte Stabilität brauchen, verwendet werden.

Die `testing'-Distribution ist ein wenig besser als `unstable' was Stabilität angeht, jedoch sollte für Produktionssysteme die Distribution `stable' benutzt werden.


4.3 Pakete entfernen

Wenn ein Paket nicht mehr gebraucht wird, kann es mit APT vom System entfernt werden. Geben Sie einfach apt-get remove package ein. Zum Beispiel:

     # apt-get remove gnome-panel
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages will be REMOVED:
       gnome-applets gnome-panel gnome-panel-data gnome-session 
     0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
     Need to get 0B of archives. After unpacking 14.6MB will be freed.
     Do you want to continue? [Y/n]

Wie im obigen Beispiel zu sehen ist, kümmert sich APT ebenfalls um das Entfernen der Pakete, die das Paket, das Sie entfernen wollen, benötigen. Es gibt keine Möglichkeit, Pakete mit APT zu entfernen, ohne gleichzeitig die Pakete zu entfernen, die von dem entfernten Paket abhängen.

Wenn man apt-get ausführt wie oben angegeben, werden die Pakete entfernt, aber die Konfigurationsdateien, falls es welche gibt, bleiben auf dem System. Für eine komplette Entfernung der Pakete, sehen Sie folgendes Beispiel:

     # apt-get --purge remove gnome-panel
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages will be REMOVED:
       gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
     0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
     Need to get 0B of archives. After unpacking 14.6MB will be freed.
     Do you want to continue? [Y/n]

Der '*' hinter den Namen der Pakete, die vom zu entfernenden Paket abhängen, bedeutet, daß deren Konfigurationsdateien ebenso entfernt werden.

Genau wie bei der Methode install kann man auch bei remove ein Symbol benutzen, um die Wirkung für ein einzelnes Paket umzukehren. Hier fügt man einem Paket ein '+' zu und das Paket wird installiert, anstatt entfernt zu werden.

     # apt-get --purge remove gnome-panel nautilus+
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following extra packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     The following packages will be REMOVED:
       gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
     The following NEW packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
     Need to get 8329kB of archives. After unpacking 2594kB will be used.
     Do you want to continue? [Y/n]

apt-get listet die Pakete auf, die extra installiert werden (die gebraucht werden, damit das Programm einwandfrei funktionieren kann), die entfernt werden und die installiert werden (hier werden die extra-Pakete noch einmal mit aufgelistet).


4.4 Upgrade von Paketen

Das Aktualisieren von Paketen ist eine tolle Sache mit APT. Es braucht dafür nur einen einzigen Befehl: apt-get upgrade. Man kann dieses benutzen, um Pakete aus der gleichen Distribution zu aktualisieren, oder aus einer neuen Distribution, obwohl für letzteres apt-get dist-upgrade empfehlenswerter ist; Siehe Upgrade einer Debian-Version, Abschnitt 4.5 für weitere Einzelheiten.

Es ist sinnvoll, diesen Befehl mit der Option -u auszuführen. Diese Option läßt APT die komplette Liste der Pakete anzeigen, die aktualisiert werden sollen. Ohne diese Option aktualisiert man quasi blind. APT lädt die aktuellsten Versionen aller Pakete herunter und installiert sie in der richtigen Reihenfolge. Es ist wichtig, daß vor jedem Aktualisieren der Pakete apt-get update ausgeführt wird. Siehe Abschnitt Update der Liste der verfügbaren Pakete, Abschnitt 4.1. Zum Beispiel:

     # apt-get -u upgrade
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages have been kept back
       cpp gcc lilo 
     The following packages will be upgraded
       adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
       ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
       libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
       libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 
     29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
     Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
     Do you want to continue? [Y/n]

Das ganze ist extrem einfach. Die ersten paar Zeilen sagen, daß einige Pakete zurückgehalten werden (have been kept back). Das bedeutet, daß es neuere Versionen dieser Pakete gibt, die aus irgendeinem Grund nicht installiert werden. Mögliche Gründe sind unerfüllbare Abhängigkeiten (z.B. wenn ein Paket, von dem das neue Paket abhängt, nicht im Archiv verfügbar ist) oder neue Abhängigkeiten (das Paket hängt nun von neuen Paketen ab).

Es gibt keine "saubere" Lösung für das erste Problem. Für den zweiten Fall kann man apt-get install für das spezielle Paket ausführen, das zurückgehalten wurde, da dann auch die Abhängigkeiten aufgelöst werden. Eine noch sauberere Lösung ist es, dist-upgrade zu benutzen. Siehe Abschnitt Upgrade einer Debian-Version, Abschnitt 4.5.


4.5 Upgrade einer Debian-Version

Diese Funktion erlaubt es, ein ganzes Debian-System entweder über das Internet oder von einer neuen CD (die Sie kaufen oder aus dem Internet herunterladen können) auf einmal zu aktualisieren.

Außerdem ist es sinnvoll, wenn an den Abhängigkeiten zwischen den Paketen Änderungen vorgenommen wurden. Mit apt-get upgrade werden solche Pakete nicht installiert (sie werden auf dem derzeitigen Stand gehalten kept back).

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 apt-cdrom (Siehe Abschnitt Hinzufügen einer CD-ROM in die sources.list, Abschnitt 3.4), um die CD zu Ihrer /etc/apt/sources.list hinzuzufügen und führen Sie apt-get dist-upgrade aus.

Es ist wichtig zu wissen, daß APT immer nach der aktuellsten Version eines Pakets sucht. Wenn also Ihre /etc/apt/sources.list auf ein Archiv zeigt, das eine neuere Version eines Pakets enthält als sich auf der CD befindet, lädt APT das Paket aus diesem herunter.

In dem Beispiel aus Abschnitt Upgrade von Paketen, Abschnitt 4.4 sehen wir, daß manche Pakete nicht aktualisiert wurden (kept back). Wir werden dieses Problem nun mit der Funktion dist-upgrade lösen:

     # apt-get -u dist-upgrade
     Reading Package Lists... Done
     Building Dependency Tree... Done
     Calculating Upgrade... Done
     The following NEW packages will be installed:
       cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
       libpcre2 logrotate mailx 
     The following packages have been kept back
       lilo 
     The following packages will be upgraded
       adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
       indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
       libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
       liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
       procps psmisc 
     31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
     Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
     Do you want to continue? [Y/n]

Hier ist zu bemerken, daß die Pakete aktualisiert werden, aber neue Pakete (neue Abhängigkeiten der aktualisierten Pakete) zusätzlich installiert werden. Weiterhin wird lilo immer noch nicht aktualisiert, es gibt möglicherweise schwerwiegendere Probleme mit diesem Paket. Wir können das prüfen, in dem wir folgendes ausführen:

     # apt-get -u install lilo
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following extra packages will be installed:
       cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
       logrotate mailx 
     The following packages will be REMOVED:
       debconf-tiny 
     The following NEW packages will be installed:
       cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
       logrotate mailx 
     The following packages will be upgraded
       lilo 
     1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
     Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
     Do you want to continue? [Y/n]

Hier erfahren wir, daß das neue lilo einen Konflikt mit dem Paket debconf-tiny hat, was bedeutet, daß wir es nicht installieren (oder aktualisieren) können, ohne debconf-tiny zu entfernen.

Um herauszufinden, wovon ein Paket zurückgehalten oder entfernt wird, können Sie folgendes tun:

     # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
     Reading Package Lists... Done
     Building Dependency Tree... Done
     Calculating Upgrade... Starting
     Starting 2
     Investigating python1.5
     Package python1.5 has broken dep on python1.5-base
       Considering python1.5-base 0 as a solution to python1.5 0
       Holding Back python1.5 rather than change python1.5-base
     Investigating python1.5-dev
     Package python1.5-dev has broken dep on python1.5
       Considering python1.5 0 as a solution to python1.5-dev 0
       Holding Back python1.5-dev rather than change python1.5
      Try to Re-Instate python1.5-dev
     Done
     Done
     The following packages have been kept back
       gs python1.5-dev 
     0 packages upgraded, 0 newly installed, 0 to remove and 2  not upgraded.

Auf diesem Wege ist es einfach festzustellen, daß das python1.5-dev Paket wegen einer ungelösten Abhängigkeit zu python1.5 nicht installiert werden kann.


4.6 Ungenutzte Pakete entfernen: apt-get clean and autoclean

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 (/var/cache/apt/archives/) und fährt mit der Installation fort. (sehen Sie Installieren von Paketen, Abschnitt 4.2).

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: apt-gets clean und autoclean Methoden.

apt-get clean entfernt alles bis auf Lock-Dateien (sehen Sie Glossar, Abschnitt 1.2) aus /var/cache/apt/archives/ und /var/cache/apt/archives/partial/. In der Folge muß APT ein Paket, das Sie erneut installieren wollen auch erneut herunterladen.

apt-get autoclean entfernt nur Pakete, die nicht mehr heruntergeladen werden können.

Das folgende Beispiel sollte zeigen, wie apt-get autoclean arbeitet:

     # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
     logrotate_3.5.9-7_i386.deb
     logrotate_3.5.9-8_i386.deb
     gpm_1.19.6-11_i386.deb

In /var/cache/apt/archives liegen zwei Versionen des Pakets logrotate und eine Version des Pakets gpm.

     # apt-show-versions -p logrotate
     logrotate/stable uptodate 3.5.9-8
     # apt-show-versions -p gpm
     gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12

apt-show-versions shows that logrotate_3.5.9-8_i386.deb provides the up to date version of logrotate, so logrotate_3.5.9-7_i386.deb is useless. Also gpm_1.19.6-11_i386.deb is useless because a more recent version of the package can be retrieved.

     # apt-get autoclean
     Reading Package Lists... Done
     Building Dependency Tree... Done
     Del gpm 1.19.6-11 [145kB]
     Del logrotate 3.5.9-7 [26.5kB]

apt-get autoclean entfernt also nur die alten Pakete. Für weitere Informationen über apt-show-versions sehen Sie Upgrade von Paketen spezieller Debian-Versionen, Abschnitt 4.9.


4.7 APT unter dselect verwenden...

dselect ist ein Programm, daß Debian-Benutzern hilft, zu installierende Pakete auszuwählen. Viele halten es für zu kompliziert und vielmehr langweilig, aber mit ein wenig Übung kann man durchaus Gefallen an seiner konsolen-basierten ncurses-Oberfläche finden.

Eine Stärke von dselect ist es, daß es mit den Möglichkeiten umgehen kann, die Debian-Pakete haben, um andere Pakete zu empfehlen ("suggesting") oder vorzustellen ("recommending"). Um es zu benutzen, rufen Sie `dselect' als root auf. Wählen Sie 'apt' als Zugriffsmethode. Das ist zwar nicht dringend notwendig, aber wenn Sie keine CD-ROM benutzen und Pakete aus dem Internet herunterladen möchten, ist es der beste Weg.

Um ein besseres Verständnis über die Benutzung von dselect zu erhalten, lesen Sie die Dokumentation auf der Debian-Homepage http://www.debian.org/doc/ddp.

Nachdem Sie Ihre Auswahl mit deselect getroffen haben, benutzen Sie folgendes Kommando

     # apt-get -u dselect-upgrade

wie im folgenden Beispiel:

     # apt-get -u dselect-upgrade
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages will be REMOVED:
       lbxproxy 
     The following NEW packages will be installed:
       bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
       gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
       libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
       libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
       util-linux-locales vacation xbill xplanet-images 
     The following packages will be upgraded
       debian-policy 
     1 packages upgraded, 30 newly installed, 1 to remove and 0  not upgraded.
     Need to get 7140kB of archives. After unpacking 16.3MB will be used.
     Do you want to continue? [Y/n]

Im Vergleich: apt-get dist-upgrade auf demselben System:

     # apt-get -u dist-upgrade   
     Reading Package Lists... Done
     Building Dependency Tree... Done
     Calculating Upgrade... Done
     The following packages will be upgraded
       debian-policy 
     1 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.
     Need to get 421kB of archives. After unpacking 25.6kB will be freed.
     Do you want to continue? [Y/n]

Viele der Pakete im oberen Beispiel werden installiert, weil andere Pakete sie "empfehlen ("suggest" or "recommend"). Andere werden aufgrund unserer Auswahl, die wir beim Navigieren durch die Paketlisten von dselect getroffen haben, installiert oder entfernt (Im Falle von lbxproxy z.B.). Dselect kann in Verbindung mit APT ein nützliches Werkzeug sein.


4.8 Wartung eines "gemischten" Systems

Viele benutzen die "testing"-Distribution, da sie stabiler ist als "unstable" und aktueller als "stable" ist. Benutzer, die aktuelle Versionen von Paketen wollen, sich aber nicht trauen, ihr ganzes System auf "unstable" umzustellen haben die Möglichkeit "testing" und "unstable" zu mischen. Auf der anderen Seite möchten konservativere Benutzer vielleicht "stable" und "testing" mischen.

Für diesen Zweck muß die folgende Zeile in die /etc/apt/apt.conf eingefügt werden:

     APT::Default-Release "testing";

Um nun Pakete aus unstable zu installieren, muß die Option -t benutzt werden:

     # apt-get -t unstable install Paketname

Vergessen Sie aber nicht, daß Sie, um ein Paket aus einer anderen Debian Version zu installieren, eine Quellzeile in die /etc/apt/sources.list einfügen müssen. In unserem Beispiel brauchen wir Quellzeilen für die "unstable"-Distribution neben denen für "testing".


4.9 Upgrade von Paketen spezieller Debian-Versionen

apt-show-versions bietet einen sicheren Weg für Benutzer gemischter Systeme, um ihre Systeme zu aktualisieren, ohne mehr aus der weniger stabilen Distribution zu installieren als sie im Sinn haben. Zum Beispiel ist es möglich, nur die "unstable"-Pakete zu aktualisieren, in dem man folgendes ausführt:

     # apt-get install `apt-show-versions -u -b | grep unstable`

4.10 Wie man bestimmte Versionen eines Paketes behält (komplex)

Manchmal gibt es Gründe, etwas in einem Paket zu verändern, und es fehlt die Zeit oder die Lust, diese Dinge auf neue Versionen des Paketes zu übertragen. Vielleicht haben Sie auch gerade Ihre Debian-Version auf 3.0 aktualisiert, aber möchten trotzdem ein Paket aus Version 2.2 behalten. Es ist möglich, die installierte Version zu markieren (pin), so daß sie nicht aktualisiert wird.

Diese Möglichkeit einzusetzen ist einfach. Editieren Sie einfach die Datei /etc/apt/preferences.

Das Format ist trivial:

     Package: <Paket>
     Pin: <Pin-Definition>
     Priority: <Priorität des Pins>

Um zum Beispiel das Paket sylpheed zu behalten, welches ich dazu gebracht habe "reply-to-list" in Version 0.4.99 zu benutzen, füge ich folgendes hinzu:

     Package: sylpheed
     Pin: version 0.4.99*

Bemerken Sie das * (Sternchen/Asterisk). Es funktioniert als Platzhalter; das bedeutet, daß dieser "Pin" für alle Versionen die mit 0.4.99 beginnen gültig sein soll. Das ist nötig, da Pakete in Debian eine Nummer für die "Debian-Revision" enthalten und ich nicht verhindern möchte, daß diese Revisionen installiert werden. Folglich werden die Versionen 0.4.99-1 und 0.4.99-10 installiert, sobald sie verfügbar sind. Bemerken Sie, daß Sie das vermutlich nicht möchten, wenn Sie das Paket modifiziert haben, da diese Änderungen dann verloren gehen.

Das Priority Feld ist optional; wenn nicht anders spezifiziert hat der "Pin" die Priorität 989.

Lassen Sie uns einen Blick darauf werfen, wie die Pin-Priorität funktioniert. Eine niedrigere Priorität als Null bewirkt, daß das Paket nie installiert wird. Prioritäten von 0 bis 100 bezeichnen Pakete, die nicht installiert sind und keine verfügbare Version haben. Solche Pakete werden in der Auswahl verfügbarer Versionen nicht berücksichtigt. Die Priorität 100 bezeichnet ein installiertes Paket. Damit eine installierte Version von einer anderen ersetzt wird, muß die Priorität über 100 liegen.

Prioritäten über 100 sagen aus, daß ein Paket installiert werden soll. Normalerweise wird ein installiertes Paket nur durch neuere Versionen übersetzt. Alle Prioritäten zwischen 100 und 1000 (inklusive) führen zu diesem Normalverhalten. Ein Paket mit solcher Priorität wird nicht durch eine niedrigere Version ersetzt. Wenn ich also zum Beispiel sylpheed 0.5.3 installiert habe und einen Pin auf sylpheed 0.4.99 mit der Priorität 999 definiert habe, wird Version 0.4.99 nicht installiert werden, um den Pin zu erfüllen. Um Pakete deaktualisieren zu können, um einen Pin zu erfüllen, braucht der Pin eine Priorität von über 1000.

Ein Pin kann für die version, das release oder die Herkunft (origin) definiert werden.

Für einen Pin auf die version, wie oben beschrieben, kann man sowohl Versionsnummern als auch Platzhalter (Sternchen) verwenden. Letzteres spezifiziert mehrere Versionen in einem Pin.

Die Option release benutzt die Release-Datei aus den APT-Archiven oder von den CDs. Die Brauchbarkeit dieser Version verfällt, wenn Sie APT-Archive benutzen, die diese Datei nicht zur Verfügung stellen. Sie können den Inhalt der Release-Dateien, die Sie haben in /var/lib/apt/lists/ nachlesen. Die Parameter für ein Release sind: a (Archiv(Archive)), c (Sektion(Component)), v (Version(Version)), o (Herkunft(Origin)) und l (Label(Label)).

Beispiel:

     Package: *
     Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
     Priority: 1001

In diesem Beispiel wählen wir die Debian-Version 2.2* (was 2.2r2, 2.2r3 sein kann -- r* bezeichnet so genannte "point releases", welche normalerweise Sicherheitsupdates und andere extrem wichtige Updates enthalten), das stable Archiv, die Sektion main (im Gegensatz zu contrib oder non-free) und Herkunft und Label Debian. Herkunft (o=) bezeichnet, wer die Release-Datei erstellt hat, das Label (l=) definiert den Namen des Debian-Distribution: Debian für Debian selbst und Progeny für Progeny Linux zum Beispiel. Ein Beispiel einer Release-Datei:

     $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
     Archive: stable
     Version: 2.2r3
     Component: main
     Origin: Debian
     Label: Debian
     Architecture: i386

[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ weiter ]

APT HOWTO

1.8.4 - April 2003
Gustavo Noronha Silva kov@debian.org
Deutsche Übersetzung: David Spreen netzwurm@debian.org