Apt

Aus mxlinuxusers.de

apt ist ein Werkzeug zur Paketverwaltung für die Kommandozeile, um Pakete zu installieren, entfernen und zu suchen. Es stellt sozusagen eine Zusammenfassung der Werkzeuge apt-get und apt-cache dar (und in gewisser Weise dpkg-query), ist aber klarer aufgebaut und damit leichter zu handhaben. Es sei nicht verschwiegen, dass in der man-Page von apt darauf hingewiesen wird, dass sich durch die Weiterentwicklung von apt auch das Verhalten ändern kann und man apt deshalb vorzugsweise interaktiv (also nicht in Skripten) verwenden soll. Dies muss nun jeder für sich selbst entscheiden, ich habe jedenfalls seit ca. zwei Jahren keinerlei Probleme mit apt gehabt.

apt hat eine sehr gute und ausführliche deutschsprachige Manpage

man apt

da Manpages aber leider zu wenig gelesen werden (und ich Arbeit sparen möchte), kopiere ich den Inhalt dieser manpage einfach in die nachfolgende Tabelle. Mit anderen Worten, diese Tabelle basiert fast 1:1 auf der Handbuchseite von apt.

wichtige Kommandos von apt
Kommando Bedeutung
update update wird verwendet, um von allen konfigurierten Quellen Paketinformationen herunterzuladen. Andere Befehle arbeiten mit diesen Daten, zum Beispiel, um Paket-Upgrades durchzuführen oder um darin zu suchen und um Einzelheiten über alle zur Installation verfügbaren Pakete anzuzeigen. Da anfangs der Begriff 'update' zu Mißverständnissen führen könnte, dies bedeutet nicht, dass für die Pakete ein Update durchgeführt wird, sondern es werden nur die Infos über die Pakete erneuert. Deshalb folgt nach einem
sudo apt update

in der Regel immer ein

sudo apt upgrade
upgrade upgrade wird verwendet, um verfügbare Upgrades für alle derzeit auf dem System installierten Pakete von den im Verzeichnis /etc/apt/sources.list.d/ konfigurierten Quellen (Repos) zu installieren. Neue Pakete werden installiert, falls dies nötig ist, um Abhängigkeiten zu erfüllen, existierende werden jedoch nie entfernt. Falls das Upgrade für ein Paket verlangt, dass ein installiertes Paket entfernt wird, wird dieses Upgrade nicht durchgeführt
full-upgrade full-upgrade führt ein »upgrade« aus, wird aber auch installierte Pakete entfernen, falls dies erforderlich ist, um ein Upgrade des Systems als Ganzes durchzuführen.
install, reinstall PAKET installiert ein Paket, bzw. reinstalliert ein schon vorhandenes Paket. Für eine eingehendere Beschreibung von apt install siehe unten den Punkt apt install. Dort werden Varianten erklärt, die seltener gebraucht werden.
remove, purge PAKET entfernt die angeführten Pakete. remove entfernt die zum Paket gehörenden Dateien, jedoch nicht die zugehörigen Konfigurationsdateien des Users. Dadurch kann ein versehentliches durch 'remove' entferntes Paket durch ein nacfolgendes 'install' leicht wieder hergestellt werden, ohne es neu konfigurieren zu müssen.

Im Gegensatz dazu entfernt 'purge' auch diese Konfigurationsdateien. 'purge' kann auch für bereits mit 'remove' entfente Pakete angewandt werden.

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. Man ie sollte prüfen, ob die Liste keine Anwendungen enthält, die man noch behalten möchte, obwohl sie nur als Abhängigkeit eines anderen Pakets installiert wurden. Solch ein Paket kann mit apt-mark als manuell installiert markiert werden. Pakete, die Sie explizit per install installiert haben, werden niemals zum automatischen Entfernen vorgeschlagen.

In der Regel wird man nach dem Entfernen von Paketen mit 'remove' oder 'purge' ausdrücklich darauf hingewiesen, 'autoremove' anzuwenden, wenn dies notwendig ist. Dabei erscheint solch eine Meldung:

Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
 PAKET
Verwenden Sie »sudo apt autoremove«, um es zu entfernen.

Nach Prüfung, ob man dieses Paket nicht doch behalten möchte, kann man es (bzw. die Pakete) wie angegeben entfernen:

sudo apt autoremove

dass heisst, der Paketname wird bei autoremove nicht mit angegeben.

search BEGRIFF search kann zur Suche nach dem angegebenen Begriff in der Liste verfügbarer Pakete und zur Anzeige der Treffer benutzt werden. Dabei werden nicht nur die Paketnamen sondern auch die zugehörige Beschreibungen nach Übereinstimmungen durchsucht. Dies kann nützlich sein, wenn man nach Paketen sucht, die eine bestimmte Funktionalität bieten. Eine Suche mit
apt search editor

z.B. sucht nach allen Paketen, bei denen im Namen oder der Beschreibung die Zeichenfolge 'editor' vorkommt. Falls Sie nach einem Paket gesucht wird, das eine bestimmte Datei enthält, sollte man stattdessen apt-file benutzen.

show PAKET 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 man ein Paket entfernt oder ein neues Pakete zur Installation gesucht hat.
list [OPTION] BEGRIFF list ist 'dpkg-query --list' insofern ziemlich ähnlich, weil es ebenfalls eine Liste von Paketen anzeigen kann, die bestimmte Kriterien erfüllen. Es unterstützt glob-Muster zum Abgleich von Paketnamen, so zeigt z.B.
apt list emacs*

alle Pakete an, die mit 'emacs' beginnen, und

apt list *emacs*

alle, die irgendwo den Begriff emacs im Namen tragen.

Durch die Optionen --installed, --upgradeable oder --all-versions kann die Liste eingeschränkt werden:

  • --installed = nur die installierten Pakete anzeigen
  • --upgradeable = nur Pakete anzeigen, für die ein Upgrade möglich ist
  • --all-versions = alle verfügbaren Versionen anzeigen

'list' ist kommentarlos als 'in Arbeit' gekennzeichnet, könnte sich also noch im Beta-Stadium vorliegen.

policy PAKET entspricht dem älteren Kommando apt-cache policy und zeigt ebenfalls Informationen (installiert?, verfügbare Versionen und Repos) an. Beispiel:
apt policy firefox
firefox:
 Installiert:           (keine)
 Installationskandidat: 91.0.2~mozillabinaries-1mx19+1
 Versionstabelle:
    91.0.2~mozillabinaries-1mx19+1 500
       500 http://ftp.halifax.rwth-aachen.de/mxlinux/packages/mx/repo buster/main amd64 Packages
       500 http://mxrepo.com/mx/repo buster/main amd64 Packages

Beim Paketnamen können Wildcards angegeben werden, z.B.

apt policy firefox*

liefert Informationen über alle Pakete, die mit firefox anfangen (firefox-l10n-en-gb, firefox-esr-l10n-kab, firefox-l10n-en-za usw.)

apt install[Bearbeiten | Quelltext bearbeiten]

Um die obige Tabelle nicht zu sehr aufzublähen, werden hier Spezialfälle von apt install erläutert, die man nicht so oft braucht.

Möchte man eine bestimmte Version eines Programmes installieren, so geschieht dies durch das Anhängen eines Gleichheitszeichen an den Paketnamen, gefolgt von der Versionsnummer. Da man meist die vorhandenen Versionsnummern nicht auswendig kennt, kann man diese durch das Kommando apt policy erfahren.

Nehmen wir mal an, man möchte eine ältere Version von vlc installieren: die Versionsabfrage mit apt policy

apt policy vlc

ergibt diese Ausgabe:

vlc:
 Installiert:           3.0.16-1.mx19+1
 Installationskandidat: 3.0.16-1.mx19+1
 Versionstabelle:
*** 3.0.16-1.mx19+1 500
       500 https://linux.rub.de/mxlinux/packages/mx/repo buster/main amd64 Packages
       100 /var/lib/dpkg/status
    3.0.12-0+deb10u1 500
       500 http://deb.debian.org/debian buster/main amd64 Packages
       500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages

vlc ist hier mit der Version 3.0.16-1.mx19+1 schon installiert, aber das könnte auch anders aussehen. Zur Installation der älteren Version braucht man also folgenden Befehl:

apt install vlc=3.0.12-0+deb10u1

Es ist auch möglich, Pakete gezielt aus einer bestimmten Veröffentlichung (Release) auszuwählen. Statt des Gleichheitszeichens benutzt man dabei einen Schrägstrich, gefolgt von dem Codenamen des jeweiligen Releases (bullseye, buster, stretch, ...), z.B.

apt install vlc/buster

Ähnlich funktioniert es, wenn man Pakete aus einem bestimmten Repo haben möchte, aus stable, testing oder unstable:

apt install vlc/testing

installiert vlc aus testing. Allerdings sollte man sparsam mit dem "mischen" von Entwicklungsversionen umgehen, da dies zu einem unstabilen System führen kann, bzw. manchmal unerwünschte Seiteneffekte mit sich bringt.