Linux ソフトウェアは一般に、ディストリビューション固有のツールが管理するパッケージとして配布されます。パッケージはインストール可能なファイルをメタデータとまとめ、システムがバージョン、依存関係、所有権、チェックサム、ライフサイクル操作を追跡できるようにします。
パッケージ · レッスン 1
ソフトウェア配布
upstream プロジェクト、ディストリビューション保守者、パッケージ、パッケージ形式が Linux のソフトウェアサプライチェーンを形成する仕組みを学びます。
パッケージに含まれるもの
バイナリパッケージには、実行ファイル、ライブラリ、文書、既定の設定、サービス定義などの資源を含められます。また、次のようなメタデータも持ちます。
- パッケージ名とバージョン
- 対象アーキテクチャとディストリビューションのコンテキスト
- 宣言された依存関係と競合関係
- ファイル一覧と整合性情報
- ライフサイクル操作で使う任意のスクリプトやトリガー
すべてのパッケージが対話的アプリケーションとは限りません。ライブラリ、カーネルコンポーネント、言語データ、フォント、デバッグシンボル、ほかのパッケージ群へ依存するメタデータを提供する場合もあります。
アプリケーションの実行ファイルではなく、通常パッケージメタデータに当たる情報はどれですか?
Upstream とディストリビューションの役割
upstream プロジェクトは元のソースコードを開発し、リリースします。Linux ディストリビューションの保守者は、選択したリリースをそのディストリビューションへ適合させます。ライセンスの確認、統合またはセキュリティパッチの適用、ビルド手順の定義、出力のパッケージ分割、依存関係の宣言、テストの実行、更新の保守などが作業に含まれます。
ディストリビューションのビルド基盤は、対応リリースとアーキテクチャ向けのパッケージを生成します。リポジトリーツールは、クライアントが検証できるメタデータと署名を公開します。正確な役割分担は異なり、upstream プロジェクト自身がパッケージを公開する場合も、ディストリビューションがソースから独自にビルドする場合もあります。
ディストリビューションのパッケージ保守者が一般に担当する作業はどれですか?
一般的なネイティブパッケージ形式
広く使われるネイティブ形式には次の二つがあります。
.deb: Debian と、Ubuntu や Linux Mint を含む派生ディストリビューションで使用.rpm: Fedora、Red Hat Enterprise Linux、多くの関連ディストリビューションで使用
ほかのネイティブ形式やディストリビューション横断形式もあります。ファイル名の拡張子が一致するだけでは互換性を保証できません。パッケージのアーキテクチャ、ディストリビューションのリリース、ライブラリのバージョン、ポリシー、署名、依存関係も適合する必要があります。
Debian と Ubuntu が使うネイティブパッケージ形式はどれですか?
管理された配布が重要な理由
パッケージマネージャーはインストール済み状態を記録し、パッケージ間の変更を調整します。信頼されたディストリビューションリポジトリからインストールすれば、通常、一貫した依存関係の解決、署名検証、セキュリティ更新、きれいな削除を利用できます。手動でコピーしたバイナリやソースからのインストールが適切な場合もありますが、自動的にこの管理ライフサイクルへ入るわけではありません。
信頼性は、それでもリポジトリ設定と署名鍵に依存します。暗号学的に有効なパッケージから分かるのは、信頼された鍵との関連であり、任意のサードパーティーソフトウェアが安全または適切であることではありません。可能ならディストリビューションのリポジトリを優先し、外部情報源へインストール権限を与える前に評価してください。
信頼されたパッケージリポジトリを通じてインストールする利点の一つは何ですか?
RPM でパッケージを管理するラボでパッケージのメタデータと整合性を調べるか、ソースコードからソフトウェアをビルドするラボでソースワークフローと管理されたパッケージを比較してください。
レッスン完了
ソフトウェア配布 を完了しました
Linux ソフトウェア配布の主要な構成要素を識別できるようになりました。
パッケージのペイロードファイルとメタデータを分ける。
upstream の開発とディストリビューションの統合作業を区別する。
.debと.rpmをそれぞれのディストリビューション系列に関連付ける。ファイル名の拡張子だけでなく、互換性と信頼性を評価する。