// Datei: ./praxis/ausgewaehlte-pakete-aktualisieren/ausgewaehlte-pakete-aktualisieren.adoc

// Baustelle: Rohtext

[[ausgewahlte-pakete-aktualisieren]]

== Ausgewählte Pakete aktualisieren ==

// Stichworte für den Index
(((Paket, aktualisieren)))
(((Paket, Einzelpaket aktualisieren)))
Bereits in ``Pakete aktualisieren'' in <<pakete-aktualisieren>>
beleuchteten wir, wie Sie alle bereits bestehenden Pakete auf ihrem
Linuxsystem aktualisieren. Das hilft Ihnen dabei, dass alle Pakete aus
einem in etwa ähnlichen Veröffentlichungszeitraum stammen. Die
Abstimmung der Pakete aufeinander bleibt weitestgehend konfliktfrei und
es verringert die Wahrscheinlichkeit, dass bei einem Wechsel der
Veröffentlichung Probleme auftreten.

Nun zeigen wir Ihnen, wie Sie nur einzelne, ausgewählte Pakete auf einen
bestimmten Stand bringen. Dieses Vorgehen bringt es mit sich, dass die
Anzahl der Softwarepakete zunimmt, die explizit auf einem ausgewählten
Stand gehalten werden bzw. werden müssen, um die Paketabhängigkeiten zu
erfüllen. Für die Paketverwaltung heißt das, dass bei einer Veränderung
des Paketbestands mehr und insbesondere komplexere Bedingungen zu
berücksichtigen sind. Sie als Betreuer planen daher sicherheitshalber
für diesen Schritt und die Wartung etwas mehr Zeit ein.

[[nur-ein-einzelnes-paket-aktualisieren]]
=== Nur ein einzelnes Paket aktualisieren ===

Im Alltag sind häufig für mehrere Pakete gleichzeitig Aktualisierungen
verfügbar. Sowohl APT, als auch `aptitude` gestatten es Ihnen daher, nur
die Pakete zu erneuern, die Sie wünschen. Stets werden dabei die
Paketabhängigkeiten berücksichtigt und nur die Softwarepakete mit
einbezogen, die es betrifft.

==== Auf der Kommandozeile ====

// Stichworte für den Index
(((apt-get, upgrade)))
(((aptitude, dist-upgrade)))
(((aptitude, install)))
(((aptitude, upgrade)))
(((Paket, aktualisieren)))
(((Paket, Einzelpaket aktualisieren)))
Hier verstehen `apt-get` und `aptitude` die beiden Unterkommandos
`upgrade` und `dist-upgrade`, jeweils gefolgt von einer Liste von
Paketnamen. Ältere Versionen von APT bis Version XYZ können noch nicht
damit umgehen und ignorieren diese Liste.

.Beispiel für Einzelaktualisierung mit `apt-get upgrade`
----
ToDo: Beispiel
----

[NOTE]
.Automatische Aktualisierung bei der Installation
====
Ist ein Paket bereits installiert und Sie führen erneut das Kommando
`aptitude install` 'Paketname' aus, wird es nach Möglichkeit durch eine
neuere Version ersetzt. Es entspricht in diesem Fall dem Aufruf
`aptitude upgrade` 'Paketname'.

//ToDo: Beispiel
====

// Stichworte für den Index
(((aptitude, full-upgrade)))
(((aptitude, safe-upgrade)))
`aptitude` mit seinen Unterkommandos `safe-upgrade` und `full-upgrade`
nimmt hingegen schon länger Parameter entgegen. Dabei sind nicht nur
Paketnamen, sondern auch Suchausdrücke möglich. Bspw. erneuert der
Aufruf `aptitude full-upgrade '?section(libs)'` alle aktualisierbaren
Pakete aus der Kategorie 'libs' (Bibliotheken).

.Beispiel für Einzelaktualisierung mit `aptitude safe-upgrade`
----
ToDo: Beispiel
----

==== Über die Textoberfläche von `aptitude` ====

* Zweig/Kategorie menu:Sicherheitsaktualisierungen[]
** Paket markieren mit kbd:[+]
** Paketvorschau mit kbd:[g]
** Paketaktualisierung mit kbd:[g]
* ToDo: da muss aber noch mehr sein ....

==== Durchführung bei *Synaptic* ====
* siehe <<gui-synaptic>>
** Auswahl der Kategorie menu:Aktualisierbar (Upstream)[]
** Rechtsklick auf Eintrag in der Paketliste
** Auswahl menu:Zum Aktualisieren vormerken[]

=== Aktualisierung mit Wechsel der Veröffentlichung ===

// Stichworte für den Index
(((apt-cache, depends)))
(((apt-get, install -t)))

'Frage/Problem:' Ich möchte alle Abhängigkeiten von 'kdegames' von
'unstable' auf 'experimental' heben (da es noch kein neues
kdegames-Metapaket gibt, das von diesen Versionen abhängt und daher
`apt-get -t experimental kdegames` gar nix macht).

Bisherige Lösung: 

.Aufruf zur Auswahl
----
apt-get install -t experimental $( apt-cache depends kdegames | awk '{ print$4 }' )
----

Status: 

* geht, ist aber umständlich
* kann man das einfacher machen? (ist eine Art pinning für ein einzelnes Paket)
// Datei (Ende): ./praxis/ausgewaehlte-pakete-aktualisieren/ausgewaehlte-pakete-aktualisieren.adoc
