// Datei: ./werkzeuge/paketoperationen/aus-welchem-repo-kommen-die-pakete.adoc

// Baustelle: Fertig

[[aus-welchem-repo-kommen-die-pakete]]
=== Aus welchem Repo kommen die Pakete ===

// Stichworte für den Index
(((/etc/apt/sources.list)))
Nutzen Sie Pakete aus verschiedenen Paketquellen in
`/etc/apt/sources.list` (siehe <<etc-apt-sources.list-verstehen>>), ist
es hilfreich zu wissen, woher APT ein Paket bei der Installation oder
Aktualisierung entnehmen würde. Bei der Beantwortung dieser Frage helfen
Ihnen die Programme `apt-cache`, `apt-show-versions`, `apt` und
`aptitude` weiter – aber jedes auf seine Art.

==== Paketquellen untersuchen mit `apt-cache policy` ====

// Stichworte für den Index
(((apt-cache, policy)))
(((apt-pinning, Priorität eines Eintrags)))
Dazu rufen Sie `apt-cache` mit dem Schalter `policy` und _ohne_ Angabe 
eines Pakets auf. Das Programm untersucht daraufhin jede einzelne 
Paketquelle, die Sie in `/etc/apt/sources.list` eingetragen haben. Das
Ergebnis der Analyse ist zweispaltig. In der linken Spalte erscheint ein
Zahlenwert zur Priorität des jeweiligen Eintrags, wie er von
`apt-pinning` genutzt wird (siehe dazu <<paketformate-mischen>>). In der
rechten Spalte sehen Sie die Paketquelle anhand der heruntergeladenen,
lokalen Paketliste mit zusätzlichen Informationen wie bspw. der
Veröffentlichung oder des Distributionsbereichs. Nachfolgende
Darstellung zeigt die Ausgabe für eine Standardinstallation von Debian
'Wheezy' in der Version 7.5 mit dem Nutzungsschwerpunkt Deutschland.

.Bewertung der Paketquellen mit `apt-cache policy`
----
$ apt-cache policy
Paketdateien:
 100 /var/lib/dpkg/status
     release a=now
 500 http://security.debian.org/ wheezy/updates/non-free Translation-en
 500 http://security.debian.org/ wheezy/updates/main Translation-en
 500 http://security.debian.org/ wheezy/updates/contrib Translation-en
 500 http://security.debian.org/ wheezy/updates/non-free i386 Packages
     release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=non-free
     origin security.debian.org
 500 http://security.debian.org/ wheezy/updates/contrib i386 Packages
     release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=contrib
     origin security.debian.org
 500 http://security.debian.org/ wheezy/updates/main i386 Packages
     release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=main
     origin security.debian.org
 500 http://ftp.de.debian.org/debian/ wheezy/non-free Translation-en
 500 http://ftp.de.debian.org/debian/ wheezy/main Translation-en
 500 http://ftp.de.debian.org/debian/ wheezy/main Translation-de_DE
 500 http://ftp.de.debian.org/debian/ wheezy/main Translation-de
 500 http://ftp.de.debian.org/debian/ wheezy/contrib Translation-en
 500 http://ftp.de.debian.org/debian/ wheezy/non-free i386 Packages
     release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=non-free
     origin ftp.de.debian.org
 500 http://ftp.de.debian.org/debian/ wheezy/contrib i386 Packages
     release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=contrib
     origin ftp.de.debian.org
 500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
     release v=7.5,o=Debian,a=stable,n=wheezy,l=Debian,c=main
     origin ftp.de.debian.org
Mit Pinning verwaltete Pakete:
$
----

==== Informationen für ein bestimmtes Paket erhalten ====

Geben Sie hingegen beim Aufruf als Parameter einen Paketnamen an, prüft
`apt-cache`, ob das Paket bereits auf Ihrem System installiert ist oder
ob es ein neueres Paket gibt und falls ja, von welchem Paketmirror das
Paket in diesem Fall käme.

*Beispiel 1* zeigt das Vorgehen anhand des Pakets 'gdm3'. Im
vorliegenden Fall ist dieses bereits installiert (Status von `dpkg`)
Falls es das noch nicht wäre, käme das Paket aus dem deutschen
Debian-Repository.

.Verfügbarkeit für das Paket 'gdm3' feststellen
----
$ apt-cache policy gdm3
gdm3:
  Installiert:           3.4.1-8
  Installationskandidat: 3.4.1-8
  Versionstabelle:
 *** 3.4.1-8 0
        500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
        100 /var/lib/dpkg/status
$
----

*Beispiel 2* betrifft das Paket 'linux-libc-dev'. Dieses ist bereits in
Version 3.2.51-1 installiert, aber es gibt eine aktuellere Variante
(3.2.57-3) sowie zusätzlich eine Sicherheitsaktualisierung
(Security-Update) mit der Versionsnummer 3.2.46-1+deb7u1. In diesem Fall
ist die Version 3.2.57-3 der Installationskandidat, da dieses Paket die
aktuellste Variante darstellt.

.Verfügbarkeit für das Paket 'linux-libc-dev' feststellen
----
$ apt-cache policy linux-libc-dev
linux-libc-dev:
  Installiert:           3.2.51-1
  Installationskandidat: 3.2.57-3
  Versionstabelle:
     3.2.57-3 0
        500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
 *** 3.2.51-1 0
        100 /var/lib/dpkg/status
     3.2.46-1+deb7u1 0
        500 http://security.debian.org/ wheezy/updates/main i386 Packages
$
----

Als *Beispiel 3* steht das Paket 'kteatime' im Fokus. Dieses ist noch
nicht installiert und könnte nachgezogen werden. Dabei käme das Paket
aus dem deutschen Debian-Repository.

.Verfügbarkeit für das Paket 'kteatime' feststellen
----
$ apt-cache policy kteatime
kteatime:
  Installiert:           (keine)
  Installationskandidat: 4:4.8.4-1
  Versionstabelle:
     4:4.8.4-1 0
        500 http://ftp.de.debian.org/debian/ wheezy/main i386 Packages
$
----

[[verfuegbare-paketversionen-ermitteln]]
==== Verfügbare Paketversionen ermitteln ====

Hier spielen die Programme `apt-cache`, `rmadison`, `aptitude`, `apt` und
`apt-show-versions` ihre Stärken aus. Darauf gehen wir ausführlich in 
<<paketversionen-anzeigen>> ein.

// Datei (Ende): ./werkzeuge/paketoperationen/aus-welchem-repo-kommen-die-pakete.adoc
