Advertisements

Linux-Paketmanager: dnf vs apt

Es gibt viele Möglichkeiten, Anwendungen auf ein Linux-System zu übertragen. Einige, wie Flatpak und Container, sind neu. Andere, wie DEB und RPM, sind klassische Formate, die sich bewährt haben.

Es gibt kein universelles Installationsprogramm für jedes Betriebssystem. Heutzutage verwenden alle großen Betriebssysteme eine Mischung aus App-Stores (sowohl Erst- als auch Drittanbieter), Drag-and-Drop-Installation und Installationsassistenten, da unzählige Entwickler Software bereitstellen. Unterschiedliche Entwickler haben unterschiedliche Anforderungen an den von ihnen gelieferten Code, und dies beeinflusst die von ihnen gewählte Installationsmethode.

Weitere Linux-Ressourcen

Linux war Vorreiter beim Konzept von a Paket-Manager, ein Befehl zum Installieren, Verwalten und Deinstallieren von Anwendungen. Zwei gängige Paketmanagerbefehle sind apt und dnf. Die apt Befehl verwaltet DEB-Pakete, während dnf verwaltet RPM-Pakete. Die beiden schließen sich theoretisch nicht strikt aus, obwohl eine Linux-Distribution in der Praxis in der Regel das eine oder andere verwendet. Es ist theoretisch möglich, beides auf einem System auszuführen, aber Paketinstallationen würden sich überschneiden, die Versionierung wäre schwierig und die Befehle wären redundant. Wenn Sie jedoch in einer gemischten Linux-Umgebung arbeiten und mit Workstations interagieren, auf denen eine Distribution ausgeführt wird, und Servern, auf denen eine andere ausgeführt wird, müssen Sie möglicherweise beides kennen.

Suche nach Bewerbungen

Bevor Sie eine Anwendung mit einem Paketmanager installieren können, müssen Sie den Namen des Pakets kennen. Normalerweise sind der Anwendungsname und der Paketname identisch. Der Vorgang zum Überprüfen des Namens des Pakets, das Sie installieren möchten, ist genau gleich auf dnf und apt:

$ sudo dnf search zsh
====== Name Exactly Matched: zsh ======
zsh.x86_64 : Powerful interactive shell
[...]

Mit apt:

$ sudo apt search zsh
Sorting... Done
Full Text Search... Done
csh/stable 20110502-4+deb10u1 amd64
  Shell with C-like syntax

ddgr/stable 1.6-1 all
  DuckDuckGo from the terminal

direnv/stable 2.18.2-2 amd64
  Utility to set directory specific environment variables

draai/stable 20180521-1 all
  Command-line music player for MPD
[...]

Um relevante Ergebnisse zu erhalten von apt Früher in der Suche können Sie Regex verwenden:

apt search ^zsh
Sorting... Done
Full Text Search... Done
zsh/stable 5.7.1-1 amd64
  shell with lots of features
[...]

Das Paket einer Anwendung finden

Einige Befehle werden mit anderen Befehlen gebündelt, alles in einem Paket. In diesem Fall können Sie Ihren Paketmanager verwenden, um zu erfahren, welches Paket das bietet, was Sie benötigen. Die dnf und apt Befehle unterscheiden sich bei der Suche nach dieser Art von Metadaten.

Auf dnf:

$ sudo dnf provides pgrep
procps-ng-3.3.15-6.el8.x86_64 : System and process monitoring utilities
Repo        : baseos
Matched from:
Filename    : /usr/bin/pgrep

Die apt Befehl verwendet einen Unterbefehl, apt-file. Benutzen apt-file, müssen Sie es zuerst installieren und dann auffordern, seinen Cache zu aktualisieren:

$ sudo apt install apt-file
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
  libapt-pkg-perl liber-tiny-perl liblist-moreutils-perl libregexp-assemble-perl
The following NEW packages will be installed:
  apt-file libapt-pkg-perl liber-tiny-perl liblist-moreutils-perl libregexp-assemble-perl
0 upgraded, 5 newly installed, 0 to remove and 14 not upgraded.
Need to get 297 kB of archives.
After this operation, 825 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

$ sudo apt-file update
[...]

Sie können verwenden apt-file nach einem Befehl suchen. Sie können ein sehr weites Netz werfen, indem Sie einfach nach dem Befehl suchen, aber wenn Sie den erwarteten Pfad des Befehls kennen, ist er genauer:

$ sudo apt-file search /usr/bin/pgrep
pgreplay: /usr/bin/pgreplay              
procps: /usr/bin/pgrep

Anwendungen installieren

Die Installation von Anwendungen ist im Wesentlichen identisch mit apt und dnf:

$ sudo apt install zsh

Mit dnf, können Sie ein einzelnes Paket mit derselben Option installieren:

$ sudo dnf install zsh

Funktion vieler RPM-basierter Distributionen Installationsgruppen, die manchmal oberflächlich verwandte Anwendungen in einem leicht installierbaren Ziel zusammenfassen. Zum Beispiel enthält die Design Suite-Gruppe in Fedora beliebte Kreativanwendungen. Viele Künstler, die eine kreative Anwendung wünschen, möchten wahrscheinlich ähnliche Anwendungen, und die Installation der gesamten Gruppe ist eine einfache und schnelle Möglichkeit, einen vernünftigen Einstieg in den Aufbau eines digitalen Studios zu erhalten. Sie können verfügbare Gruppen anzeigen mit group list (verwenden -v um die Gruppennamen ohne Leerzeichen zu sehen):

$ sudo dnf group list -v
[...]
Available Groups:
   Container Management (container-management)
   RPM Development Tools (rpm-development-tools)
   Design Suite (design-suite)
   Development Tools (development)
[...]

Installieren Sie eine RPM-Gruppe mit dem group install Unterbefehle:

$ sudo dnf group install design-suite

Du kannst den … benutzen @ Notation, um das Tippen zu reduzieren:

$ sudo dnf install @design-suite

Aktualisieren von Anwendungen

Ein Vorteil der Verwendung eines Paketmanagers besteht darin, dass er sich dessen bewusst ist alle die Anwendungen, die es jemals installiert hat. Das bedeutet, dass Sie nicht nach aktualisierten Versionen von Anwendungen suchen müssen. Stattdessen können Sie Ihren Paketmanager anweisen, nach Updates zu suchen.

Die von . verwendeten Unterbefehle dnf und apt sind etwas anders. Weil apt hält einen Cache mit Informationen, die regelmäßig aktualisiert werden müssen, verwendet die upgrade Unterbefehl für Anwendungsupdates:

$ sudo apt upgrade

Im Gegensatz, dnf aktualisiert die Metadaten jedes Mal, wenn Sie den Befehl verwenden update und upgrade Unterbefehle sind austauschbar:

$ sudo dnf upgrade

Dies ist das gleiche wie:

$ sudo dnf update

Anwendungen entfernen

Wenn Sie jemals versucht haben, eine Anwendung auf einer beliebigen Plattform manuell zu entfernen, wissen Sie, dass nach dem Entfernen der Anwendung unweigerlich Dateien wie Einstellungsdateien oder Assets oder Symbole auf Ihrer Festplatte verstreut sind. Ein weiterer Vorteil der Verwendung eines Paketmanagers besteht darin, dass Ihr Paketmanager Bescheid weiß jede einzelne Datei installiert mit einem Paket:

$ sudo dnf remove zsh

Die remove Unterbefehl wird auch verwendet für apt:

$ sudo apt remove zsh

Entfernen eines Pakets mit apt entfernt keine geänderten Benutzerkonfigurationsdateien, falls Sie das Paket versehentlich entfernt haben. Falls Sie es wollen apt eine Anwendung entfernen und seine Konfigurationsdateien verwenden purge für eine Anwendung, die Sie zuvor entfernt haben:

$ sudo apt purge zsh

Beide apt und dnf (sogar mit purge) entfernen Sie keine Daten- oder Konfigurationsdateien in Ihrem Home-Verzeichnis. Um Daten aus Ihrem Home-Verzeichnis zu entfernen, müssen Sie dies manuell tun (es befindet sich normalerweise in ~/.config und ~/.local).

Verwaltung von Lernpaketen

Ob Ihre Linux-Distribution Ihrer Wahl bevorzugt apt oder dnf, sind die Zwecke der Befehle weitgehend identisch. Sie helfen Ihnen beim Installieren, Aktualisieren und Entfernen von Paketen. Diese beiden, die die gebräuchlichsten Paketmanager sind, spiegeln weitgehend die wichtigsten syntaktischen Elemente des anderen wider, sodass der Wechsel zwischen ihnen ziemlich einfach ist.

Jedes verfügt über einige erweiterte Funktionen, wie z search und install.

Unabhängig davon, welchen Paketmanager Sie häufiger verwenden, können Sie unseren apt-Spickzettel und den dnf-Spickzettel herunterladen, damit Sie die wichtigste Syntax immer zur Hand haben, wenn Sie sie am dringendsten benötigen.

Linux-Paketmanager: dnf vs apt

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top