Die Installation einer Anwendung auf einem Computersystem ist ziemlich einfach. Sie kopieren Dateien aus einem Archiv (z. B. einer ZIP-Datei) auf den Zielcomputer an einem Ort, an dem das Betriebssystem Anwendungen erwartet. Da viele von uns daran gewöhnt sind, ausgefallene Installations-“Assistenten” zu haben, die uns helfen, Software auf unseren Computern zu installieren, scheint der Prozess technisch komplexer zu sein, als er ist.
Was ist Komplex ist jedoch die Frage, was eine Bewerbung ausmacht. Was sich Benutzer als einzelne Anwendung vorstellen, enthält tatsächlich Code-Ausleihen aus Softwarebibliotheken (d. h. .so
Dateien unter Linux, .dll
Dateien unter Windows und .dylib
auf macOS) über ein Betriebssystem verstreut.
Damit sich Benutzer nicht um diese veritable Matrix aus voneinander abhängigem Code kümmern müssen, verwendet Linux a Paketverwaltungssystem um zu verfolgen, welche Anwendung welche Bibliothek benötigt, welche Bibliothek oder Anwendung Sicherheits- oder Funktionsupdates hat und welche zusätzlichen Datendateien mit jedem Softwaretitel installiert wurden. Ein Paketmanager ist im Wesentlichen ein Installationsassistent. Sie sind einfach zu bedienen, bieten sowohl grafische als auch terminalbasierte Schnittstellen und erleichtern Ihnen das Leben. Je besser Sie den Paketmanager Ihrer Distribution kennen, desto einfacher wird Ihr Leben.
Anwendungen unter Linux installieren
Wenn Sie ein gelegentlicher Desktop-Benutzer sind, der eine Anwendung unter Linux installieren möchte, suchen Sie möglicherweise nach GNOME Software, einem Desktop-Anwendungsbrowser.
gnome-software.png
Es funktioniert wie erwartet: Sie klicken sich durch die Benutzeroberfläche, bis Sie eine Anwendung finden, die nützlich zu sein scheint, und klicken dann auf das Installieren Taste.
Alternativ können Sie öffnen .rpm
oder .flatpakref
Pakete, die Sie aus dem Internet in der GNOME-Software heruntergeladen haben, damit diese für Sie installiert werden.
Wenn Sie dazu neigen, Ihren Computer mit getippten Befehlen zu steuern, lesen Sie weiter!
Software finden mit dnf
Bevor Sie eine Anwendung installieren können, müssen Sie möglicherweise bestätigen, dass sie auf den Servern Ihrer Verteilung vorhanden ist. Normalerweise wird nach dem allgemeinen Namen einer Anwendung mit . gesucht dnf
genügt. Angenommen, Sie haben kürzlich einen Artikel über Cockpit gelesen und möchten ihn ausprobieren. Du könntest suchen nach cockpit
um zu überprüfen, ob Ihre Distribution sie enthält:
$ dnf search cockpit
Last metadata expiration check: 0:01:46 ago on Tue 18 May 2021 19:18:15 NZST.
==== Name Exactly Matched: cockpit ====
cockpit.x86_64 : Web Console for Linux servers
==== Name & Summary Matched: cockpit ==
cockpit-bridge.x86_64 : Cockpit bridge server-side component
cockpit-composer.noarch : Composer GUI for use with Cockpit
[...]
Es gibt eine genaue Übereinstimmung. Das als Übereinstimmung aufgeführte Paket heißt cockpit.x86_64
, aber die .x86_64
Ein Teil des Namens bezeichnet nur die CPU-Architektur, mit der er kompatibel ist. Standardmäßig installiert Ihr System Pakete mit passenden CPU-Architekturen, sodass Sie diese Erweiterung ignorieren können. Sie haben also bestätigt, dass das gesuchte Paket tatsächlich einfach heißt cockpit
.
Jetzt können Sie es getrost mit installieren dnf install
. Dieser Schritt erfordert Administratorrechte:
$ sudo dnf install cockpit
Das ist meistens das Typische dnf
Workflow: suchen und installieren.
Manchmal jedoch sind die Ergebnisse von dnf search
sind Ihnen nicht klar, oder Sie möchten mehr Informationen zu einem Paket als nur seinen allgemeinen Namen. Es gibt ein paar relevante dnf
Unterbefehle, je nachdem, welche Informationen Sie suchen.
Paketmetadaten
Wenn du das Gefühl hast, deine Suche hat dich getroffen nah dran zu dem gewünschten Paket, aber Sie sind sich noch nicht sicher, ist es oft hilfreich, sich die Metadaten des Pakets anzusehen, z. B. die URL und die Beschreibung des Projekts. Um diese Informationen zu erhalten, verwenden Sie das angenehm intuitive dnf info
Befehl:
$ dnf info terminator
Available Packages
Name : terminator
Version : 1.92
Release : 2.el8
Architecture : noarch
Size : 526 k
Source : terminator-1.92-2.el8.src.rpm
Repository : epel
Summary : Store and run multiple GNOME terminals in one window
URL : https://github.com/gnome-terminator
License : GPLv2
Description : Multiple GNOME terminals in one window. This is a project to produce
: an efficient way of filling a large area of screen space with
: terminals. This is done by splitting the window into a resizeable
: grid of terminals. As such, you can produce a very flexible
: arrangements of terminals for different tasks.
Dieser Info-Dump informiert Sie über die Version des verfügbaren Pakets, das bei Ihrem System registrierte Repository, die Website des Projekts und eine lange Beschreibung dessen, was es tut.
Welches Paket stellt eine Datei bereit?
Paketnamen stimmen nicht immer mit dem überein, wonach Sie suchen. Angenommen, Sie lesen eine Dokumentation, die Ihnen sagt, dass Sie etwas namens . installieren müssen qmake-qt5
:
$ dnf search qmake-qt5
No matches found.
Die dnf
Die Datenbank ist umfangreich, sodass Sie sich nicht auf die Suche nach genauen Übereinstimmungen beschränken müssen. Du kannst den … benutzen dnf provides
Befehl, um zu erfahren, ob etwas das bietet, wonach Sie als Teil eines größeren Pakets suchen:
$ dnf provides qmake-qt5
qt5-qtbase-devel-5.12.5-8.el8.i686 : Development files for qt5-qtbase
Repo : appstream
Matched from:
Filename : /usr/bin/qmake-qt5
qt5-qtbase-devel-5.15.2-3.el8.x86_64 : Development files for qt5-qtbase
Repo : appstream
Matched from:
Filename : /usr/bin/qmake-qt5
Dies bestätigt, dass die Bewerbung qmake-qt5
ist Teil eines Pakets namens qt5-qtbase-devel
. Es sagt Ihnen auch, dass die Anwendung installiert wird auf /usr/bin
, damit Sie nach der Installation genau wissen, wo Sie es finden.
Welche Dateien sind in einem Paket enthalten?
Es gibt Zeiten, in denen ich mich nähere dnf
aus einem ganz anderen Blickwinkel. Manchmal habe ich bereits bestätigt, dass eine Anwendung auf meinem System installiert ist; Ich kann einfach nicht herausfinden, wie ich darauf gekommen bin. Manchmal weiß ich, dass ich ein bestimmtes Paket installiert habe, aber ich weiß nicht genau, was dieses Paket auf meinem System abgelegt hat.
Wenn Sie jemals die Nutzlast eines Pakets “reverse-engineeren” müssen, können Sie die dnf repoquery
Befehl zusammen mit dem --list
Möglichkeit. Dies betrachtet die Metadaten des Repositorys zu einem Paket und gibt eine Liste aller Dateien zurück, die von diesem Paket bereitgestellt werden:
$ dnf repoquery --list qt5-qtbase-devel
/usr/bin/fixqt4headers.pl
/usr/bin/moc-qt5
/usr/bin/qdbuscpp2xml-qt5
/usr/bin/qdbusxml2cpp-qt5
/usr/bin/qlalr
/usr/bin/qmake-qt5
/usr/bin/qvkgen
/usr/bin/rcc-qt5
[...]
Diese Listen können lang werden, daher hilft es, den Befehl durchzuleiten less
oder Ihr Lieblingspager.
Entfernen einer Anwendung
Sollten Sie sich dazu entschließen, eine auf Ihrem System installierte Anwendung nicht mehr zu benötigen, können Sie dnf remove
um es zu deinstallieren, alle Dateien, die als Teil seines Pakets installiert wurden, und alle Abhängigkeiten, die nicht mehr erforderlich sind:
$ dnf remove bigapp
Manchmal werden Abhängigkeiten mit einer App installiert und später von einer anderen Anwendung, die Sie installieren, als nützlich befunden. Falls zwei Pakete die gleiche Abhängigkeit erfordern, dnf remove
tut nicht Entfernen Sie die Abhängigkeit. Es ist nicht ungewöhnlich, nach der Installation und Deinstallation vieler Anwendungen hier und da mit einem verirrten Paket zu enden. Etwa einmal im Jahr trete ich auf dnf autoremove
um ungenutzte Pakete auszuräumen:
$ dnf autoremove
Dies ist nicht notwendig, aber es ist ein Reinigungsschritt, bei dem ich mich mit meinem Computer besser fühle.
dnf kennenlernen
Je mehr Sie über die Funktionsweise Ihres Paketmanagers wissen, desto einfacher können Sie bei Bedarf Anwendungen installieren und abfragen. Auch wenn du kein Stammgast bist dnf
Benutzer, es kann nützlich sein, es zu wissen, wenn Sie eine Schnittstelle zu einer RPM-basierten Distribution haben.
Nach Abschluss von yum
, einer meiner liebsten Paketmanager ist der dnf
Befehl. Obwohl ich nicht alle seine Unterbefehle liebe, finde ich es eines der robusteren Paketverwaltungssysteme da draußen. Laden Sie unsere . herunter dnf
Spickzettel um sich an den Befehl zu gewöhnen, und haben Sie keine Angst, neue Tricks damit auszuprobieren. Sobald Sie sich damit vertraut gemacht haben, fällt es Ihnen möglicherweise schwer, etwas anderes zu verwenden.