apt

Aus Foxwiki
Subpages:

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

Beschreibung

APT („Advanced Package Tool“) stellt die nächste Generation der Debian GNU/Linux-Paketverwaltung dar.

In diesem Abschnitt wird zunächst auf die Konfiguration und Benutzung von Kommandozeilentools wie apt und dpkg sowie deren Verwandten eingegangen.

  • Später werden dann auch grafische Frontends zur Paketverwaltung beschrieben.

apt ist ein Werkzeug, um Software-Pakete zu verwalten

  • installiert
  • Abhängigkeiten automatisch auflösen
  • Konfigurationsdateien beim Installieren bzw. Aktualisieren 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

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 apt-get auf der Kommandozeile übergeben werden oder in der Konfigurationsdatei /etc/apt/apt.conf(siehe 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.

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 (preferences) 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.
  1. Das Paket mit der höchsten Priorität wird installiert.
  2. Wenn zwei oder mehrere Versionen eines Paketes die gleiche Priorität haben, so wird die Version mit der höchsten Versionsnummer installiert.
  3. 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 --reinstall 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 /etc/apt/sources.list (Priorität 500 oder 990) verfügbar ist.

  • Dieses Paket wird aktualisiert, wenn das Kommando apt-get install paketname oder apt-get upgrade 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 /etc/apt/sources.list genannten Quellen eine höhere Versionsnummer aufweist.

  • In diesem Fall wird kein Downgrade durchgeführt, wenn das Kommando apt-get install paketname oder apt-get upgrade 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 apt-get install paketname oder apt-get upgrade aktualisiert, da eine der verfügbaren Versionen eine höhere Priorität besitzt als die aktuell installierte Version.

Verwenden von Voreinstellungen

Die APT Konfigurationsdatei /etc/apt/preferences 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 perl eine hohe Priorität zu, solange die Versionsnummer mit „5.8“ beginnt.
    Package: perlPin: version 5.8*Pin-Priority: 1001
  1. 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.
    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.
    Package: *Pin: origin ""Pin-Priority: 999
    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.
    Der folgende Eintrag setzt eine geringe Priorität für alle Paketversionen, die zu einer als „unstable“ bezeichneten Distribution gehören.
    Package: *Pin: release a=unstablePin-Priority: 50
    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.
    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.
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.
  1. 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.
  1. Ein Paket, welches nicht auf dem lokalen System verfügbar ist, aber in einer Quelle in der Datei /etc/apt/sources.list 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 /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