Linux ディストリビューションを区別する重要な要素は、パッケージ管理システムです。この記事では、Linux のパッケージングとパッケージ マネージャーについて学習します。 「パッケージ」と「パッケージ マネージャー」の概念とその仕組み、およびいくつかの一般的なパッケージ マネージャーを紹介します。
パッケージ マネージャーとは何ですか?
簡単に言えば、「パッケージ マネージャー」 (または「パッケージ マネージャー」) は、ユーザーがオペレーティング システム上でソフトウェア パッケージをインストール、削除、アップグレード、構成、および管理できるようにするツールです。パッケージ マネージャーは、ソフトウェア センターのようなグラフィカル アプリケーション、または apt-get や pacman のようなコマンド ライン ツールです。
チュートリアルや記事で「パッケージ」という言葉を頻繁に使用していることにお気付きかと思います。パッケージ マネージャーを理解するには、パッケージとは何かを理解する必要があります。
パッケージとは何ですか?
「パッケージ」 (または「ソフトウェア パッケージ」) は通常、GUI アプリケーション、コマンド ライン ツール、またはソフトウェア ライブラリ (他のソフトウェア プログラムに必要な) などのアプリケーションを指します。パッケージは基本的に、バイナリ実行可能ファイル、構成ファイル、および場合によっては依存関係情報を含むアーカイブ ファイルです。
昔は、ソフトウェアはソース コードからインストールされていました。ファイル (通常は README という名前) を参照して、必要なソフトウェア コンポーネントとバイナリの場所を確認します。通常、これには構成スクリプトまたは Makefile が含まれます。ソフトウェアを自分でコンパイルするか、すべての依存関係を自分で処理する必要があります (一部のソフトウェアでは、他のソフトウェアのインストールが必要です)。
この複雑さを解消するために、Linux ディストリビューションは独自のパッケージ形式を作成し、エンド ユーザーにソフトウェアをインストールするためにすぐに使用できるバイナリ (プリコンパイルされたソフトウェア) を提供すると同時に、いくつかのメタデータ (バージョン番号、説明) も提供します。依存関係。
それは、ケーキを焼くこととケーキを買うことのようなものです。
1990 年代半ば頃、Debian は DEB パッケージ形式 (.deb) を作成し、Red Hat Linux は RPM (Red Hat Package Manager の略語) パッケージ システム (.rpm) を作成しました。ソース コードをコンパイルする方法はまだ存在しますが、現在はオプションです。
パッケージング システムを操作または使用するには、パッケージ マネージャーが必要です。
パッケージ マネージャーはどのように機能しますか?
パッケージ マネージャーは一般的な概念であり、Linux に固有のものではないことに注意してください。さまざまなソフトウェアやプログラミング言語のパッケージ マネージャーがよく見つかります。 Python パッケージ専用の PIP パッケージ マネージャーがあります。 Atom エディターにも独自のパッケージ マネージャーがあります。
この記事の焦点は Linux であるため、Linux の観点から始めます。ただし、ここでの説明の多くは、一般的なパッケージ マネージャーにも適用できます。
パッケージ マネージャーがどのように機能するかを簡単に理解できるように、この図を (SUSE Wiki に基づいて) 作成しました。
ほぼすべての Linux ディストリビューションには、基本的にソフトウェア パッケージのコレクションである「ソフトウェア リポジトリ」があります。はい、複数のソフトウェア リポジトリが存在する可能性があります。ソフトウェア ライブラリには、さまざまな種類のソフトウェア パッケージが含まれています。
ソフトウェア ウェアハウスには、ソフトウェア パッケージ名、バージョン番号、ソフトウェア パッケージの説明、ソフトウェア ウェアハウス名などのソフトウェア パッケージ情報が含まれるメタデータ ファイルもあります。これは、Ubuntu/Debian で apt show コマンドを使用すると表示されるものです。
システム上のパッケージ マネージャーは、最初にメタデータと対話します。パッケージ マネージャーは、システム上にメタデータのローカル キャッシュを作成します。パッケージ マネージャーの更新オプション (apt update など) を実行すると、リポジトリ内のメタデータを参照してローカル メタデータ キャッシュが更新されます。
パッケージ マネージャーのインストール コマンド (apt install package_name など) を実行すると、パッケージ マネージャーはこのキャッシュを参照します。キャッシュ内にパッケージ情報が見つかった場合、インターネットを使用して適切なリポジトリに接続し、システムにインストールする前にパッケージをダウンロードします。
パッケージには依存関係がある場合があります。つまり、追加のパッケージのインストールが必要になる場合があります。通常、パッケージ マネージャーはこれらの依存関係を処理し、インストールするパッケージとともに自動的にインストールします。
#*Linux のパッケージ マネージャーは依存関係を処理します*
同様に、パッケージ マネージャーを使用してパッケージを削除すると、自動的にパッケージが削除されるか、システムにクリーンアップ可能な未使用のパッケージがあることが通知されます。インストールと削除という明らかなタスクに加えて、パッケージ マネージャーを使用して、必要に応じてパッケージを構成し、管理することもできます。たとえば、定期的なシステム更新中に特定のパッケージ バージョンがアップグレードされないようにすることができます。パッケージマネージャーができることはおそらく他にもたくさんあるでしょう。
さまざまな種類のパッケージ マネージャー
パッケージ マネージャーはパッケージング システムによって異なりますが、同じパッケージング システムに複数のパッケージ マネージャーがある場合があります。たとえば、RPM には Yum および DNF パッケージ マネージャーがあります。 DEB の場合、apt-get、aptitude などのコマンド ライン ベースのパッケージ マネージャーがあります。
Synaptic パッケージ マネージャー
パッケージ マネージャーは必ずしもコマンド ライン ベースであるとは限りません。Synaptic などのグラフィカルなパッケージ管理ツールもあります。ディストリビューションのソフトウェア センターは、内部で apt-get または DNF を実行している場合でも、パッケージ マネージャーでもあります。
######結論は######このトピックについてはこれ以上詳しく説明したくありません。さらに詳しく説明することはできますが、それはこのトピックの目的、つまり Linux のパッケージ マネージャーの基本を理解するという目的から逸れてしまいます。 Snap や Flatpak などの新しいユニバーサル パッケージ形式は今のところ無視します。
以上がLinuxパッケージマネージャーの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。