Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
102.5 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 102: Linux-Installation und -Paketverwaltung
  2. 102.5 RPM und YUM-Paketverwaltung verwenden
  3. 102.5 Lektion 1

102.5 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

102 Linux-Installation und -Paketverwaltung

Lernziel:

102.5 RPM und YUM-Paketverwaltung verwenden

Lektion:

1 von 1

Einführung

Vor langer Zeit, als Linux noch in den Kinderschuhen steckte, war die gebräuchlichste Art, Software zu verteilen, eine komprimierte Datei (normalerweise als .tar.gz-Archiv) mit Quellcode, die man selbst entpacken und kompilieren musste.

Als jedoch die Menge und Komplexität der Software wuchs, wurde die Notwendigkeit einer Möglichkeit zur Verteilung vorkompilierter Software deutlich. Schließlich verfügte nicht jeder über die zeitlichen und computertechnischen Ressourcen, um große Projekte wie den Linux-Kernel oder einen X Server zu kompilieren.

Bald wuchsen die Bemühungen um die Standardisierung einer Methode zur Verteilung dieser Softwarepakete, und die ersten Paketmanager waren geboren. Diese Werkzeuge machten es viel einfacher, Software zu installieren, zu konfigurieren oder aus einem System zu entfernen.

Eine davon war der RPM Package Manager und das entsprechende Tool (rpm), das von Red Hat entwickelt wurde. Heute sind diese nicht nur auf Red Hat Enterprise Linux (RHEL) selbst, sondern auch auf seinen Nachfahren, wie Fedora, CentOS und Oracle Linux, anderen Distributionen wie openSUSE und sogar anderen Betriebssystemen wie IBMs AIX, weit verbreitet.

Andere auf Red Hat-kompatiblen Distributionen beliebte Paketverwaltungswerkzeuge sind yum (YellowDog Updater Modified), dnf (Dandified YUM) und zypper, die viele Aspekte der Installation, Wartung und Entfernung von Paketen rationalisieren können, wodurch die Paketverwaltung wesentlich vereinfacht wird.

In dieser Lektion werden wir lernen, wie man rpm, yum, dnf und zypper benutzt, um Software auf einem Linux-System zu erhalten, zu installieren, zu verwalten und zu entfernen.

Note

Trotz der Verwendung desselben Paketformats gibt es interne Unterschiede zwischen den Distributionen, so dass ein speziell für openSUSE erstelltes Paket möglicherweise nicht auf einem RHEL-System funktioniert und umgekehrt. Wenn Sie nach Paketen suchen, prüfen Sie diese immer auf Kompatibilität und versuchen Sie, wenn möglich, ein auf Ihre spezielle Distribution zugeschnittenes Paket zu finden.

Der RPM Package Manager (rpm)

Der RPM Package Manager (rpm) ist ein unverzichtbares Werkzeug zur Verwaltung von Softwarepaketen auf Red Hat-basierten (oder abgeleiteten) Systemen.

Installieren, Aktualisieren und Entfernen von Paketen

Die grundlegendste Operation ist die Installation eines Pakets, die mit einem Paket durchgeführt werden kann:

# rpm -i PACKAGENAME

Wobei PACKAGENAME der Name des .rpm-Pakets darstellt, weches es zu installieren gilt.

Wenn eine frühere Version eines Pakets auf dem System existiert, können Sie mit dem Parameter -U auf eine neuere Version aktualisieren:

# rpm -U PACKAGENAME

Wenn keine frühere Version von PACKAGENAME installiert ist, wird eine neue Kopie installiert. Um dies zu vermeiden und nur ein installiertes Paket zu aktualisieren, benutzen Sie die Option -F.

Bei beiden Befehlen können Sie den Parameter -v hinzufügen, um eine ausführliche Ausgabe zu erhalten (weitere Informationen werden während der Installation angezeigt) und -h, um Hashzeichen (#) als visuelle Hilfe zur Verfolgung des Installationsfortschritts angezeigt zu bekommen. Mehrere Parameter können zu einem Parametersatz kombiniert werden, so dass rpm -i -v -h gleichbedeutend ist wie rpm -ivh.

Um ein installiertes Paket zu entfernen, übergeben Sie den Parameter -e (wie in “erase”) an rpm, gefolgt von dem Namen des Pakets, welches Sie entfernen möchten:

# rpm -e wget

Wenn ein installiertes Paket, vom zu entfernendem Paket abhängt, erhalten Sie folgende Fehlermeldung:

# rpm -e unzip
error: Failed dependencies:
	/usr/bin/unzip is needed by (installed) file-roller-3.28.1-2.el7.x86_64

Um den Vorgang abzuschließen, müssen Sie zunächst die Pakete entfernen, die von dem Paket abhängen, welches Sie entfernen möchten (im obigen Beispiel file-roller). Sie können mehrere Paketnamen an rpm -e übergeben, um mehrere Pakete gleichzeitig zu entfernen.

Umgang mit Abhängigkeiten

In den meisten Fällen kann ein Paket von anderen abhängen, damit dieses wie beabsichtigt funktioniert. Beispielsweise benötigt ein Bildbearbeitungsprogramm Bibliotheken, um JPG-Dateien zu öffnen, oder ein Dienstprogramm benötigt ein Widget-Toolkit wie Qt oder GTK für seine Benutzeroberfläche.

rpm wird prüfen, ob diese Abhängigkeiten auf Ihrem System installiert sind, und wird das Paket nicht installieren, wenn dies nicht der Fall ist. In diesem Fall wird rpm auflisten, welche Pakete noch fehlen. Allerdings kann es Abhängigkeiten nicht von selbst auflösen.

Im Beispiel unten versuchte der Benutzer, ein Paket für den GIMP-Bildeditor zu installieren, aber es fehlen einige Abhängigkeiten:

# rpm -i gimp-2.8.22-1.el7.x86_64.rpm
error: Failed dependencies:
	babl(x86-64) >= 0.1.10 is needed by gimp-2:2.8.22-1.el7.x86_64
	gegl(x86-64) >= 0.2.0 is needed by gimp-2:2.8.22-1.el7.x86_64
	gimp-libs(x86-64) = 2:2.8.22-1.el7 is needed by gimp-2:2.8.22-1.el7.x86_64
	libbabl-0.1.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgegl-0.2.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimp-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpbase-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpcolor-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpconfig-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmath-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmodule-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpthumb-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpui-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpwidgets-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libmng.so.1()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmf-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmflite-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64

Es obliegt dem Benutzer, die .rpm-Pakete mit den entsprechenden Abhängigkeiten zu finden und zu installieren. Paketmanager wie yum, zypper und dnf haben Werkzeuge, welche erkennen können, welches Paket eine bestimmte Datei zur Verfügung stellt. Diese werden später in dieser Lektion besprochen.

Installierte Pakete auflisten

Um eine Liste aller installierten Pakete auf Ihrem System zu erhalten, benutzen Sie rpm -qa (denken Sie an “query all”).

# rpm -qa
selinux-policy-3.13.1-229.el7.noarch
pciutils-libs-3.5.1-3.el7.x86_64
redhat-menus-12.0.2-8.el7.noarch
grubby-8.28-25.el7.x86_64
hunspell-en-0.20121024-6.el7.noarch
dejavu-fonts-common-2.33-6.el7.noarch
xorg-x11-drv-dummy-0.3.7-1.el7.1.x86_64
libevdev-1.5.6-1.el7.x86_64
[...]

Erhalten von Paketinformationen

Um Informationen über ein installiertes Paket zu erhalten, wie seine Versionsnummer, Architektur, Installationsdatum, Paketersteller, Zusammenfassung usw., benutzen Sie rpm mit den Parametern -qi (denken Sie an “query info”), gefolgt vom Paketnamen. Beispielsweise wie folgt:

# rpm -qi unzip
Name        : unzip
Version     : 6.0
Release     : 19.el7
Architecture: x86_64
Install Date: Sun 25 Aug 2019 05:14:39 PM EDT
Group       : Applications/Archiving
Size        : 373986
License     : BSD
Signature   : RSA/SHA256, Wed 25 Apr 2018 07:50:02 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : unzip-6.0-19.el7.src.rpm
Build Date  : Wed 11 Apr 2018 01:24:53 AM EDT
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.info-zip.org/UnZip.html
Summary     : A utility for unpacking zip files
Description :
The unzip utility is used to list, test, or extract files from a zip
archive. Zip archives are commonly found on MS-DOS systems. The zip
utility, included in the zip package, creates zip archives. Zip and
unzip are both compatible with archives created by PKWARE(R)'s PKZIP
for MS-DOS, but the programs' options and default behaviors do differ
in some respects.

Install the unzip package if you need to list, test or extract files from
a zip archive.

Um eine Liste zu erhalten, welche Dateien sich in einem installierten Paket befinden, benutzen Sie die -ql Parameter (denken Sie an “query list”) gefolgt vom Paketnamen:

# rpm -ql unzip
/usr/bin/funzip
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/share/doc/unzip-6.0
/usr/share/doc/unzip-6.0/BUGS
/usr/share/doc/unzip-6.0/LICENSE
/usr/share/doc/unzip-6.0/README
/usr/share/man/man1/funzip.1.gz
/usr/share/man/man1/unzip.1.gz
/usr/share/man/man1/unzipsfx.1.gz
/usr/share/man/man1/zipgrep.1.gz
/usr/share/man/man1/zipinfo.1.gz

Wenn Sie Informationen oder eine Dateiliste von einem Paket erhalten möchten, welches noch nicht installiert wurde, fügen Sie einfach den Parameter -p zum obigen Befehlen hinzu, gefolgt vom Namen der RPM-Datei (FILENAME). So wird rpm -qi PACKAGENAME zu rpm -qip FILENAME, und rpm -ql PACKAGENAME wird zu rpm -qlp FILENAME, wie unten gezeigt.

# rpm -qip atom.x86_64.rpm
Name        : atom
Version     : 1.40.0
Release     : 0.1
Architecture: x86_64
Install Date: (not installed)
Group       : Unspecified
Size        : 570783704
License     : MIT
Signature   : (none)
Source RPM  : atom-1.40.0-0.1.src.rpm
Build Date  : sex 09 ago 2019 12:36:31 -03
Build Host  : b01bbeaf3a88
Relocations : /usr
URL         : https://atom.io/
Summary     : A hackable text editor for the 21st Century.
Description :
A hackable text editor for the 21st Century.
# rpm -qlp atom.x86_64.rpm
/usr/bin/apm
/usr/bin/atom
/usr/share/applications/atom.desktop
/usr/share/atom
/usr/share/atom/LICENSE
/usr/share/atom/LICENSES.chromium.html
/usr/share/atom/atom
/usr/share/atom/atom.png
/usr/share/atom/blink_image_resources_200_percent.pak
/usr/share/atom/content_resources_200_percent.pak
/usr/share/atom/content_shell.pak

(listing goes on)

Herausfinden, welches Paket eine bestimmte Datei besitzt

Um herauszufinden, welches installierte Paket eine Datei besitzt, verwenden Sie -qf (denken Sie an “query file”), gefolgt vom vollständigen Pfad zur Datei:

# rpm -qf /usr/bin/unzip
unzip-6.0-19.el7.x86_64

Im obigen Beispiel gehört die Datei /usr/bin/unzip zum Paket unzip-6.0-19.el7.x86_64.

YellowDog Updater Modified (YUM)

yum wurde ursprünglich als Yellow Dog Updater (YUP) entwickelt, ein Werkzeug zur Paketverwaltung auf der Linux-Distribution Yellow Dog. Mit der Zeit entwickelte diese sich weiter, um Pakete auf anderen RPM-basierten Systemen wie Fedora, CentOS, Red Hat Enterprise Linux und Oracle Linux zu verwalten.

Funktionell ähnelt es dem apt-Dienstprogramm auf Debian-basierten Systemen, da es in der Lage ist, Pakete zu suchen, zu installieren, zu aktualisieren und zu entfernen sowie Abhängigkeiten automatisch zu behandeln. yum kann verwendet werden, um ein einzelnes Paket zu installieren, oder um ein ganzes System auf einmal zu aktualisieren.

Suche nach Paketen

Um ein Paket installieren zu können, muss dessen Namen bekannt sein. Dazu können Sie eine Suche mittels yum search PATTERN durchführen, wobei PATTERN den zu suchenden Paketnamen darstellt. Das Ergebnis ist eine Liste von Paketen, deren Name oder deren Beschreibung das angegebene Suchmuster enthält. Wenn Sie zum Beispiel ein Dienstprogramm zur Handhabung von 7Zip-komprimierten Dateien (mit der Erweiterung .7z) benötigen, gehen Sie wie folgt vor:

# yum search 7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
=========================== N/S matchyutr54ed: 7zip ============================
p7zip-plugins.x86_64 : Additional plugins for p7zip
p7zip.x86_64 : Very high compression ratio file archiver
p7zip-doc.noarch : Manual documentation and contrib directory
p7zip-gui.x86_64 : 7zG - 7-Zip GUI version

  Name and summary matches only, use "search all" for everything.

Installieren, Aktualisieren und Entfernen von Paketen

Um ein Paket mit yum zu installieren, verwenden Sie den Befehl yum install PACKAGENAME, wobei PACKAGENAME dem Namen des Pakets entspricht. yum lädt das entsprechende Paket und die entsprechenden Abhängigkeiten aus einem Onlinerepository und installiert alles auf dem System.

# yum install p7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package p7zip.x86_64 0:16.02-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package        Arch            Version               Repository     Size
==========================================================================
Installing:
 p7zip          x86_64          16.02-10.el7          epel          604 k

Transaction Summary
==========================================================================
Install  1 Package

Total download size: 604 k
Installed size: 1.7 M
Is this ok [y/d/N]:

Um ein installiertes Paket zu aktualisieren, verwenden Sie yum update PACKAGENAME, wobei PACKAGENAME dem Namen des zu akualisierenden Pakets entspricht. Beispielsweise:

# yum update wget
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7 will be updated
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package     Arch          Version                   Repository      Size
==========================================================================
Updating:
 wget        x86_64        1.14-18.el7_6.1           updates        547 k

Transaction Summary
==========================================================================
Upgrade  1 Package

Total download size: 547 k
Is this ok [y/d/N]:

Wenn Sie den Namen eines Pakets weglassen, können Sie jedes Paket auf dem System aktualisieren, für das eine Aktualisierung verfügbar ist.

Um zu überprüfen, ob eine Aktualisierung für ein bestimmtes Paket verfügbar ist, verwenden Sie yum check-update PACKAGENAME. Wie zuvor, wenn Sie den Paketnamen weglassen, wird yum für jedes installierte Paket auf dem System nach Aktualisierungen suchen.

Um ein installiertes Paket zu entfernen, benutzen Sie yum remove PACKAGENAME, wobei PACKAGENAME der Name des Pakets ist, das es zu entfernen gilt.

Finden, welches Paket eine bestimmte Datei bereitstellt

In einem früheren Beispiel haben wir einen Versuch gezeigt, den gimp Imageeditor zu installieren, der wegen unerfüllter Abhängigkeiten scheiterte. Allerdings zeigt rpm die fehlten Dateien an, listete aber nicht die Paketenamen auf, welche diese zur Verfügung stellen.

Eine der fehlenden Abhängigkeiten war zum Beispiel libgimpui-2.0.so.0. Um zu sehen, welches Paket die fehlende Datei zur Verfügung stellt, können Sie yum whatprovides verwenden, gefolgt vom Namen der Datei, nach der Sie suchen:

# yum whatprovides libgimpui-2.0.so.0
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
2:gimp-libs-2.8.22-1.el7.i686 : GIMP libraries
Repo        : base
Matched from:
Provides    : libgimpui-2.0.so.0

Die Antwort lautet gimp-libs-2.8.22-1.el7.i686. Sie können das Paket dann mit dem Befehl yum install gimp-libs installieren.

Dies funktioniert auch für Dateien, die sich bereits in Ihrem System befinden. Wenn Sie z.B. wissen wollen, woher die Datei /etc/hosts stammt, können Sie wie folgt vorgehen:

# yum whatprovides /etc/hosts
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
setup-2.8.71-10.el7.noarch : A set of system configuration and setup files
Repo        : base
Matched from:
Filename    : /etc/hosts

Die Antwort lautet setup-2.8.71-10.el7.noarch.

Informationen über ein Paket abrufen

Um Informationen über ein Paket zu erhalten, wie z.B. seine Version, Architektur, Beschreibung, Größe und so weiter, benutzen Sie yum info PACKAGENAME, wobei PACKAGENAME den Namen des Pakets darstellt, für das Informationen benötigen werden:

# yum info firefox
Last metadata expiration check: 0:24:16 ago on Sat 21 Sep 2019 02:39:43 PM -03.
Installed Packages
Name         : firefox
Version      : 69.0.1
Release      : 3.fc30
Architecture : x86_64
Size         : 268 M
Source       : firefox-69.0.1-3.fc30.src.rpm
Repository   : @System
From repo    : updates
Summary      : Mozilla Firefox Web browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv1.1 or GPLv2+ or LGPLv2+
Description  : Mozilla Firefox is an open-source web browser, designed
             : for standards compliance, performance and portability.

Verwaltung von Softwarerepositories

Für yum werden die “Repos” im Verzeichnis /etc/yum.repos.d/ abgelegt. Jedes Repository wird durch eine .repo-Datei repräsentiert, wie z.B. CentOS-Base.repo.

Zusätzliche Repositories können vom Benutzer hinzugefügt werden, indem er eine .repo-Datei im oben genannten Verzeichnis oder am Ende von /etc/yum.conf hinzufügt. Der empfohlene Weg, Repositories hinzuzufügen oder zu verwalten, ist jedoch das yum-config-manager Werkzeug.

Um ein Repository hinzuzufügen, verwenden Sie den Parameter --add-repo, gefolgt von der URL der entsprechenden .repo-Datei.

# yum-config-manager --add-repo https://rpms.remirepo.net/enterprise/remi.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://rpms.remirepo.net/enterprise/remi.repo
grabbing file https://rpms.remirepo.net/enterprise/remi.repo to /etc/yum.repos.d/remi.repo
repo saved to /etc/yum.repos.d/remi.repo

Um eine Liste aller verfügbaren Repositories zu erhalten, benutzen Sie yum repolist all. Sie erhalten eine ähnliche Ausgabe wie die Folgende:

# yum repolist all
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
repo id                       repo name                    status
updates/7/x86_64              CentOS-7 - Updates           enabled:  2,500
updates-source/7              CentOS-7 - Updates Sources   disabled

disabled Repositories werden bei der Installation oder Aktualisierung von Software ignoriert. Um ein Repository zu aktivieren oder zu deaktivieren, benutzen Sie das Dienstprogramm yum-config-manager, gefolgt von der Repository-ID.

In der obigen Ausgabe wird die Repository-ID in der ersten Spalte (repo id) jeder Zeile angezeigt. Verwenden Sie nur den Teil vor dem ersten /, so dass die ID für das CentOS-7 - Updates Repo updates lautet und nicht updates/7/x86_64.

# yum-config-manager --disable updates

Der obige Befehl deaktiviert das updates-Repo. Um es wieder zu aktivieren, nutzen Sie:

# yum-config-manager --enable updates
Note

Yum speichert heruntergeladene Pakete und zugehörige Metadaten in einem Cacheverzeichnis (normalerweise /var/cache/yum). Wenn das System aktualisiert wird und neue Pakete installiert werden, kann dieser Cache schnell anwachsen. Um den Cache zu bereinigen und Speicherplatz zurückzugewinnen, können Sie den Befehl yum clean verwenden, gefolgt von dem, was zu bereinigen ist. Die nützlichsten Parameter sind packages (yum clean packages), um heruntergeladene Pakete zu löschen, und metadata (yum clean metadata), um zugehörige Metadaten zu löschen. Lesen Sie die Handbuchseite für yum (geben Sie man yum ein) um weitere Informationen zu erhalten.

DNF

dnf ist das Paketverwaltungswerkzeug, welches auf Fedora verwendet wird, und eine Abspaltung von yum ist. Als solche sind viele der Befehle und Parameter ähnlich. Dieser Abschnitt wird nur einen kurzen Überblick über dnf behandeln.

Suche nach Paketen

dnf search PATTERN, wobei PATTERN Ihrem Suchgebriff entspricht. Zum Beispiel wird dnf search unzip alle Pakete anzeigen, die das Wort unzip im Namen oder in der Beschreibung enthalten.

Informationen über ein Paket erhalten

dnf info PACKAGENAME

Pakete installieren

dnf install PACKAGENAME, wobei PACKAGENAME dem Paketnamen des zu installierenden Pakets entspricht. Sie können den Namen durch eine entprechende Suche in Erfahrung bringen.

Entfernen von Paketen

dnf remove PACKAGENAME

Aktualisieren von Paketen

dnf upgrade PACKAGENAME, um nur ein Paket zu aktualisieren. Ohne die Angabe des Paketnamens werden alle Pakete im System aktualisieren.

Herausfinden, welches Paket eine bestimmte Datei enthält

dnf provides FILENAME

Auflistung aller im System installierten Pakete

dnf list --installed

Auflistung des Inhalts eines Pakets

dnf repoquery -l PACKAGENAME

Note

dnf hat ein eingebautes Hilfesystem, welches mehr Informationen (z.B. zusätzliche Parameter) zu jedem Befehl anzeigt. Um es zu benutzen, geben Sie dnf help gefolgt vom fraglichem Befehl ein, wie beispielsweise dnf help install.

Verwaltung von Softwarerepositories

Genau wie yum und zypper arbeitet dnf mit Softwarerepositories (Repos). Jede Distribution hat eine Liste von Standardrepositories, und Administratoren können je nach Bedarf Repositories hinzufügen oder entfernen.

Um eine Liste aller verfügbaren Repositories zu erhalten, benutzen Sie dnf repolist. Um nur aktivierte Repositories aufzulisten, fügen Sie die Option --enabled hinzu. Um nur deaktivierte Repositories aufzulisten, fügen Sie die Option --disabled hinzu.

# dnf repolist
Last metadata expiration check: 0:20:09 ago on Sat 21 Sep 2019 02:39:43 PM -03.
repo id                    repo name                                      status
*fedora                    Fedora 30 - x86_64                             56,582
*fedora-modular            Fedora Modular 30 - x86_64                        135
*updates                   Fedora 30 - x86_64 - Updates                   12,774
*updates-modular           Fedora Modular 30 - x86_64 - Updates              145

Um ein Repository hinzuzufügen, verwenden Sie dnf config-manager --add_repo URL, wobei URL die vollständige URL des Repositories darstellt. Um ein Repository zu aktivieren, verwenden Sie dnf config-manager --set-enabled REPO_ID.

Um ein Repository zu deaktivieren, verwenden Sie dnf config-manager --set-disabled REPO_ID. In beiden Fällen steht REPO_ID für die eindeutige ID des Repository, die Sie mit dnf repolist erhalten können. Hinzugefügte Repositories sind standardmäßig aktiviert.

Repositories werden in .repo-Dateien im Verzeichnis /etc/yum.repos.d/ gespeichert, mit genau der gleichen Syntax, welche für yum verwendet wird.

Zypper

zypper ist das Paketverwaltungswerkzeug, welches unter SUSE Linux und OpenSUSE verwendet wird. Vom Funktionsumfang her ähnelt es apt und yum, da es in der Lage ist, Pakete zu installieren, zu aktualisieren und aus einem System zu entfernen, einschließlich der Funktionalität Abhängigkeiten automatisch aufzulösen.

Aktualisieren des Paketindex

Wie andere Paketverwaltungswerkzeuge arbeitet zypper mit Repositories, die Pakete und Metadaten enthalten. Diese Metadaten müssen von Zeit zu Zeit aktualisiert werden, um das Dienstprogramm über die neuesten verfügbaren Pakete zu informieren. Um eine Aktualisierung durchzuführen, geben Sie einfach folgendes ein:

# zypper refresh
Repository 'Non-OSS Repository' is up to date.
Repository 'Main Repository' is up to date.
Repository 'Main Update Repository' is up to date.
Repository 'Update Repository (Non-Oss)' is up to date.
All repositories have been refreshed.

zypper hat eine automatische Aktualisierungsfunktion, die für jedes Repository einzeln aktiviert werden kann, was bedeutet, dass einige Repositories vor einer Abfrage oder Paketinstallation automatisch aktualisiert werden können, während andere manuell aktualisiert werden müssen. Sie werden in Kürze erfahren, wie Sie diese Funktion steuern können.

Suche nach Paketen

Um nach einem Paket zu suchen, verwenden Sie den Operator search (oder se), gefolgt vom Paketnamen:

# zypper se gnumeric
Loading repository data...
Reading installed packages...

S | Name           | Summary                           | Type
--+----------------+-----------------------------------+--------
  | gnumeric       | Spreadsheet Application           | package
  | gnumeric-devel | Spreadsheet Application           | package
  | gnumeric-doc   | Documentation files for Gnumeric  | package
  | gnumeric-lang  | Translations for package gnumeric | package

Der Suchoperator kann auch verwendet werden, um eine Liste aller im System installierten Pakete zu erhalten. Verwenden Sie dazu den Parameter -i ohne die Angabe eines Paketnamens, wie in zypper se -i.

Um zu sehen, ob ein bestimmtes Paket installiert ist, fügen Sie den Paketnamen dem obigen Befehl hinzu. Der folgende Befehl sucht zum Beispiel unter den installierten Paketen nach Paketen, welche “firefox” im Namen enthalten:

# zypper se -i firefox
Loading repository data...
Reading installed packages...

S | Name                               | Summary                 | Type
--+------------------------------------+-------------------------+--------
i | MozillaFirefox                     | Mozilla Firefox Web B-> | package
i | MozillaFirefox-branding-openSUSE   | openSUSE branding of -> | package
i | MozillaFirefox-translations-common | Common translations f-> | package

Um nur unter nicht installierten Paketen zu suchen, fügen Sie den Parameter -u zum Operator se hinzu.

Installieren, Aktualisieren und Entfernen von Paketen

Um ein Softwarepaket zu installieren, verwenden Sie den Operator install (oder in), gefolgt vom Paketnamen. Wie hier:

# zypper in unrar
zypper in unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  unrar

1 new package to install.
Overall download size: 141.2 KiB. Already cached: 0 B. After the operation, additional 301.6 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package unrar-5.7.5-lp151.1.1.x86_64
                                     (1/1), 141.2 KiB (301.6 KiB unpacked)
Retrieving: unrar-5.7.5-lp151.1.1.x86_64.rpm .......................[done]
Checking for file conflicts: .......................................[done]
(1/1) Installing: unrar-5.7.5-lp151.1.1.x86_64 .....................[done]

zypper kann auch verwendet werden, um ein RPM-Paket zu installieren, während versucht wird, seine Abhängigkeiten mit Paketen aus den Repositories zu erfüllen. Um dies zu bewerkstelligen, benutzen Sie einfach den vollständigen Paketpfad, anstatt den Paketnamen, wie in zypper in /home/john/newpackage.rpm.

Um auf dem System installierte Pakete zu aktualisieren, verwenden Sie zypper update. Wie beim Installationsprozess zeigt dies eine Liste der zu installierenden/aktualisierenden Pakete an, bevor Sie gefragt werden, ob Sie fortfahren möchten.

Wenn Sie nur die verfügbaren Updates auflisten möchten, ohne etwas zu installieren, können Sie zypper list-updates verwenden.

Um ein Paket zu entfernen, verwenden Sie den Operator remove (oder rm), gefolgt vom Paketnamen:

# zypper rm unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  unrar

1 package to remove.
After the operation, 301.6 KiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing unrar-5.7.5-lp151.1.1.x86_64 ........................[done]

Denken Sie daran, dass das Entfernen eines Pakets auch alle anderen Pakete entfernt, die von diesem Paket abhängen. Zum Beispiel:

# zypper rm libgimp-2_0-0
Loading repository data...
Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed.
Reading installed packages...
Resolving package dependencies...

Die folgenden 6 Pakete werden ENTFERNT:
  gimp gimp-help gimp-lang gimp-plugins-python libgimp-2_0-0
  libgimpui-2_0-0

6 packages to remove.
After the operation, 98.0 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y):

Finden, welche Pakete eine bestimmte Datei enthalten

Um zu sehen, welche Pakete eine bestimmte Datei enthalten, verwenden Sie den Suchoperator, gefolgt vom Parameter --provides und dem Namen der Datei (oder dem vollständigen Pfad zu dieser). Wenn Sie zum Beispiel wissen wollen, welche Pakete die Datei libgimpmodule-2.0.so.0 in /usr/lib64/ enthalten, dann verwenden Sie folgende Suchoperation:

# zypper se --provides /usr/lib64/libgimpmodule-2.0.so.0
Loading repository data...
Reading installed packages...

S | Name          | Summary                                      | Type
--+---------------+----------------------------------------------+--------
i | libgimp-2_0-0 | The GNU Image Manipulation Program - Libra-> | package

Erhalten von Paketinformationen

Um die zu einem Paket gehörenden Metadaten anzuzeigen, verwenden Sie den Operator info gefolgt vom Paketnamen. Dadurch erhalten Sie das Ursprungsrepository, den Paketnamen, die Version, die Architektur, den Ersteller, die installierte Größe, ob es installiert ist oder nicht, den Status (wenn es aktuell ist), das Quellpaket und eine Beschreibung.

# zypper info gimp
Loading repository data...
Reading installed packages...

Information for package gimp:
 -----------------------------
Repository     : Main Repository
Name           : gimp
Version        : 2.8.22-lp151.4.6
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 29.1 MiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : gimp-2.8.22-lp151.4.6.src
Summary        : The GNU Image Manipulation Program
Description    :
    The GIMP is an image composition and editing program, which can be
    used for creating logos and other graphics for Web pages. The GIMP
    offers many tools and filters, and provides a large image
    manipulation toolbox, including channel operations and layers,
    effects, subpixel imaging and antialiasing, and conversions, together
    with multilevel undo. The GIMP offers a scripting facility, but many
    of the included scripts rely on fonts that we cannot distribute.

Verwaltung von Softwarerepositories

zypper kann auch zur Verwaltung von Softwarerepositories verwendet werden. Um eine Liste aller derzeit in Ihrem System registrierten Repositories zu sehen, verwenden Sie zypper repos:

# zypper repos
Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                     | Name                               | Enabled | GPG Check | Refresh
---+---------------------------+------------------------------------+---------+-----------+--------
 1 | openSUSE-Leap-15.1-1      | openSUSE-Leap-15.1-1               | No      | ----      | ----
 2 | repo-debug                | Debug Repository                   | No      | ----      | ----
 3 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | No      | ----      | ----
 4 | repo-debug-update         | Update Repository (Debug)          | No      | ----      | ----
 5 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | No      | ----      | ----
 6 | repo-non-oss              | Non-OSS Repository                 | Yes     | (r ) Yes  | Yes
 7 | repo-oss                  | Main Repository                    | Yes     | (r ) Yes  | Yes
 8 | repo-source               | Source Repository                  | No      | ----      | ----
 9 | repo-source-non-oss       | Source Repository (Non-OSS)        | No      | ----      | ----
10 | repo-update               | Main Update Repository             | Yes     | (r ) Yes  | Yes
11 | repo-update-non-oss       | Update Repository (Non-Oss)        | Yes     | (r ) Yes  | Yes

In der Spalte Enabled ist ersichtlich welche Repositories aktiviert sind und welche nicht. Sie können dies mit dem modifyrepo-Operator ändern, gefolgt von den Optionen -e (enable) oder -d (disable) und dem Repositoryalias (die zweite Spalte in der obigen Ausgabe).

# zypper modifyrepo -d repo-non-oss
Repository 'repo-non-oss' has been successfully disabled.

# zypper modifyrepo -e repo-non-oss
Repository 'repo-non-oss' has been successfully enabled.

Zuvor haben wir erwähnt, dass zypper eine automatische Aktualisierungsfunktion hat, die auf Repositorybasis aktiviert werden kann. Wenn dieses Flag aktiviert ist, veranlasst es zypper, eine Aktualisierungsoperation auszuführen (dasselbe wie zypper refresh), bevor es mit dem angegebenen Repo arbeitet. Dies kann mit den Parametern -f und -F des modifyrepo-Operators gesteuert werden:

# zypper modifyrepo -F repo-non-oss
Autorefresh has been disabled for repository 'repo-non-oss'.

# zypper modifyrepo -f repo-non-oss
Autorefresh has been enabled for repository 'repo-non-oss'.
Hinzufügen und Entfernen von Repositories

Um ein neues Softwarerepository für zypper hinzuzufügen, verwenden Sie den Operator addrepo, gefolgt von der Repository-URL und dem Repositorynamen, wie unten beschrieben:

# zypper addrepo http://packman.inode.at/suse/openSUSE_Leap_15.1/ packman
Adding repository 'packman' ........................................[done]
Repository 'packman' successfully added

URI         : http://packman.inode.at/suse/openSUSE_Leap_15.1/
Enabled     : Yes
GPG Check   : Yes
Autorefresh : No
Priority    : 99 (default priority)

Repository priorities are without effect. All enabled repositories share the same priority.

Während Sie ein Repository hinzufügen, können Sie mit dem Parameter -f automatische Aktualisierungen aktivieren. Hinzugefügte Repositories sind standardmäßig aktiviert, aber Sie können ein Repository gleichzeitig hinzufügen und deaktivieren, indem Sie den Parameter -d verwenden.

Um ein Repository zu entfernen, verwenden Sie den Operator removerepo, gefolgt vom Repositorynamen (Alias). Um das im obigen Beispiel hinzugefügte Repository zu entfernen, lautet der Befehl:

# zypper removerepo packman
Removing repository 'packman' ......................................[done]
Repository 'packman' has been removed.

Geführte Übungen

  1. Wenn Sie rpm auf einem Red Hat Enterprise Linux System verwenden, wie wird das Paket file-roller-3.28.1-2.el7.x86_64.rpm installiert, samt Anzeige eines Fortschrittsbalkens während der Installation?

  2. Finden Sie mit rpm heraus, welches Paket die Datei /etc/redhat-release enthält.

  3. Wie würden Sie yum benutzen, um nach Aktualisierungen für alle Pakete im System zu suchen?

  4. Wie würden Sie mit zypper ein Repository namens repo-extras deaktivieren?

  5. Wenn Sie eine .repo-Datei haben, die ein neues Repository beschreibt, wo sollte diese Datei abgelegt werden, damit sie vom DNF erkannt wird?

Offene Übungen

  1. Wie würden Sie zypper benutzen, um herauszufinden, welchem Paket die Datei /usr/sbin/swapon gehört?

  2. Wie können Sie mit dnf eine Liste aller im System installierten Pakete erhalten?

  3. Wie lautet der Befehl, mit dem dnf ein Repository unter https://www.example.url/home:reponame.repo dem System hinzufügt?

  4. Wie können Sie zypper benutzen, um zu überprüfen, ob das Paket unzip installiert ist?

  5. Finden Sie mit yum heraus, welches Paket die Datei /bin/wget zur Verfügung stellt.

Zusammenfassung

In dieser Lektion haben Sie gelernt:

  • Wie man rpm benutzt, um Pakete zu installieren, zu aktualisieren und zu entfernen.

  • Wie man yum, zypper und dnf verwendet.

  • Wie Sie Informationen über ein Paket erhalten.

  • Wie Sie eine Liste der Paketinhalte erhalten.

  • Wie Sie herausfinden können, aus welchem Paket eine Datei stammt.

  • Wie man Softwarerepositories auflistet, hinzufügt, entfernt sowie aktiviert oder deaktiviert.

Die folgenden Befehle wurden diskutiert:

  • rpm

  • yum

  • dnf

  • zypper

Lösungen zu den geführten Übungen

  1. Wenn Sie rpm auf einem Red Hat Enterprise Linux System verwenden, wie wird das Paket file-roller-3.28.1-2.el7.x86_64.rpm installiert, samt Anzeige eines Fortschrittsbalkens während der Installation?

    Verwenden Sie den Parameter -i, um ein Paket zu installieren, und die Option -h, um “Hashmarkierungen” zu aktivieren, die den Fortschritt der Installation anzeigen. Die Antwort lautet also: rpm -ih file-roller-3.28.1-2.el7.x86_64.rpm.

  2. Finden Sie mit rpm heraus, welches Paket die Datei /etc/redhat-release enthält.

    Sie fragen Informationen über eine Datei ab, also benutzen Sie den -qf-Parameter: rpm -qf /etc/redhat-release.

  3. Wie würden Sie yum benutzen, um nach Aktualisierungen für alle Pakete im System zu suchen?

    Verwenden Sie die Operation check-update ohne einen Paketnamen: yum check-update.

  4. Wie würden Sie mit zypper ein Repository namens repo-extras deaktivieren?

    Benutzen Sie den Befehl modifyrepo und die Option -d, um das Repo zu deaktivieren: zypper modifyrepo -d repo-extras.

  5. Wenn Sie eine .repo-Datei haben, die ein neues Repository beschreibt, wo sollte diese Datei abgelegt werden, damit sie vom DNF erkannt wird?

    .repo-Dateien für DNF sollten an der gleichen Stelle abgelegt werden, wie jene die von YUM benutzt werden und zwar innerhalb von /etc/yum.repos.d/.

Lösungen zu den offenen Übungen

  1. Wie würden Sie zypper benutzen, um herauszufinden, welchem Paket die Datei /usr/sbin/swapon gehört?

    Verwenden Sie den Operator se (search) und die Option --provides: zypper se --provides /usr/sbin/swapon.

  2. Wie können Sie mit dnf eine Liste aller im System installierten Pakete erhalten?

    Verwenden Sie den Operator list, gefolgt von der Option --installed: dnf list --installed.

  3. Wie lautet der Befehl, mit dem dnf ein Repository unter https://www.example.url/home:reponame.repo dem System hinzufügt?

    Die Arbeit mit Repositories ist eine “Konfigurationsänderung”, also benutzen Sie den config-manager und die --add_repo Option: dnf config-manager --add_repo https://www.example.url/home:reponame.repo.

  4. Wie können Sie zypper benutzen, um zu überprüfen, ob das Paket unzip installiert ist?

    Sie müssen eine Suche (se) betreffend der installierten (-i) Paketen durchführen: zypper se -i unzip.

  5. Finden Sie mit yum heraus, welches Paket die Datei /bin/wget zur Verfügung stellt.

    Um herauszufinden, was eine Datei bereitstellt, verwenden Sie whatprovides und den Dateinamen: yum whatprovides /bin/wget.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

102.6 Linux als Virtualisierungs-Gast (102.6 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.