Apt: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
Zeile 3: Zeile 3:


== Beschreibung ==
== Beschreibung ==
''apt'' ist ein Werkzeug, um Software-Pakete zu verwalten
; ''apt'' ist ein Werkzeug, um Software-Pakete zu verwalten
* installiert
* installieren
* Abhängigkeiten automatisch auflösen
* Abhängigkeiten auflösen
* Konfigurationsdateien beim Installieren bzw. Aktualisieren berücksichtigen
* Konfigurationsdateien bei berücksichtigen


; Funktion
; Funktion

Version vom 1. April 2023, 13:18 Uhr

apt (Advanced Packaging Tool) ist ein Paketmanager für Debian-Systeme

Beschreibung

apt ist ein Werkzeug, um Software-Pakete zu verwalten
  • installieren
  • Abhängigkeiten auflösen
  • Konfigurationsdateien bei berücksichtigen
Funktion
  • Suche und Verwaltung von Paketen
  • Abfrage von Informationen zu Paketen
apt-get
  • Vorgänger von apt
  • Gleiche Funktionalität

Installation

Das Advanced Package Tool ist grundlegender Bestandteil von Debian und ist auf jedem System verfügbar.

Syntax

# apt [Befehl [Optionen]] (Paket)


Befehle

Befehl Option Beschreibung
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)
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)
remove entfernt das angegebene Paket, ohne jedoch dessen Konfigurationsdateien zu löschen
purge vollständige Entfernung des angegebenen Paketes (inklusive Konfigurationsdateien)
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.
search Begriff durchsucht den Volltext sämtlicher Paketbeschreibungen nach dem angegebenen Suchbegriff und gibt eine Liste gefundener Pakete aus (inklusive Kurzbeschreibung)
install Angegebenes Paket installieren
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 )
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.
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.
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.

Optionen

-t, --tempdir Verzeichnis, in dem temporäre Dateien abgelegt werden
-h, --help Kurze Hilfe
-v, --version Programmversion
-c, --config-file Konfigurationsdatei, die vor der /etc/apt/apt.conf gelesen wird
-o, --option Setzt Konfigurationsoptionen
  • Syntax: -o Foo::Bar=bar

Parameter

Umgebungsvariablen

Exit-Status

Anwendungen

Kommandovervollständigung

In der unter Linux verwendeten Shell bash 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.

Mit dem Kommando source /etc/bash_completion können einige weitere Makros für die Shell geladen werden.

  • Danach ist es möglich, auch Optionen von Befehlen automatisch zu vervollständigen (tippen Sie beispielsweise dpkg -TABTAB, so werden alle Optionen zum Befehl dpkg angezeigt).
  • Dies funktioniert natürlich nicht nur mit Befehlen zur Verwaltung von Debian Paketen, sondern auch mit jedem anderen Befehl.

Darüber hinaus ist es möglich, auch Paketnamen, beispielsweise bei der Installation, zu vervollständigen.

  • Tippen Sie hierzu: apt-get install im TABTAB, so werden alle verfügbaren Pakete angezeigt, die mit „im“ beginnen.

Fehlerbehebung

Konfiguration

Dateien

sources.list

sources.list

Sicherheit

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-sortpkgs

Unterseiten

Dokumentation

RFC

Man-Pages

Info-Pages

Links

Einzelnachweise

Projekt

Weblinks

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5


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.

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.

Der Zugriff auf dieses Archiv erfolgt mit einigen besonderen Einträgen in der Datei /etc/sources.list.

  • 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 YYYY/MM/DD 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 datestr durch einen String ersetzt werden, der dem Kommando date als Datum bekannt ist.

  • Dies kann beispielsweise yesterday, 2-days-ago oder last-week sein.

apt.conf

/etc/apt/apt.conf

APT innerhalb von dselect

Wird APT als Zugriffsmethode von dselect verwendet, so können die folgenden Parameter zur Konfiguration verwendet werden.

Clean Modus, um den Paketcache zu verwalten.
options Der Inhalt dieser Variablen wird an apt-get als Kommandozeilenoption weitergereicht, wenn eine Installation durchgeführt wird.
Updateoptions Der Inhalt dieser Variablen wird an apt-get als Kommandozeilenoption weitergereicht, wenn ein Update durchgeführt wird.
PromptAfterUpdate Wird die Funktion Update im Programm dselect 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 dpkg aus APT-basierenden Programmen beschäftigen.

options Eine Liste von Optionen, die dem Aufruf von dpkg übergeben werden.
Pre-Invoke, Post-Invoke Eine Liste von Shell-Kommandos, die vor bzw.
  • nach dem Aufruf von dpkg ausgeführt werden.
  • Die Kommandos werden mittels /bin/sh ausgeführt, sollte eines der Kommandos mit einem Fehler beendet werden, so bricht auf APT an dieser Stelle die weitere Ausführung ab.
Pre-Install-Pkgs Dies ist eine Liste von Kommandos, welche vor dem Aufruf von dpkg ausgeführt werden.
  • Die Kommandos werden mittels /bin/sh 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 (.deb) an die Kommandos.
Run-Directory APT wechselt in das hier angegebene Verzeichnis vor dem Aufruf von dpkg.
  • Voreingestellt ist hier das Verzeichnis /.
Build-options Diese Optionen werden dem Programm dpkg-buildpackage ü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

Apt/Pinning#Prioritäten

Paketversionen und Distributionseigenschaften

Die Paketquellen, welche in der Datei /etc/apt/sources.list aufgeführt werden, enthalten im Idealfall die Dateien Packages (bzw. Packages.gz) und Release, mit denen die an der jeweiligen Quelle verfügbaren Pakete beschrieben werden.

Die Datei Packages befindet sich normalerweise im Pfad .../dists/dist-name/component/arch, also beispielsweise .../dists/stable/main/binary-i386/Packages.

  • Diese Datei besteht aus einem mehrzeiligen Eintrag für jedes Paket, von dem für die APT Prioritäten lediglich die beiden Zeilen Package und Version benötigt werden.

Die Datei Release befindet sich im Pfad .../dists/dist-name, also beispielsweise unter .../dists/stable/Release oder auch .../dists/sarge/Release.

  • Abweichend von der Datei Packages werden fast alle Informationen aus der Release-Datei benötigt.
Diese sind

Archive

# Bezeichnet das Archiv, zu dem alle Pakete dieses Verzeichnisses gehören.
  • Beispielsweise gibt die Zeile Archive: stable an, dass alle Pakete in dem Verzeichnisbaum unterhalb der Datei Release 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 Component: main in der Release-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 DFSG) festgelegt ist.
  • Diese Angabe wird wie folgt in der APT-Konfigurationsdatei preferences festgelegt
# Pin: release c=main

Origin

# Bezeichnet den Ursprung der Pakete, meist ist hier „Debian“ angegeben.
  • In der APT preferences-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 preferences-Datei sieht diese Zeile wie folgt aus:
# Pin: release l=Debian

Alle verfügbaren Dateien (Packages und Release), die über Quellen in der Datei /etc/apt/sources.list verfügbar sind, werden im Verzeichnis /var/lib/apt/lists/ abgelegt.

  • Dieses Verzeichnis kann durch die Variable Dir::State::Lists in der Datei apt.conf verändert werden.
  • Die Dateinamen der gespeicherten Packages und Release-Dateien werden mit dem Namen des Servers sowie dem Pfad und der Architektur ergänzt, beispielsweise debiananwenderhandbuch.de_debian_dists_stable_main_binary-i386_Packages.

Weiterhin ist es möglich, eine oder mehrere Zeilen, beginnend mit dem Schlüsselwort Explanation:, mit einer Erklärung dieses Eintrages einzufügen.

Die Zeile Pin-Priority: 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