|
|
(99 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| {{DISPLAYTITLE:apt}}
| | '''apt''' - Paketmanager für Debian-Systeme |
| '''apt''' ('''A'''dvanced '''P'''ackaging '''T'''ool) ist ein Paketmanager für Debian-Systeme | |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| APT („Advanced Package Tool“) stellt die nächste Generation der Debian GNU/Linux-Paketverwaltung dar.
| | '''apt''' ('''A'''dvanced '''P'''ackaging '''T'''ool) ist ein Paketmanager für Debian-Systeme |
| | | ; ''apt'' ist ein Werkzeug, um [[Software-Pakete]] zu verwalten |
| In diesem Abschnitt wird zunächst auf die Konfiguration und Benutzung von Kommandozeilentools wie <tt>apt</tt> und <tt>dpkg</tt> sowie deren Verwandten eingegangen.
| | * installieren |
| * Später werden dann auch grafische Frontends zur Paketverwaltung beschrieben.
| | * Abhängigkeiten auflösen |
| | | * Konfigurationsdateien berücksichtigen |
| ''apt'' ist ein Werkzeug, um Software-Pakete zu verwalten | |
| * installiert | |
| * Abhängigkeiten automatisch auflösen | |
| * Konfigurationsdateien beim Installieren bzw. Aktualisieren berücksichtigen | |
|
| |
|
| ; Funktion | | ; Funktion |
Zeile 24: |
Zeile 19: |
| Das Advanced Package Tool ist grundlegender Bestandteil von Debian und ist auf jedem System verfügbar. | | Das Advanced Package Tool ist grundlegender Bestandteil von Debian und ist auf jedem System verfügbar. |
|
| |
|
| == Syntax == | | == Aufruf == |
| # '''apt [Befehl [Optionen]] (Paket)''' | | # '''apt [Befehl [Optionen]] (Paket)''' |
|
| |
|
| |
|
| |
|
| === Befehle === | | === Befehle === |
| {| class="wikitable sortable options" | | {| class="wikitable sortable options" |
| |- | | |- |
| ! '''Befehl''' !! Option !! Beschreibung | | ! Befehl !! Option !! Beschreibung |
| |- | | |- |
| | '''update''' || || Aktualisierung der Paketquellen | | | update || || Aktualisierung der Paketquellen |
| |- | | |- |
| | '''upgrade''' || || Aktualisierung aller installierten Pakete des Systems (Neuinstallation von Paketen, falls Abhängigkeiten dies erfordern - jedoch keine Entfernung von existierenden Paketen) | | | upgrade || || Aktualisierung aller installierten Pakete des Systems (Neuinstallation von Paketen, falls Abhängigkeiten dies erfordern - jedoch keine Entfernung von existierenden Paketen) |
| |- | | |- |
| | '''full-upgrade''' || || wie '''upgrade''' - jedoch können installierte Pakete entfernt werden, wenn dies erforderlich ist, um das Upgrade des Systems zu gewährleisten | | | full-upgrade || || wie upgrade - jedoch können installierte Pakete entfernt werden, wenn dies erforderlich ist, um das Upgrade des Systems zu gewährleisten |
| |- | | |- |
| | '''autoremove''' || || entfernt automatisch installierte Pakete, wenn diese nicht mehr benötigt werden (beispielsweise durch geänderte Abhängigkeiten) | | | autoremove || || entfernt automatisch installierte Pakete, wenn diese nicht mehr benötigt werden (beispielsweise durch geänderte Abhängigkeiten) |
| |- | | |- |
| | '''remove''' || || entfernt das angegebene Paket, ohne jedoch dessen Konfigurationsdateien zu löschen | | | remove || || entfernt das angegebene Paket, ohne jedoch dessen Konfigurationsdateien zu löschen |
| |- | | |- |
| | '''purge''' || || vollständige Entfernung des angegebenen Paketes (inklusive Konfigurationsdateien) | | | purge || || vollständige Entfernung des angegebenen Paketes (inklusive Konfigurationsdateien) |
| |- | | |- |
| | '''list''' || --upgradable --installed || Ausgabe einer Liste aktualisierbarer bzw. installierbarer Pakete | | | list || --upgradable --installed || Ausgabe einer Liste aktualisierbarer bzw. installierbarer Pakete |
| |- | | |- |
| | '''show''' || || zeigt Informationen zu einem angegebenen Paket: Beschreibung, Version, Abhängigkeiten, Download-Größe etc. | | | show || || zeigt Informationen zu einem angegebenen Paket: Beschreibung, Version, Abhängigkeiten, Download-Größe etc. |
| |- | | |- |
| | '''search''' Begriff || || durchsucht den Volltext sämtlicher Paketbeschreibungen nach dem angegebenen Suchbegriff und gibt eine Liste gefundener Pakete aus (inklusive Kurzbeschreibung) | | | search ''Begriff'' || || durchsucht den Volltext sämtlicher Paketbeschreibungen nach dem angegebenen Suchbegriff und gibt eine Liste gefundener Pakete aus (inklusive Beschreibung) |
| |- | | |- |
| | '''install''' || || Angegebenes Paket installieren | | | install || || Angegebenes Paket installieren |
| |- | | |- |
| | '''remove''' || || remove ist identisch mit install, mit der Ausnahme, dass Pakete entfernt anstatt installiert werden. | | | remove || || remove ist identisch mit install, mit der Ausnahme, dass Pakete entfernt anstatt installiert werden. |
| |- | | |- |
| | '''purge''' || || purge entspricht remove mit der Ausnahme, dass Pakete entfernt und vollständig gelöscht werden (jegliche Konfigurationsdateien werden mitgelöscht ) | | | purge || || purge entspricht remove mit der Ausnahme, dass Pakete entfernt und vollständig gelöscht werden (jegliche Konfigurationsdateien werden mitgelöscht ) |
| |- | | |- |
| | '''update''' || || update wird verwendet, um von allen konfigurierten Quellen Paketinformationen herunterzuladen. | | | update || || update wird verwendet, um von allen konfigurierten Quellen Paketinformationen herunterzuladen. |
| |- | | |- |
| | '''upgrade''' || || upgrade wird verwendet, um verfügbare Upgrades für alle derzeit auf dem System installierten Pakete .Neue Pakete werden installiert, falls dies nötig ist. | | | upgrade || || upgrade wird verwendet, um verfügbare Upgrades für alle derzeit auf dem System installierten Pakete .Neue Pakete werden installiert, falls dies nötig ist. |
| |- | | |- |
| | '''autoremove''' || || autoremove wird benutzt, um Pakete zu entfernen, die automatisch installiert wurden, um Abhängigkeiten für andere Pakete zu erfüllen und die nicht mehr benötigt werden, da sich die Abhängigkeiten geändert haben oder die Pakete, die sie benötigten, in der zwischenzeit entfernt wurden. | | | autoremove || || autoremove wird benutzt, um Pakete zu entfernen, die automatisch installiert wurden, um Abhängigkeiten für andere Pakete zu erfüllen und die nicht mehr benötigt werden, da sich die Abhängigkeiten geändert haben oder die Pakete, die sie benötigten, in der zwischenzeit entfernt wurden. |
| |- | | |- |
| | '''full-upgrade''' || || full-upgrade verrichtet die Funktion von »upgrade«, wird aber auch installierte Pakete entfernen, falls dies erforderlich ist, um ein Upgrade des Systems als Ganzes durchzuführen. | | | full-upgrade || || full-upgrade verrichtet die Funktion von »upgrade«, wird aber auch installierte Pakete entfernen, falls dies erforderlich ist, um ein Upgrade des Systems als Ganzes durchzuführen. |
| |- | | |- |
| | '''show''' || || show zeigt Informationen über die angegebenen Pakete einschließlich ihrer Abhängigkeiten, Installations- und Herunterladegröße, Quellen, in denen das Paket verfügbar ist, der Beschreibung des Paketinhalts und vieles mehr. Es kann z.B. hilfreich sein, einen Blick auf diese Informationen zu werfen, bevor du apt erlaubst, ein Paket zu entfernen oder wenn du neue Pakete zur Installation suchen. | | | show || || show zeigt Informationen über die angegebenen Pakete einschließlich ihrer Abhängigkeiten, Installations- und Herunterladegröße, Quellen, in denen das Paket verfügbar ist, der Beschreibung des Paketinhalts und vieles mehr. Es kann z. B. hilfreich sein, einen Blick auf diese Informationen zu werfen, bevor du apt erlaubst, ein Paket zu entfernen oder wenn du neue Pakete zur Installation suchen. |
| |} | | |} |
|
| |
|
Zeile 72: |
Zeile 65: |
| {| class="wikitable sortable options" | | {| class="wikitable sortable options" |
| |- | | |- |
| | -t, --tempdir || Verzeichnis, in dem temporäre Dateien abgelegt werden | | ! Unix !! GNU !! Beschreibung |
| | |- |
| |- | | |- |
| | -h, --help || Kurze Hilfe | | | -t || --tempdir || Verzeichnis, in dem temporäre Dateien abgelegt werden |
| |- | | |- |
| | -v, --version || Programmversion | | | -h || --help || Kurze Hilfe |
| |- | | |- |
| | -c, --config-file || Konfigurationsdatei, die vor der /etc/apt/apt.conf gelesen wird | | | -v || --version || Programmversion |
| |- | | |- |
| | -o, --option || Setzt Konfigurationsoptionen | | | -c || --config-file || Konfigurationsdatei, die vor der /etc/apt/apt.conf gelesen wird |
| | |- |
| | | -o || --option || Setzt Konfigurationsoptionen |
| * Syntax: -o Foo::Bar=bar | | * Syntax: -o Foo::Bar=bar |
| |} | | |} |
|
| |
|
| === Parameter === | | === Parameter === |
| === Umgebungsvariablen === | | === Umgebung === |
| === Exit-Status === | | === Rückgabewert === |
|
| |
|
| == Anwendungen == | | == Anwendung == |
| === Kommandovervollständigung === | | [[File:aptCommand.png|mini|450px|https://www.instagram.com/dan_nanni/]] |
| | |
| | === apt search === |
| | # apt search pdf |
| | |
| | === Problembehebung === |
| | [[APT/Fehlerbehebung]] |
| | |
| | == Konfiguration == |
| | === Kommandovervollständigung === |
| In der unter Linux verwendeten Shell <tt>bash</tt> lassen sich teilweise eingegebene Befehlsnamen durch Drücken der '''TAB'''-Taste vervollständigen. | | In der unter Linux verwendeten Shell <tt>bash</tt> lassen sich teilweise eingegebene Befehlsnamen durch Drücken der '''TAB'''-Taste vervollständigen. |
| * Zunächst funktioniert das ausschließlich für den Programmnamen und nicht für Kommandos und Optionen. | | * Zunächst funktioniert das ausschließlich für den Programmnamen und nicht für Kommandos und Optionen. |
Zeile 100: |
Zeile 105: |
| * Tippen Sie hierzu: <tt>apt-get install im </tt>'''TABTAB''', so werden alle verfügbaren Pakete angezeigt, die mit „im“ beginnen. | | * Tippen Sie hierzu: <tt>apt-get install im </tt>'''TABTAB''', so werden alle verfügbaren Pakete angezeigt, die mit „im“ beginnen. |
|
| |
|
| === Fehlerbehebung ===
| |
|
| |
| == Konfiguration ==
| |
| === Dateien === | | === Dateien === |
| ==== sources.list ====
| | # [[/etc/apt/sources.list]] |
| [[sources.list]] | | # [[/etc/apt/apt.conf]] |
| | # [[/etc/apt/preferences]] |
|
| |
|
| == Sicherheit == | | <noinclude> |
| == Siehe auch == | | == Anhang == |
| {| class="wikitable sortable"
| | === Siehe auch === |
| |-
| |
| ! '''Befehl''' !! Beschreibung
| |
| |-
| |
| | [[apt-cache]] ||
| |
| |-
| |
| | [[apt-config]] ||
| |
| |-
| |
| | [[apt-file]] ||
| |
| |-
| |
| | [[apt-get]] ||
| |
| |-
| |
| | [[apt-listbugs]] ||
| |
| |-
| |
| | [[apt-show-versions]] ||
| |
| |-
| |
| | [[apt-add-repository]] ||
| |
| |-
| |
| | [[apt-cdrom]] ||
| |
| |-
| |
| | [[apt-extracttemplates]] ||
| |
| |-
| |
| | [[apt-ftparchive]] ||
| |
| |-
| |
| | [[apt-key]] ||
| |
| |-
| |
| | [[apt-mark|apt-mark]] ||
| |
| |-
| |
| | [[apt-sortpkgs]] ||
| |
| |}
| |
| | |
| === Unterseiten ===
| |
| {{Special:PrefixIndex/{{BASEPAGENAME}}}} | | {{Special:PrefixIndex/{{BASEPAGENAME}}}} |
| === Dokumentation === | | ==== Dokumentation ==== |
| ==== RFC ==== | | ===== Man-Page ===== |
| ==== Man-Pages ==== | | ==== Links ==== |
| ==== Info-Pages ==== | | ===== Projekt ===== |
| === Links === | | ===== Weblinks ===== |
| ==== Einzelnachweise ==== | |
| <references />
| |
| ==== Projekt ==== | |
| ==== Weblinks ====
| |
|
| |
|
| == Testfragen ==
| | [[Kategorie:Linux/Befehl]] |
| <div class="toccolours mw-collapsible mw-collapsed">
| | [[Kategorie:APT]] |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| {{DEFAULTSORT:apt}} | | {{DEFAULTSORT:apt}} |
| [[Kategorie:Debian-Paketverwaltung]]
| | {{DISPLAYTITLE:apt}} |
| | | </noinclude> |
| | |
| == Advanced Package Tool (APT) ==
| |
| === Paketbeschreibungen ===
| |
| [[Apt/Paketbeschreibungen]]
| |
| | |
| === Zugriff auf ältere Debian Releases ===
| |
| Manchmal kann es notwendig oder sinnvoll sein, ältere Debian Releases einzusetzen, beispielsweise um Debian auf älterer Hardware zu installieren.
| |
| * Eine Übersicht der verfügbaren Debian Releases ist unter [http://www.debian.org/distrib/archive http://www.debian.org/distrib/archive] zu finden.
| |
| | |
| === Zugriff auf tägliche Versionen von Paketen ===
| |
| Die jeweils aktuell in der Entwicklung befindliche Debian Version („testing“ oder „unstable“) unterliegt einem häufigen Wechsel der Paketversionen.
| |
| * Manchmal ist ein Paket nur für einen oder wenige Tage verfügbar.
| |
| * Da nun neuere Versionen nicht immer eine Verbesserung mit sich bringen, wollen Sie vielleicht auf ein älteres Paket ausweichen.
| |
| | |
| Leider sind auf den Debian Servern ältere Pakete nicht mehr verfügbar.
| |
| * Unter [http://snapshot.debian.net/ http://snapshot.debian.net] sind alle Pakete, auch in älteren Versionen, weiterhin zugänglich.
| |
| | |
| Der Zugriff auf dieses Archiv erfolgt mit einigen besonderen Einträgen in der Datei <tt>/etc/sources.list</tt>.
| |
| * Hierbei kann zwischen dem Zugriff über ein absolutes oder ein relatives Datum gewählt werden.
| |
| | |
| deb http://snapshot.debian.net/archive/YYYY/MM/DD/debian unstable main contrib non-free
| |
| deb http://snapshot.debian.net/archive/YYYY/MM/DD/debian-non-US unstable/non-US main contrib non-free
| |
| deb-src http://snapshot.debian.net/archive/YYYY/MM/DD/debian unstable main contrib non-free
| |
| deb-src http://snapshot.debian.net/archive/YYYY/MM/DD/debian-non-US unstable/non-US main contrib non-free
| |
| | |
| Im vorhergehenden Beispiel kann gezielt auf den tagesaktuellen Stand zugegriffen werden.
| |
| * Die Buchstabenkombination <tt>YYYY/MM/DD</tt> ist dabei durch das gewünschte Datum zu ersetzen.
| |
| | |
| deb http://snapshot.debian.net/archive/date/datestr/debian unstable main contrib non-free
| |
| deb http://snapshot.debian.net/archive/date/datestr/debian-non-US unstable/non-US main contrib non-free
| |
| deb-src http://snapshot.debian.net/archive/date/datestr/debian unstable main contrib non-free
| |
| deb-src http://snapshot.debian.net/archive/date/datestr/debian-non-US unstable/non-US main contrib non-free
| |
| | |
| In diesem Beispiel muss <tt>datestr</tt> durch einen String ersetzt werden, der dem Kommando <tt>date</tt> als Datum bekannt ist.
| |
| * Dies kann beispielsweise <tt>yesterday</tt>, <tt>2-days-ago</tt> oder <tt>last-week</tt> sein.
| |
| | |
| == apt.conf ==
| |
| [[/etc/apt/apt.conf]]
| |
| | |
| == APT innerhalb von dselect ==
| |
| Wird APT als Zugriffsmethode von <tt>dselect</tt> verwendet, so können die folgenden Parameter zur Konfiguration verwendet werden.
| |
| | |
| {|| class="wikitable sortable" | |
| |-
| |
| || <tt>'''Clean</tt> '''
| |
| || Modus, um den Paketcache zu verwalten.
| |
| |-
| |
| || <tt>'''options</tt> '''
| |
| || Der Inhalt dieser Variablen wird an <tt>apt-get</tt> als Kommandozeilenoption weitergereicht, wenn eine Installation durchgeführt wird.
| |
| |-
| |
| || <tt>'''Updateoptions</tt> '''
| |
| || Der Inhalt dieser Variablen wird an <tt>apt-get</tt> als Kommandozeilenoption weitergereicht, wenn ein Update durchgeführt wird.
| |
| |-
| |
| || <tt>'''PromptAfterUpdate</tt> '''
| |
| || Wird die Funktion Update im Programm <tt>dselect</tt> verwendet, so wird immer nachgefragt, um eine Aktion fortzusetzen, wenn diese Variable auf True gesetzt ist.
| |
| |-
| |
| |}
| |
| | |
| == Aufruf von DPKG über APT ==
| |
| Im Abschnitt DPkg der Konfigurationsdatei können verschiedene Parameter eingestellt werden, die sich mit dem Aufruf von <tt>dpkg</tt> aus APT-basierenden Programmen beschäftigen.
| |
| | |
| {|| class="wikitable sortable" | |
| |-
| |
| || <tt>'''options</tt> '''
| |
| || Eine Liste von Optionen, die dem Aufruf von <tt>dpkg</tt> übergeben werden.
| |
| |-
| |
| || <tt>'''Pre-Invoke</tt>, <tt>Post-Invoke'''</tt>
| |
| || Eine Liste von Shell-Kommandos, die vor bzw.
| |
| * nach dem Aufruf von <tt>dpkg</tt> ausgeführt werden.
| |
| * Die Kommandos werden mittels <tt>/bin/sh</tt> ausgeführt, sollte eines der Kommandos mit einem Fehler beendet werden, so bricht auf APT an dieser Stelle die weitere Ausführung ab.
| |
| |-
| |
| || <tt>'''Pre-Install-Pkgs</tt> '''
| |
| || Dies ist eine Liste von Kommandos, welche vor dem Aufruf von <tt>dpkg</tt> ausgeführt werden.
| |
| * Die Kommandos werden mittels <tt>/bin/sh</tt> ausgeführt, sollte eines der Kommandos mit einem Fehler beendet werden, so bricht auf APT an dieser Stelle die weitere Ausführung ab.
| |
| * APT übergibt die Namen aller zu installierenden Debian Paketdateien (<tt>.deb</tt>) an die Kommandos.
| |
| |-
| |
| || <tt>'''Run-Directory</tt> '''
| |
| || APT wechselt in das hier angegebene Verzeichnis vor dem Aufruf von <tt>dpkg</tt>.
| |
| * Voreingestellt ist hier das Verzeichnis <tt>/</tt>.
| |
| |-
| |
| || <tt>'''Build-options</tt> '''
| |
| || Diese Optionen werden dem Programm <tt>dpkg-buildpackage</tt> übergeben.
| |
| * Voreingestellt ist, dass Pakete nicht digital signiert werden und alle Binär-Pakete erzeugt werden.
| |
| |-
| |
| |}
| |
| | |
| == apt-get ==
| |
| [[apt-get]]
| |
| | |
| == apt_preferences ==
| |
| [[/etc/apt/preferences]]
| |
| | |
| === Prioritäten ===
| |
| === Voreingestellte Prioritäten ===
| |
| Ist keine APT-Konfigurationsdatei oder kein Eintrag in der Konfigurationsdatei vorhanden, der auf ein Paket passt, so wird für dieses Paket die voreingestellte Priorität verwendet, welche der Distribution entspricht.
| |
| * Es besteht die Möglichkeit, ein bestimmtes Ziel-Release festzulegen, aus dem die Pakete installiert werden sollen.
| |
| * Diese Distribution wird als „Target Release“ bezeichnet.
| |
| * Das Ziel-Release kann dem Programm <tt>apt-get</tt> auf der Kommandozeile übergeben werden oder in der Konfigurationsdatei <tt>/etc/apt/apt.conf</tt>(siehe [http://apt.conf.html/ apt.conf]) gesetzt werden.
| |
| | |
| Auf der Kommandozeile wird das Ziel-Release wie folgt angegeben:
| |
| # apt-get install -t testing paketname
| |
| | |
| Wurde ein Ziel-Release angegeben, so nutzt APT den folgenden Algorythmus, um die Prioritäten eines Paketes zu ermitteln.
| |
| | |
| {|| class="wikitable sortable"
| |
| |-
| |
| || '''Priorität 100'''
| |
| || Wenn das Paket bereits installiert ist.
| |
| |-
| |
| || '''Priorität 500'''
| |
| || Wenn das Paket nicht installiert ist und auch nicht zum Ziel-Release gehört.
| |
| |-
| |
| || '''Priorität 990'''
| |
| || Wenn das Paket nicht installiert ist und zum Ziel-Release gehört.
| |
| |-
| |
| |}
| |
| | |
| Wird das Ziel-Release nicht angegeben, so vergibt APT die Priorität 100 an alle installierten Pakete und die Priorität 500 an alle nicht installierten Pakete.
| |
| * Danach folgt APT den nachfolgend angeführten Regeln, wobei die Regeln in der beschriebenen Reihenfolge abgearbeitet werden. # Ein Paket wird niemals mit einer kleineren Versionsnummer installiert (Downgrade), wenn die Priorität unter 1001 liegt. „Downgrade“ bedeutet, dass eine nicht aktuelle Version eines Paketes installiert wird, obwohl bereits eine aktuelle Version des Paketes installiert ist.
| |
| * Keine voreingestellte Priorität innerhalb von APT übersteigt den Wert 1000, ein solcher Wert kann ausschließlich über die Voreinstellungsdatei (<tt>preferences</tt>) gesetzt werden.
| |
| * Der Downgrade eines Paketes ist in jedem Fall als problematisch anzusehen und sollte nach Möglichkeit vermieden werden.
| |
| * In vielen Fällen führt ein Downgrade zu einem nicht funktionierenden Paket oder gar zu schweren Problemen mit dem Gesamtsystem.
| |
| # Das Paket mit der höchsten Priorität wird installiert.
| |
| # Wenn zwei oder mehrere Versionen eines Paketes die gleiche Priorität haben, so wird die Version mit der höchsten Versionsnummer installiert.
| |
| # Wenn zwei oder mehr Versionen eines Paketes die gleiche Priorität und Versionnummer haben, aber die Pakete sich in den Metadaten unterscheiden, oder aber die Option <tt>--reinstall</tt> auf der Kommandozeile angegeben ist, so wird das nicht installierte Paket ausgewählt.
| |
| | |
| Am häufigsten ist die Situation anzutreffen, dass ein bereits installiertes Paket (Priorität 100) in einer Version installiert ist, die nicht so aktuell (hoch) ist wie ein Paket, welches über eine Quelle in der Datei <tt>/etc/apt/sources.list</tt> (Priorität 500 oder 990) verfügbar ist.
| |
| * Dieses Paket wird aktualisiert, wenn das Kommando <tt>apt-get install paketname</tt> oder <tt>apt-get upgrade</tt> ausgeführt wird.
| |
| | |
| Seltener tritt der Fall ein, dass ein bereits installiertes Paket in einer aktuelleren Version vorhanden ist und kein Paket aus einer der in der Datei <tt>/etc/apt/sources.list</tt> genannten Quellen eine höhere Versionsnummer aufweist.
| |
| * In diesem Fall wird kein Downgrade durchgeführt, wenn das Kommando <tt>apt-get install paketname</tt> oder <tt>apt-get upgrade</tt> ausgeführt wird.
| |
| | |
| Manchmal ist die bereits installierte Version eines Paketes aktueller als die zum Ziel-Release gehörende Version, jedoch nicht so aktuell wie ein Paket, welches aus einer anderen Distribution verfügbar ist.
| |
| * In diesem Fall wird das Paket durch das Kommando <tt>apt-get install paketname</tt> oder <tt>apt-get upgrade</tt> aktualisiert, da eine der verfügbaren Versionen eine höhere Priorität besitzt als die aktuell installierte Version.
| |
| | |
| === Verwenden von Voreinstellungen ===
| |
| | |
| Die APT Konfigurationsdatei <tt>/etc/apt/preferences</tt> erlaubt dem Administrator, die Zuweisung von Prioritäten detailliert zu steuern.
| |
| * Die Konfigurationsdatei besteht aus Einträgen, die sich über mehrere Zeilen erstrecken und untereinander durch Leerzeilen getrennt sind.
| |
| * Die Einträge beziehen sich auf ein einzelnes Paket (spezifische Form) oder auf eine Anzahl von Paketen (generelle Form). # Die spezifische Form weist einem Paket eine (Pin-)Priorität zu und übergibt dabei eine gewünschte Version oder einen Versionsbereich.
| |
| * Das folgende Beispiel weist allen Versionen des Paketes <tt>perl</tt> eine hohe Priorität zu, solange die Versionsnummer mit „5.8“ beginnt. <br/>Package: perlPin: version 5.8*Pin-Priority: 1001
| |
| # Die generelle Form setzt eine Priorität für die angegebene Distribution oder für alle Pakete von einem bestimmten Server, welcher über den vollen Domainnamen (FQDN) identifiziert wird. <br/>Diese generelle Form wirkt sich ausschließlich auf Gruppen von Paketen aus.
| |
| * Folgendes Beispiel weist allen Paketversionen auf einem lokalen Repository mit Paketen eine hohe Priorität zu. <br/>Package: *Pin: origin ""Pin-Priority: 999<br/>Zu beachten ist hier das Schlüsselwort „origin“.
| |
| * Dieses entspricht nicht dem gleich lautenden Begriff in einer „Release“-Datei! In einer „Release“-Datei wird mit dem Schlüsselwort „origin“ ein Autor oder Hersteller (beispielsweise „Debian“ oder „Ximian“) beschrieben, nicht eine Internetadresse. <br/>Der folgende Eintrag setzt eine geringe Priorität für alle Paketversionen, die zu einer als „unstable“ bezeichneten Distribution gehören. <br/>Package: *Pin: release a=unstablePin-Priority: 50<br/>Das letzte Beispiel zeigt einen Eintrag, der eine hohe Priorität allen Paketen zuweist, die zum Release „stable“ gehören und eine Versionsnummer von „3.0“ aufweisen. <br/>Package: *Pin: release a=unstable, v=3.0Pin-Priority: 50
| |
| | |
| === Bewertung von Prioritäten ===
| |
| | |
| Prioritäten (P), die in der APT-Konfigurationsdatei vergeben werden, müssen positive oder negative Integerzahlen sein.
| |
| * Diese werden wie folgt interpretiert.
| |
| | |
| {|| class="wikitable sortable"
| |
| |-
| |
| || '''P > 1000'''
| |
| || Installiert ein Paket, auch wenn dies ein „Downgrade“ des Paketes bewirkt.
| |
| |-
| |
| || '''990 < P <= 1000'''
| |
| || Installiert ein Paket, auch wenn es nicht aus dem „Target“-Release stammt, außer die bereits installierte Version ist aktueller.
| |
| |-
| |
| || '''500 < P <= 990'''
| |
| || Installiert ein Paket, wenn kein Paket passend zum „Target“-Release vorhanden ist oder die bereits installierte Version aktueller ist.
| |
| |-
| |
| || '''100 < P <= 500'''
| |
| || Bewirkt, dass eine Version installiert wird, solange keine andere Version aus irgeneiner anderen Distribution verfügbar ist oder aber die installierte Version aktueller ist.
| |
| |-
| |
| || '''0 < ? <= 100'''
| |
| || Installiert eine Version eines Paketes nur, wenn dieses Paket noch nicht installiert ist.
| |
| |-
| |
| || '''P < 0'''
| |
| || Verhindert, dass diese Version eines Paketes installiert wird.
| |
| |-
| |
| |}
| |
| | |
| Die Einträge werden in der aufgeführten Reihenfolge in der Konfigurationsdatei abgearbeitet.
| |
| * Wird ein auf das Paket oder die Paketgruppe passender Eintrag gefunden, so werden die folgenden Einträge ignoriert.
| |
| | |
| Sind die vorab beschriebenen Einträge in einer Konfigurationsdatei in der beschriebenen Reihenfolge abgelegt, so ergibt sich folgende Konfigurationsdatei:
| |
| | |
| # Package: perl
| |
| Pin: version 5.8*
| |
| Pin-Priority: 1001
| |
|
| |
| Package: *
| |
| Pin: origin ""
| |
| Pin-Priority: 999
| |
|
| |
| Package: *
| |
|
| |
| Pin: release unstable
| |
| Pin-Priority: 50
| |
| | |
| In dieser Zusammenstellung gelten folgende Regeln: # Es wird die aktuellste Version des Paketes „perl“ installiert, solange diese Version mit „5.8“ beginnt.
| |
| * Ist eine Version 5.8 von Perl verfügbar und ist die Version 5.9 bereits installiert, so wird ein „Downgrade“ durchgeführt.
| |
| # Jedes andere Paket, welches nicht das Paket „perl“ ist und auf dem lokalen System verfügbar ist, bekommt eine höhere Priorität.
| |
| * Dies bewirkt, dass nur wenige, nicht lokal verfügbare Pakete aus dem Netz installiert werden.
| |
| * Dies betrifft auch Versionen des „Target“-Release.
| |
| # Ein Paket, welches nicht auf dem lokalen System verfügbar ist, aber in einer Quelle in der Datei <tt>/etc/apt/sources.list</tt> aufgeführt wird und zu einem „unstable“ Release gehört, wird nur installiert, wenn es zur Installation ausgewählt wird und noch keine Version dieses Paketes installiert ist.
| |
| | |
| == Paketversionen und Distributionseigenschaften ==
| |
| Die Paketquellen, welche in der Datei <tt>/etc/apt/sources.list</tt> aufgeführt werden, enthalten im Idealfall die Dateien <tt>Packages</tt> (bzw. <tt>Packages.gz</tt>) und <tt>Release</tt>, mit denen die an der jeweiligen Quelle verfügbaren Pakete beschrieben werden.
| |
| | |
| Die Datei <tt>Packages</tt> befindet sich normalerweise im Pfad <tt>.../dists/dist-name/component/arch</tt>, also beispielsweise <tt>.../dists/stable/main/binary-i386/Packages</tt>.
| |
| * Diese Datei besteht aus einem mehrzeiligen Eintrag für jedes Paket, von dem für die APT Prioritäten lediglich die beiden Zeilen <tt>Package</tt> und <tt>Version</tt> benötigt werden.
| |
| | |
| Die Datei <tt>Release</tt> befindet sich im Pfad <tt>.../dists/dist-name</tt>, also beispielsweise unter <tt>.../dists/stable/Release</tt> oder auch <tt>.../dists/sarge/Release</tt>.
| |
| * Abweichend von der Datei <tt>Packages</tt> werden fast alle Informationen aus der <tt>Release</tt>-Datei benötigt.
| |
| | |
| ; Diese sind:
| |
| ==== Archive ====
| |
| # Bezeichnet das Archiv, zu dem alle Pakete dieses Verzeichnisses gehören.
| |
| * Beispielsweise gibt die Zeile <tt>Archive: stable</tt> an, dass alle Pakete in dem Verzeichnisbaum unterhalb der Datei <tt>Release</tt> zum „stable“-Release von Debian gehören.
| |
| | |
| # In der APT Konfigurationsdatei wird dieser Wert wie folgt gesetzt:
| |
| | |
| # Pin: release a=stable
| |
| | |
| ==== Version ====
| |
| # Diese Zeile bezeichnet die Release-Version der Distribution.
| |
| * Der Wert „3.1“ besagt auch, dass alle Pakete im Verzeichnisbaum zur Release 3.1 „Sarge“ von Debian gehören.
| |
| * Für Versionen wie „testing“ und „unstable“ werden keine Versionsnummern vergeben, da diese Versionen noch nicht veröffentlicht sind.
| |
| * Um diesen Wert in der APT-Konfigurationsdatei anzugeben, ist eine der folgenden Zeilen notwendig:
| |
| | |
| # Pin: release v=3.0
| |
| Pin: release a=stable, v=3.0
| |
| Pin: release 3.0
| |
| | |
| ==== Component ====
| |
| # Bezeichnet den Abschnitt der Distribution, aus der die Pakete stammen.
| |
| * Beispielsweise bezeichnet die Zeile <tt>Component: main</tt> in der <tt>Release</tt>-Datei, dass alle Pakete unterhalb diese Verzeichnisses zum Abschnitt „main“ gehören.
| |
| * Dies bedeutet auch, dass alle diese Pakete einer Lizenz entsprechen, die in den Debian Free Software Guidelines (siehe auch [http://dfsg.html/ DFSG]) festgelegt ist.
| |
| * Diese Angabe wird wie folgt in der APT-Konfigurationsdatei <tt>preferences</tt> festgelegt
| |
| | |
| # Pin: release c=main
| |
| | |
| ==== Origin ====
| |
| # Bezeichnet den Ursprung der Pakete, meist ist hier „Debian“ angegeben.
| |
| * In der APT <tt>preferences</tt>-Datei sieht diese Zeile wie folgt aus:
| |
| | |
| # Pin: release o=Debian
| |
| | |
| ==== Label ====
| |
| # Eine Bezeichnung für die Pakete in diesem Verzeichnisbaum, dieser Eintrag hat meistens den Wert „Debian“.
| |
| * In der APT <tt>preferences</tt>-Datei sieht diese Zeile wie folgt aus:
| |
| | |
| # Pin: release l=Debian
| |
| | |
| Alle verfügbaren Dateien (<tt>Packages</tt> und <tt>Release</tt>), die über Quellen in der Datei <tt>/etc/apt/sources.list</tt> verfügbar sind, werden im Verzeichnis <tt>/var/lib/apt/lists/</tt> abgelegt.
| |
| * Dieses Verzeichnis kann durch die Variable <tt>Dir::State::Lists</tt> in der Datei <tt>apt.conf</tt> verändert werden.
| |
| * Die Dateinamen der gespeicherten <tt>Packages</tt> und <tt>Release</tt>-Dateien werden mit dem Namen des Servers sowie dem Pfad und der Architektur ergänzt, beispielsweise <tt>debiananwenderhandbuch.de_debian_dists_stable_main_binary-i386_Packages</tt>.
| |
| | |
| Weiterhin ist es möglich, eine oder mehrere Zeilen, beginnend mit dem Schlüsselwort <tt>Explanation:</tt>, mit einer Erklärung dieses Eintrages einzufügen.
| |
| | |
| Die Zeile <tt>Pin-Priority:</tt> in jedem Eintrag ist nicht zwingend erforderlich.
| |
| * Wird ein solcher Eintrag nicht gefunden, so wird eine um den Wert 1 reduzierte Priorität gegenüber dem vorhergehenden Eintrag vergeben.
| |
| | |
| === Beispiele ===
| |
| Das erste Beispiel zeigt, wie man allen Paketen der „stable“ Distribution eine Priorität über der vorgegebenen (von 500) zuweist.
| |
| * Bei allen anderen Paketen wird die Priorität um den Wert 10 verringert.
| |
| | |
| # Explanation: Uninstall or do not install any Debian-originated
| |
| Explanation: package versions other than those in the stable distro
| |
| Package: *
| |
| Pin: release a=stable
| |
| Pin-Priority: 900
| |
| | |
| Package: *
| |
| Pin: release o=Debian
| |
| Pin-Priority: -10
| |
| | |
| Die beschriebene Konfiguration führt dazu, dass alle Pakete aus der aktuellen „stable“ Distribution installiert werden bzw. bereits installierte Pakete immer aktuell gehalten werden. Darüber hinaus ist es möglich, einzelne Pakete aus anderen Distributionen zu installieren, hier am Beispiel eines Paketes aus „testing“ gezeigt:
| |
| | |
| # apt-get install paketname/testing
| |
| | |
| Das so aus „testing“ installierte Paket wird zu einem späteren Zeitpunkt nicht weiter aktualisiert.
| |
| * Dies muss von Hand durch den erneuten Aufruf des oben beschriebenen Kommandos erfolgen.
| |
| | |
| Das zweite Beispiel setzt eine hohe Priorität für Pakete aus dem „testing“-Zweig, eine etwas niedrigere Priorität für den „unstable“-Zweig und eine noch geringere Priorität für Pakete aus anderen Bereichen.
| |
| # Package: *
| |
| Pin: release a=testing
| |
| Pin-Priority: 900
| |
| | |
| Package: *
| |
| Pin: release a=unstable
| |
| Pin-Priority: 800
| |
| | |
| Package: *
| |
| Pin: release o=Debian
| |
| Pin-Priority: -10
| |
| | |
| Diese Konfiguration bewirkt, dass bevorzugt Pakete aus „testing“ in den jeweils aktuellen Versionen installiert werden.
| |
| | |
| ; Einzelne Pakete aus dem „unstable“-Bereich installieren
| |
| # apt-get install paketname/unstable
| |
| | |
| === APT Pinning ===
| |
| [[Apt/Pinning]]
| |
| | |
| === apt-key ===
| |
| [[apt-key]]
| |
| | |
| === apt-extracttemplates ===
| |
| [[apt-extracttemplates]]
| |
| | |
| === apt-cache ===
| |
| [[apt-cache]]
| |
| | |
| | |
| {{DEFAULTSORT:apt}}
| |
| [[Kategorie:Linux/Befehl]]
| |
| [[Kategorie:Apt]]
| |