Linuxのパッケージ管理とアップデート基礎知識

1.1K Views

May 02, 25

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Linuxのパッケージ管理とア ップデート基礎知識 Linuxのパッケージ管理に関連する用語や仕組みを整理しました。 主にRedHat系(Red Hat Enterprise Linux)についてまとめています。 パッケージ管理はLinuxシステムの維持に欠かせない重要な知識です。 @go_nishimoto

2.

パッケージとは何か パッケージの定義 パッケージとは、ソフトウェアをインストールするための必要なファイル(配布形態)です。プログラム本体、ライブラリ、設定 ファイル、ドキュメント、メタデータなどが含まれています。 パッケージの役割 パッケージはソフトウェアのインストール、更新、削除を簡単に行えるようにするための仕組みです。依存関係の管理や競合の解 決も行います。 パッケージの種類 ディストリビューションによって、RPM(RedHat系)、DEB(Debian系)など異なるパッケージ形式が使われています。それぞ れに専用の管理ツールが存在します。

3.

主なディストリビューションのパッケージ管理 ディストリビューション 分類(拡張子) RedHat,CentOS,AlmaLinux RPM(.rpm) Debian,Ubuntu DEB(.deb) FreeBSD Ports Collection Binary Packages(.txz,.tbz) Solaris SVR4 IPS(.pkg,.p5p) 管理コマンド rpm yum dnf dpkg apt Pkg Portsnap portmaster portupgrade pkgadd pkgrm pkginfo pkg

4.

Linuxで利用される主なパッケージ Webサーバ データベース nginx、Apache HTTP Serverなど、Webサイトを提供す MariaDB、MySQL、PostgreSQLなど、データを効率的に るためのサーバソフトウェア 保存・検索するためのシステム 開発ツール セキュリティツール gcc、git、pythonなど、ソフトウェア開発に必要なコンパ firewalld、SELinux、OpenSSLなど、システムを保護する イラやバージョン管理ツール ためのセキュリティ関連ツール

5.

RPMパッケージの構成要素 プログラム本体 ライブラリ 設定ファイル コンパイル済みの実行ファイル、 プログラムが動作するために必要 設定内容が記載されたテキストフ 直接実行可能なバイナリファイル となる再利用可能な共通機能 ァイル、インストールスクリプト ドキュメント メタデータ READMEなどのパッケージに関す パッケージ名、バージョン、依存 る情報 関係などの情報

6.

主要なライブラリの例 glibc (GNU C Library) libcurl zlib C言語の標準ライブラリで、メモリ URL転送ライブラリで、HTTP、 データ圧縮用のライブラリで、効率 管理、入出力操作、文字列処理など FTP、SMTPなど様々なプロトコル 的なデータ圧縮・展開機能を提供し 基本的な機能を提供します。ほぼす でのデータ転送機能を提供します。 ます。ファイル圧縮やネットワーク べてのLinuxプログラムがこのライ 多くのネットワークアプリケーショ 通信の効率化に広く利用されていま ブラリに依存しています。 ンで使用されています。 す。

7.

パッケージ管理の重要ポイント 管理コマンドの理解 適切なコマンドと設定ファイルの知識 リポジトリの設定 信頼できるパッケージ取得先の設定 依存関係の管理 パッケージ間の依存と競合の解決 パッケージ管理を効果的に行うには、これらの要素を理解することが重要です。管理コマンドや設定ファイルの知識、適切なリポジト リの選択、そして依存関係や競合関係の管理が基本となります。特にエンタープライズ環境では、セキュリティと安定性を考慮したパ ッケージ管理が求められます。

8.

RedHat系パッケージの操作方法 rpmコマンド yumコマンド dnfコマンド パッケージを個別に操作する基本コマン リポジトリからパッケージを取得し、依 yumの後継で、パフォーマンス向上やメ ドです。依存関係や競合関係の解決は手 存関係や競合関係を自動で解決します。 モリ使用量の削減など改善が加えられて 動で行う必要があります。直接ファイル バックグラウンドでrpmコマンドを使用 います。依存関係や競合関係の管理やト を指定してインストールする場合に使用 しています。既に開発が終了しており、 ランザクション処理がより効率的になっ します。 現在はdnfに置き換えられています。 ています。 例: rpm -ivh package.rpm 例: yum install package 例: dnf install package

9.

依存関係と競合関係の違い 依存関係(Dependencies) パッケージが正常に動作するために必要な他のパッケージ 競合関係(Conflicts) 2つのパッケージが同じファイルやリソースを変更しようとする場合に発生する問題 自動解決 yumやdnfを使用する場合、基本的には管理者が依存関係や競合関係を考慮する必要はありません

10.

dnfの役割を理解する Linux(RedHat系)のパッケージ管理にはdnf(またはyum)を利用することが一般的です。dnfによるパッケージ管理にはコマンドに よる操作方法と設定ファイルによる定義の理解が必要です。 コマンドによる操作 設定ファイルによる定義 リポジトリとの連携 dnfコマンドを使用して、パッケージのイ dnfの動作は設定ファイルによって制御さ dnfはリポジトリからパッケージ情報を取 ンストール、更新、削除などの操作を行い れます。リポジトリの設定やプロキシ設定 得し、最適なパッケージを選択してインス ます。様々なオプションを組み合わせて柔 、キャッシュの管理などを定義できます。 トールします。複数のリポジトリを管理す 軟な管理が可能です。 ることも可能です。

11.

主要なdnfコマンドとオプション(1) dnf install dnf update パッケージをインストールします。依存関係も自動的に解 インストール済みパッケージをアップデートします。 決されます。 dnf upgrade dnf remove インストール済みパッケージをアップデートし、旧パッケ インストール済みパッケージを削除します。 ージを自動削除します。 dnf reinstall dnf downgrade インストール済みパッケージを再インストールします。 パッケージをダウングレードします。 dnf distro-sync dnf install ./package.rpm システムを最新バージョンに同期します。 ローカルのRPMファイルを指定してインストールします。

12.

主要なdnfコマンドとオプション(2) dnf info dnf list installed パッケージの詳細情報を表示します。 インストール済みパッケージを表示します。 dnf check-update dnf repoquery --requires アップデート可能なパッケージ一覧を表示します。 パッケージの依存関係を表示します。 dnf search dnf repolist パッケージを検索します。 リポジトリ一覧を表示します。 dnf repolist enabled dnf config-manager --set-enabled 有効になっているリポジトリ一覧を表示します。 指定したリポジトリを恒久的に有効化します。

13.

主要なdnfコマンドとオプション(3) dnf config-manager --set-disabled dnf config-manager --add-repo 指定したリポジトリを恒久的に無効化します。 リポジトリURLを追加します。 dnf --enablerepo dnf --disablerepo 特定のリポジトリを一時的に有効化します。 特定のリポジトリを一時的に無効化します。 dnf clean all dnf update --skip-broken キャッシュやダウンロード済みパッケージを削除します。 依存関係エラーをスキップしてアップデートします。 dnf update --exclude dnf update --disableexcludes 指定したパッケージをアップデート対象から除外します。 除外設定を無効化してアップデートします。

14.

dnfに関する設定ファイル yumのファイル名 dnfのファイル名 説明 /etc/yum.conf /etc/dnf/dnf.conf メインの設定ファイル、リポジトリやキャッシュ、 GPGチェックの設定など基本的な設定 /etc/yum.repos.d/*.repo /etc/yum.repos.d/*.repo リポジトリ情報が記載されているファイル群、 リポジトリごとに個別の.repoファイルがある /etc/yum/vars/* /etc/dnf/vars/* 変数の定義ディレクトリ、releaseverやbasearchなどの変数が定義 /var/log/yum.log /var/log/dnf.log パッケージインストールやアップデートのログが保存されるファイル /var/cache/yum/* /var/cache/dnf/* パッケージのキャッシュやメタデータが保存されるディレクトリ N/A /etc/dnf/modules.d/*.module dnfでモジュールストリームを管理するためのファイル、 特定のバージョンや機能セットを選択してインストールする際に使用 N/A /etc/dnf/plugins/ dnfプラグインの設定ディレクトリ、プラグインの動作を設定

15.

dnf.confの主な設定項目(デフォルト定義) オプション cachedir keepcache debuglevel logfile gpgcheck plugins fastestmirror exclude includepkgs timeout proxy proxy_username proxy_password sslverify metadata_expire 設定内容 パッケージのキャッシュを保存するディレクトリ ダウンロード後のキャッシュ保持の有無 デバッグメッセージの出力レベル ログの出力先 インストール時のGPGキーのチェック有無 プラグインの使用許可の有無 使用可能なミラーの中で最も速いものを選択するか 更新やインストールから除外するパッケージのパターンを指定 インストールまたは更新するパッケージを限定するためのリスト リポジトリ接続のタイムアウト時間 プロキシサーバーのアドレス プロキシサーバーの認証情報(ユーザ名) プロキシサーバーの認証情報(パスワード) SSL証明書の検証を行うか リポジトリのメタデータのキャッシュ有効期間

16.

dnf.confの主な設定項目(追加定義) オプション exactarch obsoletes installonly_limit deltarpm assumeyes color 設定内容 アーキテクチャに一致するパッケージのみのインストール有無 パッケージ更新時の旧パッケージの置き換え有無 インストール済みカーネルのバージョン保持数 deltarpmの使用の有無 dnfコマンド実行時にすべての質問に自動的に「はい」と答えるか コマンドの出力に色を付けるか

17.

dnfとリポジトリの関係性 リポジトリとは各種パッケージを保存しておくためのサーバ(保存庫)です。インターネット上のリポジトリを外部リポジトリ、社内 ネットワーク上のリポジトリを内部リポジトリと呼びます。 リポジトリの役割 外部リポジトリ パッケージの保存と配布を行い、システム管理者がソフトウェ インターネット上に公開されているリポジトリで、公式リポジ アを効率的に管理できるようにします。 トリとサードパーティリポジトリがあります。 内部リポジトリ 組織内のネットワークに設置されたリポジトリで、セキュリ リポジトリ設定の主なオプション オプション name baseurl enablerepo gpgcheck gpgkey ティやネットワーク帯域の効率化のために利用されます。 設定内容 リポジトリ名(必須) リポジトリの保存先URL(必須) リポジトリの有効化or無効化の設定 GPGのチェックを有効化or無効化の設定。 使用する公開鍵のURL(またはファイル名) [main]セクションの他に[repository]セクションを作成し、リポジトリ関連の情報を定義することも可能でが、リポジトリごとの設定は /etc/dnf.confに直接記載せずに、/etc/dnf.repos.d/*.repoに定義することが推奨されます。

18.

主な外部リポジトリ(公式、サードパーティ、特化型) BaseOS AppStream Red Hat Enterprise Linuxの基本的なOS機能を提供する公式リ モジュール化されたアプリケーションや開発ツールを提供する ポジトリです。カーネルやシステムライブラリなどのコアパッ 公式リポジトリです。異なるバージョンやエディションの選択 ケージが含まれています。 が可能で、柔軟な環境構築ができます。 EPEL (Extra Packages for Enterprise Linux) Remi Repository Fedoraプロジェクトの有志によるRedHat系ディストリビューシ PHPやその他の開発ツールの最新バージョンを提供するサード ョン向けのサードパーティリポジトリです。公式リポジトリにな パーティリポジトリです。PHP関連のパッケージが豊富に揃っ い多数の追加パッケージを提供しています。 ています。 Zabbix Docker Zabbix監視ソフトウェアの公式サードパーティリポジトリです Dockerの公式サードパーティリポジトリです。Dockerエンジ 。監視ツールの最新バージョンや関連パッケージを提供してい ンやコンテナ関連のツールを提供しています。 ます。 基本的なパッケージはRHELの公式リポジトリから取得可能ですが、ZabbixやDockerのようにサービスごとの公式リポジトリ(サードパーティ リポジトリ)から取得しなければならないパッケージも存在します。これらのリポジトリは、特定のアプリケーションに特化した最新のパッケ ージを提供しています。

19.

パッケージ取得元の優先順位 ①キャッシュの利用 ④パッケージのバージョン 既にキャッシュされたパッケージがあれば、ネットワーク越しのリ 同一パッケージの複数バージョンが存在する場合、最新バージョン ポジトリから再ダウンロードせずにキャッシュを利用します。キャ のパッケージが優先されます。特定のバージョンを指定しない限り ッシュがない場合、リポジトリからパッケージがダウンロードされ 、常に最新のものが選択されます。 ます。 ②リポジトリの有効性 ⑤コストオプション リポジトリが有効でなければ使用されません。無効なリポジトリは costオプションが設定されている場合、低コストのリポジトリが優 パッケージ選択に影響しません。dnfコマンドで有効・無効を切り 先されます。dnfではcostオプションを使ってリポジトリ選択に影 替えることができます。 響を与えることができます。 ③リポジトリの優先度 ⑥リポジトリファイルの読み込み順 yumの場合、/etc/dnf.repos.d/*.repoの「priority」オプションが設 リポジトリファイルの読み込み順序やincludeされた順番も影響し 定されている場合、優先度が小さいリポジトリが選択されます。 ますが、通常はリポジトリの優先度やその他の設定がより重要です dnfでは「dnf-plugin-priorities」パッケージをインストールするこ 。 とで使用可能になります。

20.

リポジトリ管理コマンド RHEL7以前 リポジトリの追加 yum-config-managerコマンドを使用します。このコマンドを利用す るには、yum-utilsパッケージの追加インストールが必要です。 インストール方法: sudo dnf install yum-utils RHEL8以降 メタデータの更新 sudo dnf makecache dnf config-managerコマンドを使用します。dnfの一部として提供さ れるためパッケージの追加インストールは不要です。 リポジトリの有効化: パッケージのインストール sudo dnf install docker-ce docker-ce-cli containerd.io sudo dnf config-manager --set-enabled <repository-name> リポジトリの無効化: sudo dnf config-manager --set-disabled <repository-name> 通常、パッケージ管理はdnfコマンドにオプションを加えて実行するシンプルなものですが、サードパーティリポジトリからパッケージを取得す る場合は、まずリポジトリを追加し、メタデータを更新してからパッケージをインストールする必要があります。取得元のリポジトリによりイ ンストール方法が異なることがあります。

21.

リポジトリとGPG 信頼性の保証 パッケージが公式リポジトリから提供されているか評価します。第三者による改ざんがないかを確認します。 整合性の確認 パッケージが配布中に変更されたり、改ざんや破損がないかを検証します。 セキュリティの強化 パッケージがマルウェアやウイルスに感染していないかをチェックします。 GPG(GNU Privacy Guard)は、リポジトリからダウンロードしたパッケージの信頼性と整合性を保証するための暗号化技術です。デ ジタル署名を用いて、パッケージの出所と内容を確認します。通常、リポジトリを設定する際には、GPG公開鍵も同時にインポートし てパッケージの署名を検証します。

22.

GPG設定の基本 GPG設定の場所 gpgcheck gpgkey GPGの設定は、各リポジトリの設定ファ GPG署名の検証を有効にするか、無効に 使用する公開鍵のURLまたはファイル名 イル(通常は/etc/dnf.repos.d/*.repo) するかの設定です。セキュリティを確保 を指定します。この鍵を使ってパッケー 内で定義されます。主に以下の2つの設定 するためには有効にすることが推奨され ジの署名を検証します。 項目があります。 ます。 設定例: gpgcheck=1 設定例: gpgkey=https://example.com/RPM- GPG-KEY

23.

関連用語のまとめ 用語 意味 ディストリビューション OSの配布版で、基本的なOSとその関連ソフトウェアを含む一式 リリースバージョン ディストリビューションの特定のバージョン、新機能や改善点を含むリリースのバージョン番号 カーネル OSの中核部分で、ハードウェアとソフトウェアのリソースを管理する基本的な部分 モジュール カーネルやOSの機能を拡張するための部品(例:ハードウェアのドライバや追加機能など) ライブラリ 各種プログラムが共通して利用するための機能やコードの集まり パッケージ インストール可能なソフトウェアの単位でプログラムやその依存関係を含む リポジトリ パッケージを保存し配布するための場所、リポジトリからソフトウェアをダウンロードする レポジトリファイル リポジトリの設定情報を含むファイル、どのリポジトリを使用するかを定義する メタデータ リポジトリ内のパッケージの情報や依存関係などを含むデータ、パッケージの検索や管理に使用される GPGキー ソフトウェアのパッケージに対してデジタル署名を行うための公開鍵、パッケージの信頼性と整合性を 確認する サードパーティリポジトリ 公式リポジトリ以外の、外部の開発者や団体が提供するリポジトリ、公式のサポートがないことが多い リポジトリURL リポジトリへのアクセス先のURL、リポジトリの場所を指定する パッケージマネージャ ソフトウェアのインストール、更新、削除を管理するツール(例:yum、dnf) AppStream RHSCL RHEL 8以降で導入されたソフトウェア配布の仕組み、複数のバージョンを提供し、アプリケーションの 選択と管理を容易にする Red Hat Software Collectionsの略、RHEL向けの追加ソフトウェアパッケージ群で、より新しいバー ジョンのアプリケーションを提供

24.

主要なディストリビューション RHEL (Red Hat Enterprise Linux) CentOS AlmaLinux 商用サーバー向けの企業向けディストリビュ RHELの無償クローンで、商用サポートがなく CentOSの後継として位置づけられるRHELク ーションです。安定性とセキュリティに重点 、コミュニティ主導のディストリビューショ ローンです。商用サポートがなく、コミュニ を置き、長期サポートを提供しています。有 ンです。以前は広く使われていましたが、現 ティ主導で開発されています。企業での採用 償のサブスクリプションモデルで提供されて 在は開発方針が変更されています。 が増えています。 Rocky Linux Amazon Linux Ubuntu CentOSの後継として設立された、RHELクロ AWS (Amazon Web Services) に最適化され Debianを基にしたユーザーフレンドリーなデ ーンです。商用サポートなし、コミュニティ たAmazon提供のディストリビューションで ィストリビューションです。デスクトップか 主導で開発されています。AlmaLinuxと同様 す。クラウド環境向けに最適化されており、 らサーバーまで広く利用されており、初心者 に企業環境での採用が増えています。 AWSサービスとの統合が強化されています。 にも使いやすい設計になっています。 います。 以前はCentOSが採用されていることも多かったですが、最近はサポート期間などの都合上、AlmaLinuxやRocky Linuxが後継として採用されることが増えてきました 。ディストリビューションの選択は、サポート期間、安定性、必要なパッケージの対応状況などを考慮して行われます。

25.

ディストリビューションとカーネルバージョン リリースバージョン 初期カーネルバージョン RHEL 7.x RHEL 8.x RHEL 9.x 3.10系 4.18系 5.14系 アップデート後 カーネルバージョン 3.10 系 5.4~5.14系 5.14 系 OSの中核を成すソフトウェアが「カーネル」です。ディストリビューションは、カーネルを含むOS全体のパッケージであり、通常、特定のリ リースバージョンごとに指定されたカーネルバージョンが含まれています。一つのリリースバージョンに対して適用されるカーネルバージョン は複数存在します。 例えば、ファイル名が「kernel-4.18.0-425.3.1.el8.x86_64.rpm」の場合、各部分の意味は上記のようになります。基本的には、カーネルに限ら ず、他のパッケージ名もこのような構造でファイル名が決まります。これにより、パッケージの詳細と適用対象が明示されます。 パッケージ名の意味 パッケージ名 バージョン番号 「カーネル」パッケージであることを示す カーネルのメジャー、マイナー、パッチレベルを示す リリース番号 アーキテクチャ ビルド番号やリビジョンを含むもの 「64ビットのCPU」を指す

26.

モジュールとライブラリの違い モジュール ライブラリ Linuxカーネルやソフトウェアの機能を追加・拡張するための部 アプリケーションが実行時に利用する共通のコードや関数の集合 品です。たとえば、カーネルモジュールは、ハードウェアサポー です。例えば、C言語の標準ライブラリは、プログラムが基本的 トや新しいファイルシステム機能を提供するためにカーネルに動 な操作を行うための関数群を提供します。ライブラリは、アプリ 的に組み込まれます。モジュールは、特定の機能やサービスを分 ケーションが直接呼び出して利用し、コードの再利用を促進しま けて管理し、必要に応じて読み込むことができます。 す。 モジュールはシステムやカーネルの機能を拡張する部品で、ライブラリはプログラムの機能を提供するコードの集まりです。両者は異 なる役割を持ちますが、どちらもシステムの機能を拡張するために重要です。

27.

dnfコマンドが失敗する原因 ネットワークの問題 SELinuxの設定 キャッシュの問題 リポジトリへの通信障害やDNS解決の失敗 セキュリティポリシーによるアクセス制限 破損したキャッシュデータによる障害 依存関係の問題 バージョン上限の問題 パッケージ間の依存関係が解決できない ディストリビューションの制約によるバー ジョン制限

28.

ネットワークの問題(1) リポジトリへの通信がブロックされる問題 firewalldの設定 取得元リポジトリの設定(URLやGPGキーなど)によりパッ 通常、リポジトリへの通信はHTTP(ポート80)または ケージのインストールに失敗することがあります。 HTTPS(ポート443)を使用するため、firewalldによるポー /etc/yum.repos.d/*.repoの設定内容を見直すか、リポジトリ トの開放が必要です。 を再インストールすることで解消する可能性があります。 設定例: sudo firewall-cmd --permanent --add-service=http DNSサーバへの通信がブロックされる問題 DNSポートの開放 通常、リポジトリへのアクセス設定はホスト名(ドメイン名 DNSサーバへアクセスするためのfirewalldの設定(UDPポー )で定義されるため、リポジトリへアクセスするにはDNSに ト53の開放)も必要です。 よる名前解決が必要です。DNSサーバの設定は /etc/resolv.confにより定義されます。 設定例: nameserver 8.8.8.8 設定例: sudo firewall-cmd --permanent --add-port=53/udp

29.

ネットワークの問題(2) プロキシサーバへの通信がブロックされる問題 環境変数による設定 企業環境ではプロキシサーバを経由してインターネットにア 通常の外部への通信時にはhttp_proxyやhttps_proxyなどの環 クセスすることが一般的です。dnfの設定ファイルにプロキシ 境変数で定義されたプロキシサーバを経由して通信します。 情報を追加する必要があります。 設定例(/etc/dnf.conf): [main] proxy=http://proxy.example.com:port proxy_username=your_username proxy_password=your_password 設定例: export http_proxy=http://proxy.example.com:port

30.

SELinuxの設定による問題 SELinuxのステータスを確認 する SELinuxのログを確認する SELinuxの現在の状態を確認します。 合、ログに記録されます。これを確認 必要に応じてSELinuxのポリシーを調 Enforcing(強制)モードの場合、セキ することで問題の原因を特定できます 整し、必要な操作を許可します。 ュリティポリシーが厳格に適用されま 。 す。 確認コマンド: getenforce SELinuxによるブロックが発生した場 確認コマンド: ausearch -m avc -ts recent SELinuxのポリシーを調整す る 設定例: setsebool -P httpd_can_network_connect on

31.

キャッシュの問題 キャッシュのクリア 部分的なキャッシュクリア パッケージの取得がキャッシュの問題で失敗する場合は、キ キャッシュ全体をクリアする必要がない場合、特定のキャッ ャッシュをクリアすることで問題が解決します。キャッシュ シュだけをクリアすることも可能です。 は、一時的にダウンロードしたパッケージやメタデータを保 存するために使用されますが、これが破損したり、古くなっ たりすると、パッケージ操作が正常に行えなくなることがあ ります。 コマンド例: sudo dnf clean all メタデータのみクリア: sudo dnf clean metadata パッケージのみクリア: sudo dnf clean packages

32.

パッケージの依存関係の問題 依存関係の解決 --skip-brokenオプション 通常、dnfやyumはすべての依存関係を厳密にチェックし、依 一時的な対応策として、--skip-brokenオプションを使用する 存関係の解決ができない場合にはアップデートやインストー と、依存関係の問題があるパッケージを無視して、他のパッ ルを中断します。依存関係の問題を解決するには、必要な依 ケージだけをアップデートします。 存パッケージをインストールするか、競合するパッケージを 削除する必要があります。 コマンド例: sudo dnf --skip-broken update ただし、これは根本的な解決策にはならず、システムの安定 性に影響を与える可能性があるため、推奨される場面は限定 的です。

33.

ディストリビューションごとのバージョン上限 パッケージ kernel OpenSSL PHP MySQL Python Perl Apache HTTP Server RHEL7 3.10.x 1.0.2 5.4(標準),7.x(RHSCL) 5.7 2.7 5.16 2.4.x RHEL8 4.18.x~5.14.x 1.1.1 7.x(標準),8.x(AppStream) 8 3.6 5.26 2.4.x RHEL9 5.14.x 3.x 8.x(標準) 8.x 3.9 5.32 2.4.x メジャーバージョンが複数あるパッケージ メジャーバージョンが一つのパッケージ • • 比較的頻繁に更新されるため複数のメジャーバージョンが存在す る • • たって使用される ディストリビューションのリリースバージョンによってバージョ • ディストリビューションのリリースバージョンに依存せず ン制限がある • バージョン制限を意識する必要が少ない ディストリビューションごとのバージョンの上限を意識する必要 • 例)BIND、Postfix、Squidなど一般的なパッケージ全般 がある • 比較的安定しているため同一のメジャーバージョンが長期間にわ 例)OpenSSL、PHP、MySQL、Python、Perlなど

34.

新しいバージョンのパッケージを使用する方法 サードパーティリポジトリの利用 コンテナの利用 公式リポジトリにない新しいバージョンのパッケージを提 Dockerなどのコンテナ技術を使用して、必要なバージョン 供するサードパーティリポジトリを追加します。ただし、 のパッケージを含む独立した環境を構築します。ホストシ 互換性の問題や公式サポートが受けられなくなる可能性が ステムに影響を与えずに新しいバージョンを使用できます あります。 。 AppStreamの利用 ディストリビューションのアップグレード RHEL8以降では、AppStreamを通じて特定のバージョンの システム全体を上位のディストリビューションにアップグ パッケージを選択してインストールできます。複数のバー レードします。最も根本的な解決策ですが、大きな変更を ジョンが公式にサポートされています。 伴います。

35.

サブスクリプションの設定 システムへの登録 サブスクリプションの取得 sudo subscription-manager register sudo subscription-manager attach --auto --username=<RHNユーザー名> --password=<RHNパスワード> リポジトリの有効化 リポジトリの表示 sudo subscription-manager repos --enable=<repo_id> sudo subscription-manager repos --list Red Hatのサブスクリプションを管理するには「Subscription Manager」コマンドを使います。これにより、Red Hatのシステムへ登録し、公式 リポジトリにアクセスしてセキュリティパッチやソフトウェアの更新、追加パッケージのダウンロードなどが可能になります。 サブスクリプションの重要性 セキュリティパッチの入手 テクニカルサポートの利用 最新のセキュリティパッチを入手し、 問題が発生した場合に、 システムを脆弱性から保護できます。 Red Hatのテクニカルサポートを利用できます。 バグ修正の適用 最新機能の利用 既知の問題に対する修正を適用し、 新しい機能や改善された機能を利用して、 システムの安定性を向上させます。 システムのパフォーマンスを向上させます。 適切にサブスクリプションを登録することで、セキュリティパッチやバグ修正などのパッケージをダウンロードおよびインストールできるようになります。サードパ ーティリポジトリからパッケージの取得する場合は、公式リポジトリへアクセスする必要がないため、Subscription Managerの設定は必須ではありません。

36.

まとめ パッケージ管理の基本 リポジトリの役割 ディストリビューションごとにパッケージのファイル形式や リポジトリはパッケージの取得先で公式パッケージとサード 管理コマンドが異なります。RedHat系ではRPM形式のパッ パーティパッケージがあります。 ケージをrpm、yum、dnfコマンドで管理します。 適切なリポジトリの選択と設定が重要です。 パッケージとライブラリの違い バージョン制限 パッケージは実行可能なソフトウェアで依存関係や競合関係 ディストリビューションのリリースバージョンにより利用可 の考慮が必要です。ライブラリはプログラムが動作するため 能なパッケージのバージョンに上限があります。 に必要となる再利用可能な共通機能です。 新しいバージョンが必要な場合は適切な対応が必要です。 カーネルとモジュール ネットワーク設定 カーネルはOSの中核部分でリソース管理などを担います。 ネットワークやサブスクリプトの設定に不備があると モジュールはカーネルの拡張機能で、機能追加を可能にします。 リポジトリへのアクセスが失敗します。 適切な設定が必要です。