Linux Package-/Versionsverwaltung mit Advanced Packaging Tool (apt)

Im folgenden Beitrag widme ich der Package- und Versionsverwaltung mit apt unter Linux. Bis dato bin ich eher Windows-lastig, aber der Betrieb meines Smart Homes mit openHAB 2 unter Linux hat mich zwangsläufig etwas in die Linux Welt „geschubst“, sodass grundlegende Administrationskenntnisse erforderlich wurden. Dazu gehört es, das System aktuell zu halten und zu patchen.

Package Installation

Alles fängt natürlich mit der Installation von Packages an, um die benötigte Software auf einem Linux-System zu betreiben. Installiert werden Packages mit apt-get und der install Option:

apt-get install <Package-Name>

Möchte man z.B. openHAB 2 Smart Home Controller installieren, wird dies wie folgt bewerkstelligt (openHAB 2 besteht aus 2 Packages: dem Core Package und dem Addons Package):

apt-get install openhab2
apt-get install openhab2-addons

Möchte man vor der Installation das Ergebnis der Installation simulieren, lässt sich dies mit apt-get und dem Parameter -s realisieren:

apt-get install -s <Package-Name>
Package Upgrade

Für ein Upgrade lädt man im ersten Schritt die neuesten Infos über Packages von den Repository Servern.

apt-get update

Im zweiten Schritt werden alle Packages auf den neuesten Stand gebracht. Zusätzliche Packages, die eventuell auf Grund geänderter Abhängigkeiten erforderlich sind, werden allerdings nicht mit installiert.

apt-get upgrade

Alternativ können alle Packages auf den neuesten Stand gebracht werden, inkl. der Installation neu benötigter Packages und inkl. Deinstallation von Packages, die mit den neuen Versionen in Konflikt stehen.

apt-get dist-upgrade

Package-Version gezielt installieren

Neben der Installation eines Packages in der aktuellen Version lassen sich auch Packages auf fest definierte Versionsstände installieren. Zunächst lässt man sich mit folgendem Befehl die im Repository verfügbaren Versionen ausgeben:

apt-cache policy <Package-Name>

Für openHAB 2 sieht der Befehl und die daraus resultierende Ausgabe wie folgt aus (Stand 04.05.2020) – analog dazu natürlich auch für die Addons:

# apt-cache policy openhab2
openhab2:
  Installed: (none)
  Candidate: 2.5.4-1
  Version table:
 *** 2.5.4-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.5.3-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.5.2-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.5.1-2 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.5.1-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.5.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.4.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.3.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.2.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.1.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
     2.0.0-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages

Ist bereits eine Version installiert, sieht die Ausgabe z.B. wie folgt aus:

# apt-cache policy openhab2
openhab2:
  Installed: 2.5.2-1
  Candidate: 2.5.4-1
  Version table:
     ....
     2.5.2-1 500
        500 https://dl.bintray.com/openhab/apt-repo2 stable/main amd64 Packages
        100 /var/lib/dpkg/status
     ....

Die Installation der gewünschten Version wird dann wie folgt durchgeführt (Parameter -V ist optional und gibt detailliertere Informationen während der Installation aus):

apt-get install <Package-Name>=<Version> -V

Für openHAB 2 und die Addons möchte ich z.B. die Version 2.5.4 installieren und führe dies wie folgt durch:

# apt-get install openhab2=2.5.4-1 -V
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
    ....................
    ....................
# apt-get install openhab2-addons=2.5.4-1 -V 
Reading package lists...
Done Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
    ....................
    ....................

Package vom Upgrade ausschließen

Möchte man ein Package auf einem bestimmten Versionsstand halten oder nur manuell aktualisieren, lässt sich das Package vom automatischen Upgrade ausschließen.

Um die installierte Version des jeweiligen Packages auszugeben, benötigt man folgenden Befehl (ohne grep werden alle Packages angezeigt):

dpkg -l | grep <Package-Name>

Im Falle von openHAB 2 sieht der Befehl und die Ausgabe wie folgt aus:

# dpkg -l | grep openhab2
ii  openhab2                2.5.2-1      all          openhab2
ii  openhab2-addons         2.5.2-1      all          openhab2-addons

Hat das Package die gewünschte Version, verwendet man apt-mark mit der Option hold, um zu verhindern, dass es beim Upgrade mit aktualisiert wird.

apt-mark hold <Package-Name>

Die openHAB 2 Packages werden wie folgt vom Update ausgenommen:

# apt-mark hold openhab2
openhab2 set on hold.
# apt-mark hold openhab2-addons
openhab2-addons set on hold.

Möchte man in o.g. Beispiel beide openHAB 2 Packages vom Upgrade ausnehmen, lässt sich dies auch mit folgendem Einzelbefehl umsetzen:

# apt-mark hold openhab2*
openhab2 set on hold.
openhab2-addons set on hold.

Package ins Upgrade einschließen

Natürlich kann die Deaktivierung auch wieder rückgängig gemacht werden und das Upgrade wieder aktiviert werden. Dazu wird apt-mark mit der unhold Option verwendet:

apt-mark unhold <Package-Name>

Das openHAB 2 Package wird demnach wie folgt wieder aktiviert:

# apt-mark unhold openhab2
Canceled hold on openhab2.
# apt-mark unhold openhab2-addons
Canceled hold on openhab2-addons.

Möchte man in unserem Beispiel für beide openHAB 2 Packages das Upgrade wieder aktivieren, lässt sich dies auch wieder mit folgendem Einzelbefehl umsetzen:

# apt-mark unhold openhab2*
Canceled hold on openhab2.
Canceled hold on openhab2-addons.
Package deinstallieren

Die Deinstallation von Packages wird mit apt-get und der remove Option durchgeführt. Der folgende Befehl deinstalliert lediglich das Package; Abhängigkeiten oder Konfigurationsdateien bleiben erhalten:

apt-get remove <Package-Name>

Um neben dem Package auch die Konfigurationen zu entfernen, wird zusätzlich der Parameter --purge verwendet:

apt-get --purge remove <Package-Name>

Die Packages openHAB 2 und die Addons inkl. Konfiguration werden folglich wie folgt deinstalliert:

apt-get --purge remove openhab2-addons
apt-get --purge remove openhab2

Quellen:
https://de.wikipedia.org/
https://wiki.ubuntuusers.de/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.