---
title: Linuxのパッケージ管理とアップデート基礎知識
tags: 
author: [Go Nishimoto](https://www.docswell.com/user/go_nishimoto)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PERMLYY479.jpg?width=480
description: Linuxのパッケージ管理とアップデート基礎知識 by Go Nishimoto
published: May 02, 25
canonical: https://www.docswell.com/s/go_nishimoto/ZEXDLQ-2025-05-02-002917
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PERMLYY479.jpg)

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


# Page. 2

![Page Image](https://bcdn.docswell.com/page/P7XVWGGZJX.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/37KQV44V7D.jpg)

主なディストリビューションのパッケージ管理
ディストリビューション
分類（拡張子）
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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ3PMLDQ75.jpg)

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


# Page. 5

![Page Image](https://bcdn.docswell.com/page/8JDL6NPW7G.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VEP2Y5NXE8.jpg)

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


# Page. 7

![Page Image](https://bcdn.docswell.com/page/27VDGPK37Q.jpg)

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


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5JGY8PQYJL.jpg)

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


# Page. 9

![Page Image](https://bcdn.docswell.com/page/47QM92K6EP.jpg)

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


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KE4VXLPM71.jpg)

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


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L713NL9YEG.jpg)

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


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G7WP4VQ1E2.jpg)

主要な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
有効になっているリポジトリ一覧を表示します。
指定したリポジトリを恒久的に有効化します。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JZK24WXJ3.jpg)

主要な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
指定したパッケージをアップデート対象から除外します。
除外設定を無効化してアップデートします。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YE6QV3GPEV.jpg)

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プラグインの設定ディレクトリ、プラグインの動作を設定


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GE5RDLVPJ4.jpg)

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


# Page. 16

![Page Image](https://bcdn.docswell.com/page/972D8L3Z7R.jpg)

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


# Page. 17

![Page Image](https://bcdn.docswell.com/page/DJY26Q1NJM.jpg)

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


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V7N8ZK2VE8.jpg)

主な外部リポジトリ（公式、サードパーティ、特化型）
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のようにサービスごとの公式リポジトリ（サードパーティ
リポジトリ）から取得しなければならないパッケージも存在します。これらのリポジトリは、特定のアプリケーションに特化した最新のパッケ
ージを提供しています。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YJ9KZV1VJ3.jpg)

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


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GJ8R1P447D.jpg)

リポジトリ管理コマンド
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 &lt;repository-name&gt;
リポジトリの無効化:
sudo dnf config-manager --set-disabled &lt;repository-name&gt;
通常、パッケージ管理はdnfコマンドにオプションを加えて実行するシンプルなものですが、サードパーティリポジトリからパッケージを取得す
る場合は、まずリポジトリを追加し、メタデータを更新してからパッケージをインストールする必要があります。取得元のリポジトリによりイ
ンストール方法が異なることがあります。


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LJLKQ16V7R.jpg)

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


# Page. 22

![Page Image](https://bcdn.docswell.com/page/47M21W5N7W.jpg)

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


# Page. 23

![Page Image](https://bcdn.docswell.com/page/P7RMLY34J9.jpg)

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


# Page. 24

![Page Image](https://bcdn.docswell.com/page/PJXVWG4ZEX.jpg)

主要なディストリビューション
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が後継として採用されることが増えてきました
。ディストリビューションの選択は、サポート期間、安定性、必要なパッケージの対応状況などを考慮して行われます。


# Page. 25

![Page Image](https://bcdn.docswell.com/page/3JKQV4ZVJD.jpg)

ディストリビューションとカーネルバージョン
リリースバージョン
初期カーネルバージョン
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」を指す


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LE3PMLXQJ5.jpg)

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


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8EDL6N2WJG.jpg)

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


# Page. 28

![Page Image](https://bcdn.docswell.com/page/V7P2Y51X78.jpg)

ネットワークの問題（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


# Page. 29

![Page Image](https://bcdn.docswell.com/page/2JVDGPY3JQ.jpg)

ネットワークの問題（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


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5EGY8P9YEL.jpg)

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


# Page. 31

![Page Image](https://bcdn.docswell.com/page/4JQM92W67P.jpg)

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


# Page. 32

![Page Image](https://bcdn.docswell.com/page/K74VXLKMJ1.jpg)

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


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJ13NLXY7G.jpg)

ディストリビューションごとのバージョン上限
パッケージ
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など


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GJWP4VN172.jpg)

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


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4EZK243XE3.jpg)

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


# Page. 36

![Page Image](https://bcdn.docswell.com/page/Y76QV3XP7V.jpg)

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


