// Datei: ./werkzeuge/paketoperationen/paketversionen-anzeigen.adoc

// Baustelle: Fertig

[[paketversionen-anzeigen]]

=== Verfügbare Versionen eines Paketes anzeigen ===

==== `aptitude` verwenden ====

`aptitude` bietet Ihnen mehrere Wege an, um diese Frage zu beantworten.
Zur Verfügung stehen die beiden Unterkommandos `versions` und `search`.

// Stichworte für den Index
(((aptitude, versions)))
(((Paket, verfügbare Versionen anzeigen)))
(((Pakete aktualisieren, verfügbare Versionen anzeigen)))
Um alle verfügbaren Varianten eines Pakets für alle Veröffentlichungen
anzuzeigen, nutzen Sie die `aptitude`-Option `versions`. Nachfolgende
Ausgabe illustriert die Recherche nach den Paketen, in denen die
Zeichenkette 'tzdata' im Paketnamen enthalten ist. Hier werden zudem
ausschließlich Pakete aus der Veröffentlichung _stable_ bezogen. Die
Sortierung erfolgt paketweise, d.h. zunächst erhalten Sie eine Zeile mit
dem Paketnamen und darunter zusätzliche Informationen zur verfügbaren
Version. Die erste Spalte zeigt dabei den Paketstatus an, danach die
Versionsnummer, die Veröffentlichung und als letztes die Priorität
(siehe dazu ``Veröffentlichungen mischen'' in
<<veroeffentlichungen-mischen>>).

.Die verfügbaren Versionen zu den Paketen 'tzdata' anzeigen
----
$ aptitude versions 'tzdata'
Paket tzdata:
p   2015f-0+deb8u1               stable  500 
i   2015g-0+deb8u1               stable- 500 

Paket tzdata-java:
p A 2015f-0+deb8u1               stable  500 
i A 2015g-0+deb8u1               stable- 500
$
----

// Stichworte für den Index
(((aptitude, versions --show-package-names)))
(((aptitude, versions --group-ny)))
(((Paket, verfügbare Versionen anzeigen)))
Wünschen Sie nur eine kompakte Ausgabe zu einem konkreten Paket ohne
Darstellung des Paketnamens, helfen Ihnen die beiden Schalter
`--show-package-names` mit dem Wert `never` und `--group-by` mit dem
Wert `none` weiter. Ersteres blendet den Paketnamen aus, während der
zweite Schalter die Gruppierung in der Ausgabe deaktiviert.
Ausführlicher gehen wir auf die Gruppierung in <<aptitude-gruppierung>>
ein.

.Kompakte Ausgabe ohne Paketname
----
$ aptitude versions 'tzdata-java' --show-package-names=never --group-by=none
p A 2015f-0+deb8u1               stable  500
i A 2015g-0+deb8u1               stable- 500
$
----

// Stichworte für den Index
(((aptitude, search '~U')))
(((aptitude, search '?upgradable')))
(((Paketversion anzeigen)))
Aktualisierbare Pakete finden Sie mit Hilfe des Suchfilters `search '~U'` 
bzw. `search '?upgradable'` in der Langform. Ergebnis ist eine Liste der 
Pakete, welche den Installationsstatus, den Paketnamen und die kurze 
Paketbeschreibung umfasst.

.Ausgabe von `aptitude` zur Liste der aktualisierbaren Pakete
----
$ aptitude search '~U'
i   acpi-support      - Skripte zur Verwaltung von ACPI-Ereignissen           
i   acpi-support-base - Skripte zur Verarbeitung grundlegender ACPI-Ereignisse
i   iceweasel         - Webbrowser auf Basis von Firefox                      
i A libc-bin          - Die »Embedded GNU C Library«: Binärdateien            
i A libc-dev-bin      - Embedded GNU C Library: Entwicklungsbinärdaten        
i   libc6             - Die »Embedded GNU C Library«: Laufzeitbibliotheken    
i A libc6-dev         - Die »Embedded GNU C Library«: Entwicklungsbibliotheken
i   libc6-i686        - »Embedded GNU C Library«: Laufzeitbibliotheken [optimi
i A libmozjs24d       - Mozilla SpiderMonkey JavaScript library               
i A xulrunner-24.0    - XUL + XPCOM application runner
$
----

==== Mit `apt` stöbern ====

// Stichworte für den Index
(((Debianpaket, apt)))
(((apt, list --all-versions)))

Auch `apt` liefert mittlerweile einen Schalter mit, der Ihnen bei der 
Recherche nach neuen Versionen weiterhilft. Dieser heißt `--all-versions`
und entfaltet seine Wirkung in Kombination mit dem Unterkommando `list`.
Ohne weitere Angabe eines Paketes überprüft es alle Pakete im Repository.

Das nachfolgende Beispiel stammt von einem Debian 9 'Stretch', während
bereits der Nachfolger 10 'Buster' als stabile Veröffentlichung gilt. Sie 
sehen, dass `apt` die beiden Pakete 'mc' und 'xpdf' überprüft und die Pakete
der Veröffentlichung _oldstable_ zuordnet. 'mc' war bereits installiert, da 
die Konfigurationsdateien noch vorhanden sind. 'xpdf' ist hingegen noch 
vollständig installiert. Beide Pakete stehen in einer neueren Version im 
Repository bereit. `apt` listet nach dem Namen die Paketversion und die 
Architektur auf.

.Status der installierten Pakete anzeigen
----
$ apt list --all-versions mc xpdf
Auflistung... Fertig
mc/oldstable,now 3:4.8.18-1 amd64 [Konfiguration-verbleibend]

xpdf/oldstable,now 3.04-4 amd64  [installiert]

$
----

==== `apt-show-versions` verwenden ====

// Stichworte für den Index
(((Debianpaket, apt-show-versions)))
(((Debianpaket, base-files)))
(((Debianpaket, mc)))
(((Debianpaket, xpdf)))
(((apt-show-versions)))
Als gleichwertige Alternative zu `aptitude` und `apt` steht Ihnen auch das 
Werkzeug `apt-show-versions` aus dem gleichnamigen Debianpaket zur Verfügung 
<<Debian-Paket-apt-show-versions>> (siehe auch ``Aus welchem Repo kommen die 
Pakete'' in <<aus-welchem-repo-kommen-die-pakete>>). Dieses Paket gehört 
nicht zur Standardinstallation und ist daher zusätzlich zu installieren.

Die nachfolgende Ausgabe zeigt den Status des Pakets `base-files` an. Daraus
erkennen Sie, daß dieses Paket installiert ist und für dieses eine neuere 
Version bereitsteht. `apt-show-versions` zeigt Ihnen zudem an, auf welche 
konkrete Version sie das bestehende Paket aktualisieren können.

.Kompakte Ausgabe mittels `apt-show-versions`
----
$ apt-show-versions base-files
base-files:amd64/jessie 8+deb8u2 upgradeable to 8+deb8u3
$
----

Gibt es keine aktuellere Version, sehen Sie die folgende Ausgabe:

.Ausgabe von `apt-show-versions` für ein aktuelles Paket
----
$ apt-show-versions xpdf
xpdf:amd64/stretch 3.04-4 uptodate
$
----

Ist das Paket jedoch noch nicht auf ihrem System installiert, ist es 
etwas schmallippig:

.Ausgabe von `apt-show-versions` für ein noch nicht installiertes Paket
----
$ apt-show-versions mc
mc:amd64 not installed
$
----

==== `apt-cache` benutzen ====

// Stichworte für den Index
(((apt-cache, madison)))
(((Debianpaket, apt-doc)))
(((Paketversion anzeigen)))
Das Werkzeug `apt-cache` verfügt über das Unterkommando `madison`. Damit
finden Sie heraus, welche Pakete derzeit von den Spiegelservern in einer
neueren Version verfügbar sind. Nachfolgender Ausdruck zeigt das für das
Paket 'apt-doc' <<Debian-Paket-apt-doc>>.

.Ausgabe von `apt-cache` mit dem Unterkommando `madison` für 'apt-doc'
unter Debian 9 _Stretch_ auf einem System mit der Architektur `i386`
----
$ apt-cache madison apt-doc
   apt-doc |      1.4.6 | http://ftp.ch.debian.org/debian stretch/main i386 Packages
       apt |      1.4.6 | http://ftp.ch.debian.org/debian stretch/main Sources
$
----

==== `rmadison` einsetzen ====

// Stichworte für den Index
(((rmadison)))
(((Debianpaket, apt-doc)))
(((Debianpaket, devscripts)))
(((Paketversion anzeigen)))
Möchten Sie hingegen wissen, welche Versionen für die jeweiligen
Veröffentlichungen bereitstehen, hilft Ihnen das Werkzeug `rmadison` aus
dem Paket 'devscripts' weiter <<Debian-Paket-devscripts>>. Es fragt dazu 
per HTTP eine regelmäßig aktualisierte Quelle im Internet ab, d.h. Sie 
brauchen Internetzugriff, um `rmadison` zu nutzen.

Als Parameter erwartet `rmadison` einen oder mehrere Paketnamen, nach
denen es dann recherchiert. Als Ergebnis sehen Sie in der linken Spalte
den Paketnamen, gefolgt von der Versionsnummer des Pakets, der
Veröffentlichung und am Schluss die Architektur, für die das Paket
verfügbar ist. Im nachfolgenden Beispielaufruf ist die Architektur
'all', da es sich um das Dokumentationspaket 'apt-doc' handelt, welches
auf allen Plattformen gleich ist.

.Auflistung der verfügbaren Paketversionen mit `rmadison`
----
$ rmadison apt-doc
apt-doc    | 0.9.7.9+deb7u7 | oldoldstable       | all
apt-doc    | 1.0.9.8        | oldstable-kfreebsd | all
apt-doc    | 1.0.9.8.4      | oldstable          | all
apt-doc    | 1.4.6          | stable             | all
apt-doc    | 1.4.6          | testing            | all
apt-doc    | 1.5~beta1      | unstable           | all
$
----

// Stichworte für den Index
(((Debianpaket, base-files)))
(((Paketversion anzeigen, nach Architektur filtern)))
(((Paketversion anzeigen, nach Veröffentlichung filtern)))
Obige Ausgabe umfaßt die vier Spalten Paketname, Versionsnummer,
Veröffentlichung und Architektur. Möchten Sie die Ausgabe hingegen auf
eine bestimmte Veröffentlichung oder Architektur einschränken,
akzeptiert `rmadison` die Schalter `-a` 'Architektur' und `-s`
'Veröffentlichung'. Um zu sehen, welche Version des Paketes 'base-files'
für die Veröffentlichung Debian 9 _Stretch_ und die Architektur 'amd64'
bereitstehen, nutzen Sie den folgenden Aufruf:

.Gefilterte Auflistung der verfügbaren Paketversionen mit `rmadison`
----
$ rmadison -s stretch -a amd64 base-files
base-files | 9.9           | stable     | amd64
$
----

==== `grep-available` und `grep-aptavail` benutzen ====

// Stichworte für den Index
(((Debianpaket, dctrl-tools)))
(((dpkg, -s)))
(((grep-aptavail, -PX)))
(((grep-available)))
In eine ähnliche Richtung gehen die beiden Werkzeuge `grep-available` und 
`grep-aptavail` aus dem Paket 'dctrl-tools' <<Debian-Paket-dctrl-tools>>. 
Beide liefern Ihnen Informationen darüber, ob und in welcher Version das 
von Ihnen angefragte Paket aus den Paketquellen zur Verfügung steht. 
Während `grep-available` weitestgehend die Informationen ausgibt, die Sie 
mittels `dpkg -s` erhalten, liefert Ihnen `grep-aptavail` die 
vollständigen Informationen, so bspw. auch, wo Sie das Paket in der 
Verzeichnishierarchie der Paketquellen finden. Nachfolgendes Beispiel 
zeigt die Recherche anhand des Pakets 'xpdf'.

.Paketinformationen zu 'xpdf'
----
$ grep-aptavail -PX xpdf
Package: xpdf
Version: 3.04-4
Installed-Size: 371
Maintainer: Debian QA Group <packages@qa.debian.org>
Architecture: amd64
Replaces: xpdf-common, xpdf-reader
Provides: pdf-viewer
Depends: libc6 (>= 2.4), libgcc1 (>= 1:3.0), libpoppler64 (>= 0.48.0), libstdc++6 (>= 5), libx11-6, libxm4 (>= 2.3.4), libxt6
Recommends: poppler-utils, poppler-data, gsfonts-x11, cups-bsd
Conflicts: xpdf-common, xpdf-reader
Description: Portable Document Format (PDF) reader
Homepage: http://www.foolabs.com/xpdf
Description-md5: fa7a14f325304cc49bbc0086a88d330e
Tag: implemented-in::c++, interface::graphical, interface::x11,
 role::program, scope::application, uitoolkit::motif, use::viewing,
 works-with-format::pdf, works-with::text, x11::application
Section: text
Priority: optional
Filename: pool/main/x/xpdf/xpdf_3.04-4_amd64.deb
Size: 159144
MD5sum: 8341b3ced6214b35185fdb42d8e7dcd7
SHA256: 926673359583d0e4ecd1f57774642303e5fed5d95ad90b5debde6df4c43e8237
$
----

// Datei (Ende): ./werkzeuge/paketoperationen/paketversionen-anzeigen.adoc

