Eine Anleitung zu Yum und Apt
Übersicht
Paketmanager sind eine großartige Funktion jedes Linux-Systems. Sie ermöglichen es uns, die Installation, Entfernung und Überprüfung von Softwarepaketen einfach zu handhaben.
In diesem Tutorial lernen wir, wie man zwei der bekanntesten verwendet: YUM und APT.
Paketmanager in Kürze
Bevor wir beginnen, wollen wir uns einen Überblick darüber verschaffen, was Paketmanager eigentlich sind.
In Windows installieren wir Software normalerweise, indem wir ausführbare Installationsprogramme herunterladen und ausführen.
In Linux können wir immer noch dasselbe tun, indem wir manuell Pakete in dem von unserer Distribution erwarteten Format herunterladen und installieren. Die gängige Methode besteht jedoch darin, sich auf Paketmanager zu verlassen, um die verfügbare Software (zusammen mit der installierten) zu durchsuchen sowie sie zu installieren, zu aktualisieren und zu deinstallieren.
Die von den Paketmanagern bereitgestellten Software-Versionen sind vielleicht nicht immer die neuesten, aber der gesamte Prozess ist schlanker, schneller und sicherer.
Lassen Sie uns nun einen Blick darauf werfen, was YUM und APT sind und wie sie funktionieren.
YUM – Yellowdog Updater, Modified
YUM ist ein Paketverwaltungsprogramm für RPM-basierte Distributionen. RPM (Red Hat Package Manager) ist der Paketmanager, auf dem Systeme wie RHEL und CentOS basieren.
YUM nutzt RPM unter der Haube und versteckt seine Komplexität durch eine High-Level-Abstraktion.
Fedora 22 und RHEL 8 führten eine Neufassung von YUM ein, die DNF genannt wird und wahrscheinlich der neue Standard für RPM-basierte Systeme werden wird.
APT – Advanced Packaging Tool
APT ist auf der anderen Seite eine Sammlung verschiedener Werkzeuge, die für die Verwaltung von Software in DPKG-basierten Distributionen verwendet werden.
DPKG steht für Debian PacKaGe und ist der Paketmanager, der den Kern von Systemen wie Debian und Ubuntu bildet.
APT umhüllt die Low-Level-Aufrufe von DPKG, um den Benutzern eine benutzerfreundliche Oberfläche zu bieten.
Es ist erwähnenswert, dass APT ein Akronym ist, das in verschiedenen Zusammenhängen verwendet wird. Es ist das Paketsystem (APT), das Linux-Paket, unter dem es verteilt wird (apt), und auch eines der Werkzeuge, die die Bibliothek bilden (apt, apt-get, apt-cache und andere).
4.1. apt
apt ist das neueste Werkzeug des APT-Paketmanagers.
Es ist oft eine Quelle der Verwirrung, weil die Benutzer nicht sicher sind, ob sie apt oder apt-get für ihre Operationen verwenden sollen und welches die Unterschiede sind.
Lassen Sie uns hier aufräumen: apt ist das richtige Werkzeug, wenn man ein Debian-basiertes System manuell handhabt. Wir sollten es immer gegenüber apt-get und apt-cache bevorzugen, da es die Hauptoperationen der anderen beiden vereinheitlicht und vereinfacht.
Es bietet auch einen nützlichen Fortschrittsbalken zusammen mit einigen anderen kleinen Vorteilen, wie farbige Ausgabe und zusätzliche Informationen.
4.2. apt-get
apt-get, auf der anderen Seite, ist die richtige Wahl, wenn wir unsere Verwaltungsoperationen skripten wollen. Es bietet eine stabilere Oberfläche, mehr Funktionalitäten und erlaubt auch tiefere Anpassungen.
Bis Ubuntu 16.04 war es das Standardwerkzeug für jede Art von Operation. In Ubuntu 16.04 wurde apt zur bevorzugten Option für den menschlichen Gebrauch.
4.3. apt-cache
apt-cache schließlich ist ein Werkzeug, das apt-get ergänzt und Informationen über installierte und auch verfügbare Software liefert.
4.4. Snappy
Canonical, die Firma hinter Ubuntu, hat kürzlich ein neues distributionsunabhängiges Paketsystem namens Snappy veröffentlicht.
Snappy-Pakete sind in sich geschlossen und können sowohl in Ubuntu als auch in Fedora, CentOS, Arch, Gentoo und so weiter installiert werden.
Während die neuesten Ubuntu-Versionen einige Pakete hauptsächlich über Snappy verteilen, bleibt APT der offizielle Weg, um Softwarepakete zu verwalten, zumindest im Moment.
Abfragen
Lassen Sie uns nun sehen, wie wir diese Werkzeuge nutzen können, um unsere Paketmanager abzufragen.
5.1. Pakete auflisten
Wir können YUM mit den folgenden Befehlen bitten, unsere Pakete aufzulisten:
# List installed and available packages from repositories:yum list all# List only installed packages:yum list installed# List only available packages:yum list available# List installed and available kernel packages:yum list kernel
Mit APT können wir stattdessen unsere Pakete auflisten:
# List installed and available packages from repositories:apt list# List only installed packages:apt list --installed
Wenn wir nur die verfügbaren Pakete sehen wollen, können wir auf grep zurückgreifen, da es keinen APT-Befehl gibt, der das von Haus aus macht:
# List only available packages:apt list | grep -v installed
Für die Skripterstellung könnten wir auch auf die nächstgelegene Lösung zu apt list aus apt-cache zurückgreifen:
apt-cache search .
Bitte beachten Sie aber, dass sich das Ergebnis sowohl in der Anzahl der Vorkommen als auch in der zurückgegebenen Reihenfolge unterscheiden wird.
5.2. Pakete suchen
Mit YUM können wir nach einem Paket suchen, das einen bestimmten Begriff im Namen oder in der Beschreibung enthält:
yum search SOMETHING
Diesmal ist es in APT identisch:
apt search SOMETHINGapt-cache search SOMETHING
5.3. Paketdetails abrufen
Sobald wir wissen, für welches Paket wir uns interessieren, wollen wir vielleicht dessen Details überprüfen.
In YUM:
yum info MY_PACKAGE
Und ähnlich in APT:
apt show MY_PACKAGEapt-cache show MY_PACKAGE
Paketverwaltung
Nachdem wir nun gesehen haben, wie man Software-Pakete sucht und untersucht, wollen wir nun sehen, wie man sie verwaltet:
6.1. Aktualisieren der Paketinformationen
Zuallererst müssen wir unseren Paketindex aktualisieren.
Diese Befehle aktualisieren kein installiertes Paket, sie laden nur die neuesten Informationen über die Pakete herunter, die installiert oder aktualisiert werden können.
In YUM heißt es:
yum check-update
In APT hingegen heißt es einfach:
apt updateapt-get update
Wir sollten immer apt update vor allen anderen Operationen ausführen.
6.2. Installation eines Pakets
Um ein Paket in YUM zu installieren:
yum install MY_PACKAGE
Auch in Debian-Systemen unterscheidet sich das gar nicht:
apt install MY_PACKAGEapt-get install MY_PACKAGE
6.3. Upgrade eines Pakets
Das Upgrade eines Pakets kann auf verschiedene Arten durchgeführt werden.
In YUM führt der Befehl yum update intern das yum check-update aus, was bedeutet, dass wir letzteres nicht ausführen müssen, es sei denn, wir wollen nach der Aktualisierung des Paketindexes nichts mehr installieren. Wir können alle oder einige Pakete wie folgt aktualisieren:
# Update the package index and every package:yum update# Update only the package MY_PACKAGE:yum update MY_PACKAGE# Apply security-related package updates:yum update --security
Oder:
# Update every package:apt upgradeapt-get upgrade # Update every package along with their dependencies:apt full-upgradeapt-get dist-upgrade# Update only the package MY_PACKAGE:apt-get install --only-upgrade MY_PACKAGE# Apply security-related package updates:unattended-upgrade --dry-run -d
Es ist wichtig zu wissen, dass die Aktualisierung der Pakete zusammen mit ihren Abhängigkeiten möglicherweise die Deinstallation bestehender Software und die Installation neuer Software impliziert, wenn dies für den Aktualisierungsprozess erforderlich ist.
Standard-Upgrade-Befehle deinstallieren dagegen nie etwas. Anders als apt-get upgrade (das ebenfalls nichts installiert), kann apt upgrade jedoch bei Bedarf neue Software installieren.
6.4. Entfernen eines Pakets
Gelegentlich müssen wir ein Softwarepaket entfernen. Schauen wir uns dann die verschiedenen Möglichkeiten an, dies zu tun, von oberflächlich und weich bis tief und endgültig.
Um ein installiertes Paket und eventuell seine Abhängigkeiten in YUM loszuwerden, können wir einen von zwei äquivalenten Befehlen ausführen:
yum erase MY_PACKAGEyum remove MY_PACKAGE
In RHEL7 und höher ist es möglich, auch zusätzliche nicht benötigte Pakete mit autoremove zu löschen:
yum autoremove MY_PACKAGE
Die Debian-Möglichkeiten zum Löschen eines Pakets sind stattdessen:
apt remove MY_PACKAGEapt-get remove MY_PACKAGE
Wenn wir aber auch die Konfiguration des Pakets entfernen und das System komplett davon bereinigen wollen, dann können wir purge nutzen:
apt purge MY_PACKAGEapt-get purge MY_PACKAGE
6.5. Aufräumen
Manchmal wird unser System durch verwaiste Pakete verschmutzt, die nicht mehr benötigt werden, aber immer noch Platz belegen.
Wir können diese unerwünschten Pakete in YUM per Autoremove entfernen, ohne dass ein Paketname angegeben werden muss:
yum autoremove
Das funktioniert auch bei Debian-Distributionen auf die gleiche Weise:
apt autoremoveapt-get autoremove
Repository-Verwaltung
Beide Paketsysteme beginnen mit einem Satz offizieller Repositories, die zum Abrufen von Paketen abgefragt werden.
Doch die Gemeinschaft blüht, und oft fehlt das Paket, das wir brauchen, in den offiziellen Repositories, oder es ist zwar da, aber in einer Version, die für unsere Bedürfnisse zu alt ist.
In diesen Fällen möchten wir vielleicht inoffizielle Repositories zur Liste des Paketmanagers hinzufügen (immer unter Berücksichtigung der Tatsache, dass es ein Sicherheitsproblem darstellen könnte).
7.1. Hinzufügen eines Repositorys
Das Hinzufügen eines Repositorys in YUM ist ein manueller Vorgang, der darin besteht, eine Datei mit der Endung .repo unter dem Ordner /etc/yum.repos.d zu erstellen.
Die Datei muss alle Informationen über das benutzerdefinierte Repository enthalten, mit dem wir uns verbinden.
Lassen Sie uns versuchen, das AdoptOpenJDK-Repository hinzuzufügen:
# /etc/yum.repos.d/adoptopenjdk.reponame=AdoptOpenJDKbaseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m)enabled=1gpgcheck=1gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public
In APT liegen die Dinge jedoch ganz anders. Der GPG-Schlüssel des Repositorys muss heruntergeladen und mit apt-key add zum APT-Schlüsselbund hinzugefügt werden:
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
An dieser Stelle kann das Repository dann mit add-apt-repository -yes gefolgt von der URL hinzugefügt werden:
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
Im Gegensatz zu YUM werden alle Repositories in einer einzigen Datei gespeichert, /etc/apt/sources.list.
7.2. Entfernen eines Repositories
Das Entfernen eines Repositories in YUM wird unterschiedlich durchgeführt, je nachdem, wie es installiert wurde.
Wir können den folgenden Befehl ausführen und seine Ausgabe analysieren:
rpm -qa | grep -i CUSTOM_REPOSITORY
Wenn das Repository als RPM-Paket gefunden wird, bedeutet das, dass es über RPM installiert wurde, und wir können es mit -e entfernen:
rpm -e CUSTOM_REPOSITORY_RPM_PACKAGE
Ansonsten können wir die Repository-Datei einfach löschen:
rm /etc/yum.repos.d/CUSTOM_REPOSITORY.repo
Wir können es auch deaktivieren, ohne es zu löschen, indem wir einfach enabled=1 in enabled=0 in der Repository-Datei ändern.
In APT hingegen können wir einfach tun:
add-apt-repository --remove ppa:CUSTOM_REPOSITORY/ppa
Alternativ können wir die Zeilen relativ zum Repository in der Datei /etc/apt/sources.list auskommentieren.
Weitere Operationen
Diese beiden führen eine Menge anderer Operationen aus. Lassen Sie uns einige davon behandeln.
8.1. Neuinstallation eines Pakets
Im Falle eines beschädigten Pakets, z.B. wenn einige Dateien fehlen, können wir es neu installieren mit:
yum reinstall MY_PACKAGEapt reinstall MY_PACKAGEapt-get reinstall MY_PACKAGE
8.2. Eine bestimmte Version eines Pakets installieren
Manchmal müssen wir stattdessen eine bestimmte Version eines Pakets installieren.
Wir können die verfügbaren Versionen eines Pakets prüfen mit:
yum list MY_PACKAGE --showduplicatesapt-cache showpkg MY_PACKAGE
Dann können wir die gewünschte Version für eine neue Installation anvisieren:
yum install MY_PACKAGE-WANTED_VERSIONapt install MY_PACKAGE=WANTED_VERSIONapt-get install MY_PACKAGE=WANTED_VERSION
YUM erlaubt uns auch ein Downgrade von einer vorhandenen auf eine der zuvor installierten Versionen:
yum downgrade MY_PACKAGE-WANTED_VERSION
8.3. Installation einer Gruppe von Paketen
Einige Pakete sind für einen gemeinsamen Zweck in einer Gruppe zusammengefasst und können auf einmal installiert werden.
Lassen Sie uns ein anderes Beispiel aus der Praxis anvisieren und an die Installation der Grafikumgebung in einem Linux-Server denken.
Die Installation der Gruppen X Window System und GNOME erspart uns die Mühe, hunderte von Paketen von Hand zu installieren:
yum groupinstall 'X Window System' 'GNOME'
Der Debian-Paketmanager behandelt sie jedoch als einfache Pakete, so dass der klassische apt install-Befehl genügt:
apt-get install xorg
Abschluss
In diesem Tutorial haben wir die Konzepte von YUM und APT kennengelernt, sowie die praktische Anwendung ihrer Hauptbefehle.
Obwohl wir nur an der Oberfläche gekratzt haben, sollten wir nun in der Lage sein, die Software auf unseren RedHat- und Debian-basierten Systemen zu handhaben.