GNU/Linux >> Linux の 問題 >  >> Linux

Linuxパッケージマネージャー:dnf vs apt

Linuxシステムにアプリケーションをインストールする方法はたくさんあります。 Flatpakやコンテナのように、いくつかは新しいものです。 DEBやRPMのような他のものは、時の試練に耐えてきた古典的なフォーマットです。

どのオペレーティングシステムにもユニバーサルインストーラーはありません。現在、ソフトウェアを提供している開発者は無数にいるため、すべての主要なOSは、アプリストア(ファーストパーティとサードパーティの両方)、ドラッグアンドドロップインストール、およびインストールウィザードを組み合わせて使用​​しています。開発者が異なれば、提供するコードの要件も異なります。これにより、開発者がそれぞれ選択するインストール方法がわかります。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

Linuxは、パッケージマネージャーの概念を開拓しました。 、アプリケーションをインストール、管理、およびアンインストールするためのコマンド。 2つの一般的なパッケージマネージャーコマンドはaptです およびdnfapt コマンドはDEBパッケージを管理し、dnf RPMパッケージを管理します。理論的には、この2つは厳密には互いに排他的ではありませんが、実際には、Linuxディストリビューションは一般的にどちらか一方を使用します。理論的には両方を1つのシステムで実行することは可能ですが、パッケージのインストールが重複し、バージョン管理が困難になり、コマンドが相互に冗長になります。ただし、混合Linux環境で作業していて、あるディストリビューションを実行しているワークステーションと別のディストリビューションを実行しているサーバーを操作する場合は、両方を知っておく必要があります。

アプリケーションの検索

パッケージマネージャーを使用してアプリケーションをインストールする前に、パッケージの名前を知っておく必要があります。通常、アプリケーション名とパッケージ名は同じです。インストールするパッケージの名前を確認するプロセスは、dnfでもまったく同じです。 およびapt

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

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
[...]

aptから関連する結果を取得するには 検索の早い段階で、正規表現を使用できます:

apt search ^zsh
Sorting... Done
Full Text Search... Done
zsh/stable 5.7.1-1 amd64
  shell with lots of features
[...]
アプリケーションのパッケージを検索する

一部のコマンドは、他のコマンドとすべて1つのパッケージにバンドルされています。その場合、パッケージマネージャーを使用して、必要なものを提供するパッケージを確認できます。 dnf およびapt コマンドは、この種のメタデータを検索する方法によって異なります。

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

apt コマンドはサブコマンドapt-fileを使用します 。 apt-fileを使用するには 、最初にインストールしてから、キャッシュを更新するように求める必要があります:

$ 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 libexporter-tiny-perl liblist-moreutils-perl libregexp-assemble-perl
The following NEW packages will be installed:
  apt-file libapt-pkg-perl libexporter-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
[...]

apt-fileを使用できます コマンドを検索します。コマンドを検索するだけで非常に広いネットをキャストできますが、コマンドの予想されるパスがわかっている場合は、より正確です。

$ sudo apt-file search /usr/bin/pgrep
pgreplay: /usr/bin/pgreplay              
procps: /usr/bin/pgrep
アプリケーションのインストール

アプリケーションのインストールは、基本的にaptと同じです。 およびdnf

$ sudo apt install zsh

dnfを使用 、同じオプションを使用して単一のパッケージをインストールできます:

$ sudo dnf install zsh

多くのRPMベースのディストリビューションはインストールグループを備えています 、表面的に関連するアプリケーションを1つの簡単にインストール可能なターゲットに収集します。たとえば、FedoraのDesign Suiteグループには、人気のあるクリエイティブアプリケーションが含まれています。 1つのクリエイティブなアプリケーションを必要とする多くのアーティストは、同様のアプリケーションを必要とする可能性があります。グループ全体をインストールすることは、デジタルスタジオの構築を賢明に始めるための簡単で迅速な方法です。 group listで利用可能なグループを表示できます (-vを使用します スペースなしでグループ名を表示するには):

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

group installを使用してRPMグループをインストールします サブコマンド:

$ sudo dnf group install design-suite

@を使用できます タイピングを減らすための表記法:

$ sudo dnf install @design-suite
アプリケーションのアップグレード

パッケージマネージャーを使用する利点の1つは、すべてを認識していることです。 これまでにインストールしたアプリケーション。つまり、更新されたバージョンのアプリケーションを探す必要はありません。代わりに、パッケージマネージャーに更新をスキャンするように指示できます。

dnfで使用されるサブコマンド およびapt 少し違います。 apt 定期的な更新が必要な情報のキャッシュを保持し、upgradeを使用します アプリケーション更新のサブコマンド:

$ sudo apt upgrade

対照的に、dnf コマンドを使用するたびにメタデータが更新されるため、update およびupgrade サブコマンドは交換可能です:

$ sudo dnf upgrade

これは次と同じです:

$ sudo dnf update
アプリケーションの削除

いずれかのプラットフォームでアプリケーションを手動で削除しようとしたことがある場合は、アプリケーションを削除した後、必然的に、設定ファイル、アセット、アイコンなどのファイルがハードドライブ全体に散らばっていることをご存知でしょう。パッケージマネージャーを使用するもう1つの利点は、パッケージマネージャーがすべての単一ファイルを知っていることです。 パッケージとともにインストール:

$ sudo dnf remove zsh

remove サブコマンドはaptにも使用されます :

$ sudo apt remove zsh

aptを使用してパッケージを削除する 誤ってパッケージを削除した場合に備えて、変更されたユーザー構成ファイルは削除されません。 aptが必要な場合 アプリケーションを削除するには その構成ファイルについては、purgeを使用してください 以前に削除したアプリケーションの場合:

$ sudo apt purge zsh

両方のapt およびdnfpurgeでも )ホームディレクトリ内のデータまたは構成ファイルを削除しないでください。ホームディレクトリからデータを削除するには、手動で行う必要があります(通常、~/.configにあります)。 および~/.local

パッケージ管理の学習

選択したLinuxディストリビューションがaptを優先するかどうか またはdnf 、コマンドの目的はほぼ同じです。パッケージのインストール、更新、削除に役立ちます。最も一般的なパッケージマネージャーであるこれら2つは、相互の最も重要な構文要素をほぼ反映しているため、これらの切り替えは非常に簡単です。

それぞれに、リポジトリ管理など、大幅に分岐するいくつかの高度な機能がありますが、それらはsearchの従来のシーケンスほど頻繁には実行されない傾向があります。 およびinstall

どのパッケージマネージャーを頻繁に使用するかに関係なく、aptチートシートとdnfチートシートをダウンロードして、最も重要な構文を最も必要なときにすぐに利用できるようにすることができます。


Linux
  1. aptによるLinuxパッケージ管理

  2. Linuxパッケージマネージャーを使用する5つの理由

  3. パッケージマネージャーの進化

  1. Linuxパッケージマネージャーの比較– AppImage vs Snap vs Flatpak

  2. APTユーザー向けのDNF

  3. LinuxRPMパッケージを作成する方法

  1. 非ルートパッケージマネージャー?

  2. Linux – Kaliにヘッダーをインストールしますか?

  3. apt:コマンドが見つかりません