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

dnfを使用したLinuxパッケージ管理

コンピュータシステムへのアプリケーションのインストールは非常に簡単です。アーカイブからファイル(.zipファイルなど)を、オペレーティングシステムがアプリケーションがあると想定している場所のターゲットコンピューターにコピーします。私たちの多くは、コンピューターにソフトウェアをインストールするのに役立つ豪華なインストーラー「ウィザード」を使用することに慣れているため、プロセスは技術的には実際よりも複雑になるはずです。

その他のLinuxリソース

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

とは ただし、複雑なのは、アプリケーションを構成するものの問題です。ユーザーが単一のアプリケーションと考えるものには、実際にはソフトウェアライブラリ(つまり、.so)から借用したコードが含まれています Linux上のファイル、.dll Windows上のファイル、および.dylib macOSの場合)オペレーティングシステム全体に散在しています。

ユーザーが相互依存するコードの真のマトリックスについて心配する必要がないように、Linuxはパッケージ管理システムを使用しています。 どのアプリケーションがどのライブラリを必要としているか、どのライブラリまたはアプリケーションにセキュリティまたは機能の更新があるか、および各ソフトウェアタイトルでインストールされた追加のデータファイルを追跡するため。パッケージマネージャーは、基本的にインストーラーウィザードです。それらは使いやすく、グラフィカルインターフェイスと端末ベースのインターフェイスの両方を提供し、あなたの生活を楽にします。ディストリビューションのパッケージマネージャーをよく知っているほど、生活が楽になります。

Linuxへのアプリケーションのインストール

Linuxにアプリケーションをインストールしたいカジュアルなデスクトップユーザーの場合は、デスクトップアプリケーションブラウザであるGNOMESoftwareを探しているかもしれません。

期待どおりに機能します。便利と思われるアプリケーションが見つかるまでインターフェースをクリックしてから、インストールをクリックします。 ボタン。

または、.rpmを開くこともできます または.flatpakref GNOMEソフトウェアでWebからダウンロードしたパッケージをインストールします。

入力したコマンドでコンピューターを制御したい場合は、読み進めてください!

dnfを使用したソフトウェアの検索

アプリケーションをインストールする前に、アプリケーションがディストリビューションのサーバーに存在することを確認する必要がある場合があります。通常、dnfを使用してアプリケーションの一般名を検索します 十分です。たとえば、最近コックピットに関する記事を読んで、試してみたいと思ったとします。 cockpitを検索できます ディストリビューションに含まれていることを確認するには:

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

完全に一致します。一致としてリストされているパッケージは、cockpit.x86_64と呼ばれます。 、ただし.x86_64 名前の一部は、互換性のあるCPUアーキテクチャのみを示しています。デフォルトでは、システムは一致するCPUアーキテクチャを備えたパッケージをインストールするため、その拡張機能は無視できます。したがって、探しているパッケージが実際には単にcockpitと呼ばれていることを確認しました。 。

これで、dnf installを使用して自信を持ってインストールできます 。この手順には管理者権限が必要です:

$ sudo dnf install cockpit

多くの場合、これは典型的なdnfです。 ワークフロー:検索してインストールします。

ただし、dnf searchの結果が表示される場合があります 明確ではないか、パッケージの一般名だけでなく、パッケージに関する詳細情報が必要です。関連するdnfがいくつかあります 探している情報に応じて、サブコマンド。

パッケージメタデータ

検索で閉じると感じた場合 必要なパッケージに追加しますが、まだよくわからない場合は、プロジェクトのURLや説明などのパッケージのメタデータを確認すると役立つことがよくあります。この情報を取得するには、直感的なdnf infoを使用してください コマンド:

$ 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.

この情報ダンプは、利用可能なパッケージのバージョン、システムに登録されているリポジトリが提供するもの、プロジェクトのWebサイト、およびその機能の詳細な説明を示します。

どのパッケージがファイルを提供しますか?

パッケージ名は、探しているものと常に一致するとは限りません。たとえば、qmake-qt5と呼ばれるものをインストールする必要があることを示すドキュメントを読んでいるとします。 :

$ dnf search qmake-qt5
No matches found.

dnf データベースは広範囲にわたるため、完全一致の検索に制限する必要はありません。 dnf providesを使用できます 何かがあなたが探しているものをいくつかのより大きなパッケージの一部として提供するかどうかを知るためのコマンド:

$ 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

これにより、アプリケーションがqmake-qt5であることを確認できます。 qt5-qtbase-develという名前のパッケージの一部です 。また、アプリケーションが/usr/binにインストールされることも通知します。 、インストールするとどこにあるかが正確にわかります。

パッケージにはどのファイルが含まれていますか?

dnfに近づいていることに気付くことがあります まったく別の角度から。時々、アプリケーションがシステムにインストールされていることをすでに確認しています。どうやって手に入れたのかわからない。また、特定のパッケージがインストールされていることはわかっていますが、そのパッケージがシステムに何を入れているのか正確にはわかりません。

パッケージのペイロードを「リバースエンジニアリング」する必要がある場合は、dnf repoqueryを使用できます。 --listと一緒にコマンド オプション。これにより、パッケージに関するリポジトリのメタデータが確認され、そのパッケージによって提供されるすべてのファイルのリストが返されます。

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

これらのリストは長くなる可能性があるため、lessを介してコマンドをパイプするのに役立ちます またはお気に入りのポケットベル。

アプリケーションの削除

システムにアプリケーションをインストールする必要がなくなった場合は、dnf removeを使用できます。 それをアンインストールするには、そのパッケージの一部としてインストールされたすべてのファイル、および不要になった依存関係:

$ dnf remove bigapp

場合によっては、依存関係が1つのアプリでインストールされ、後でインストールする他のアプリケーションで役立つことがわかります。 2つのパッケージに同じ依存関係が必要な場合は、dnf remove しない 依存関係を削除します。多くのアプリケーションをインストールおよびアンインストールした後、あちこちでパッケージが迷子になることは前例のないことではありません。年に1回程度、dnf autoremoveを実行します 未使用のパッケージをクリアするには:

$ dnf autoremove

これは必須ではありませんが、コンピュータの気分を良くするためのハウスクリーニングの手順です。

dnfを理解する

パッケージマネージャーがどのように機能するかを理解すればするほど、必要に応じてアプリケーションをインストールしてクエリを実行するのが簡単になります。通常のdnfでなくても ユーザーの方は、RPMベースのディストリビューションとのインターフェースを見つけたときにそれを知っておくと便利です。

yumを卒業した 、私のお気に入りのパッケージマネージャーの1つは、dnfです。 指図。すべてのサブコマンドが好きというわけではありませんが、より堅牢なパッケージ管理システムの1つであることがわかりました。 dnfをダウンロードする 虎の巻 コマンドに慣れるために、そしてそれでいくつかの新しいトリックを試すことを恐れないでください。慣れてしまえば、他のものを使うのは難しいかもしれません。


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

  2. Linuxパッケージ管理のためのAppImageの使用

  3. コマンドラインでのDNFを使用したCentOS8パッケージ管理

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

  2. Linux でのパッケージ管理のための 15 の aptitude コマンドの例

  3. Kali Linux の高度なパッケージ管理

  1. LVMを使用してLinuxをインストールする

  2. Linuxでduをdustに置き換えます

  3. Linuxでのdpkgコマンドと例