Linuxパッケージ管理の基本|apt・dnfでインストール・更新・削除する方法

  • URLをコピーしました!

ここまでのLinux中級では、 プロセス・サービス・ログなど、 Linuxサーバを運用するための基本操作を学習してきました。

では、Linuxへ nginxやApache、Gitなど新しいソフトウェアを追加したい 場合はどうすればよいのでしょうか。

nginxをLinuxへインストールしたい。
インストール済みソフトウェアを更新したい。
不要になったパッケージを削除したい。

Linuxでは、このようなソフトウェアの導入・更新・削除を パッケージ管理という仕組みで行います。

🐧 LINUX INTERMEDIATE

この記事はLinux中級講座の一部です。 Linuxのパッケージ・リポジトリ・依存関係を理解し、 apt・dnfによる基本的なパッケージ管理を学習します。

Linux中級講座を見る →
LESSON GOAL この記事のゴール

Linuxのパッケージ・リポジトリ・依存関係の仕組みを理解し、 aptdnfを使って ソフトウェアを検索・インストール・更新・削除できる状態を目指します。

目次

Linuxの「パッケージ」とは?

Linuxでソフトウェアを配布するとき、 プログラム本体だけを単独で配るのではなく、 必要なファイルや情報をまとめた パッケージという単位で管理することがあります。

PACKAGE nginx
プログラム本体
設定ファイル
依存情報
バージョン情報

つまり、 パッケージはLinuxへソフトウェアを導入するためのまとまり と考えると分かりやすいです。

パッケージマネージャとは?

パッケージを1つずつ手作業でダウンロードして インストールするのは大変です。

そこでLinuxでは、 パッケージマネージャを利用します。

USER apt install nginx
PACKAGE MANAGER apt
INSTALL nginx

パッケージマネージャは、 ソフトウェアの取得・インストール・更新・削除などを まとめて管理してくれます。

Linuxによって使うパッケージマネージャが違う

Linuxでは、 ディストリビューションによって 利用するパッケージ管理コマンドが異なります。

DEBIAN FAMILY Ubuntu / Debian apt
RHEL FAMILY RHEL / Rocky Linux / AlmaLinux dnf

初学者のうちは、

Ubuntu / Debian → apt RHEL系 → dnf

と覚えておけば十分です。

リポジトリとは?

では、aptやdnfは どこからパッケージを取得しているのでしょうか。

そこで登場するのが リポジトリ(repository)です。

LINUX apt / dnf
REPOSITORY Package Repository
nginx
git
curl
httpd

リポジトリとは、 パッケージが集められている保管場所 のようなものです。

aptやdnfはリポジトリからパッケージを取得する

一般的なLinuxでは、 設定されているリポジトリを参照して 必要なパッケージを取得・インストールします。

依存関係とは?

ソフトウェアは、 単独ですべての機能を持っているとは限りません。

別のライブラリやパッケージを必要とする場合があります。 これを 依存関係(dependency) と呼びます。

PACKAGE Application A
↓ 必要
Library A
Library B
Package C

パッケージマネージャを利用すると、 必要な依存パッケージも確認しながら インストールできます。

パッケージマネージャの大きな役割が依存関係の管理

手動で必要なライブラリを1つずつ探すのではなく、 パッケージマネージャが必要な依存関係を解決してくれます。

apt update:パッケージ情報を更新する

UbuntuやDebian系Linuxでは、 aptを利用します。

最初に覚えておきたいのが、 apt updateです。

sudo apt update
Linux Terminal
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Fetched 126 kB in 1s
Reading package lists... Done

apt updateは、 リポジトリから最新のパッケージ情報を取得する 操作です。

apt updateだけではパッケージは更新されない

ここは初心者が特に混乱しやすいポイントです。

APT UPDATE 情報を更新

利用可能なパッケージや バージョンの一覧を更新する。

APT UPGRADE パッケージを更新

インストール済みパッケージを 新しいバージョンへ更新する。

update = 一覧情報を更新 upgrade = 実際のパッケージを更新

apt search:パッケージを検索する

インストールしたいパッケージを検索するときは、 apt searchを利用できます。

apt search nginx
$ apt search nginx
Sorting... Done
Full Text Search... Done

nginx/noble 1.24.0 amd64
  small, powerful, scalable web/proxy server

nginx-core/noble 1.24.0 amd64
  nginx web/proxy server - core version

apt install:パッケージをインストールする

パッケージをインストールするときは、 apt installを利用します。

sudo apt install nginx
$ sudo apt install nginx
Reading package lists... Done
Building dependency tree... Done

The following NEW packages will be installed:
  nginx nginx-common

Need to get 620 kB of archives.
After this operation, 1,800 kB of additional disk space will be used.

Do you want to continue? [Y/n]

インストール前には、 新しく導入されるパッケージや 必要なディスク容量などが表示されます。

内容を確認してからYを入力する

本番サーバでは、何がインストール・変更されるのかを 確認してから実行する習慣が重要です。

インストール済みか確認する

aptでは、 次のようにパッケージの状態を確認できます。

apt list --installed | grep nginx
$ apt list --installed | grep nginx
nginx/noble,now 1.24.0 amd64 [installed]
nginx-common/noble,now 1.24.0 all [installed]

また、 パッケージの詳細情報を確認したい場合は、

apt show nginx

なども利用できます。

apt remove:パッケージを削除する

不要になったパッケージを削除するときは、 apt removeを利用します。

sudo apt remove nginx

これにより、 nginxパッケージを削除できます。

removeとpurgeの違い

aptでは、 removeのほかに purgeがあります。

REMOVE パッケージを削除 apt remove nginx

パッケージ本体を削除する。 一部の設定ファイルが残る場合があります。

PURGE 設定ファイルも含め削除 apt purge nginx

パッケージと関連する設定ファイルも 削除したい場合に利用します。

CAUTION purgeは設定ファイルも削除するため注意

後から設定を再利用したい場合などは、 必要なファイルを確認してから実行しましょう。

apt autoremove:不要になった依存パッケージを削除する

パッケージを削除したあと、 そのパッケージのためだけにインストールされた 依存パッケージが残ることがあります。

そのような不要パッケージを整理するために、

sudo apt autoremove

を利用できます。

RHEL系Linuxではdnfを利用する

RHEL・Rocky Linux・AlmaLinuxなどでは、 dnfが代表的なパッケージマネージャです。

基本的な考え方はaptと同じです。

目的 dnf
検索 dnf search nginx
インストール sudo dnf install nginx
更新 sudo dnf upgrade
削除 sudo dnf remove nginx
インストール済み確認 dnf list installed

aptとdnfを対応させて覚えよう

操作 apt dnf
検索 apt search nginx dnf search nginx
インストール apt install nginx dnf install nginx
更新 apt upgrade dnf upgrade
削除 apt remove nginx dnf remove nginx
コマンド名は違っても考え方は同じ

「リポジトリから検索 → インストール → 更新 → 削除」 というパッケージ管理の基本構造は共通しています。

パッケージをインストールしたらサービス管理につながる

ここで、前の記事までの内容とつなげてみましょう。

たとえばnginxをインストールした場合、 その後にsystemctlでサービス状態を確認することがあります。

01 INSTALL apt install nginx
02 SERVICE systemctl status nginx
03 LOG journalctl -u nginx

このように、 これまで学習してきたLinux中級の内容は 別々の知識ではなくつながっています。

パッケージ更新はセキュリティ面でも重要

パッケージには、 機能改善だけでなく 脆弱性修正が含まれることがあります。

そのためLinuxサーバの運用では、 パッケージ更新も重要な管理項目です。

OLD Package v1.0 脆弱性あり
→ update →
NEW Package v1.1 Security Fix
IMPORTANT 本番環境では「とりあえず全部更新」しない

パッケージ更新によって挙動や依存関係が変化する可能性があります。 変更内容・影響・メンテナンス手順を確認して適用することが重要です。

パッケージを導入するときの基本的な流れ

STEP 01 パッケージを検索 apt search nginx
STEP 02 情報を確認 apt show nginx
STEP 03 インストール sudo apt install nginx
STEP 04 導入確認 apt list --installed
STEP 05 サービス確認 systemctl status nginx

ここで実際に試してみよう:パッケージ管理シミュレーター

疑似Ubuntu環境で、 nginxパッケージを 検索 → インストール → 確認 → 削除 してみましょう。

INTERACTIVE LAB

APT Package Manager

NOT INSTALLED
PACKAGE nginx
VERSION 1.24.0
STATUS NOT INSTALLED
user@ubuntu
APT package management practice
まず「apt search nginx」を実行してパッケージを探してみましょう。
user@ubuntu:~$
START

nginxパッケージを検索してみましょう

apt search → apt show → apt install の順に試すと、 パッケージ導入の流れを理解できます。

理解度チェック:apt updateとapt upgradeの違い

SCENARIO リポジトリに新しいパッケージバージョンが公開されました。

まず、利用可能な最新パッケージ情報を取得したい場合、 どのコマンドを実行すればよいでしょうか?

回答を選択してください

「情報の更新」と「実際のパッケージ更新」を区別しましょう。

初心者が間違えやすいポイント

① apt updateでソフトウェア自体が更新されたと思う

apt updateは、 利用可能なパッケージ情報を更新する操作です。

apt update パッケージ一覧の情報を更新

② apt removeとapt purgeを同じだと思う

設定ファイルも含めて削除するかどうかという違いがあります。

③ aptとdnfを同じ環境で使おうとする

利用しているLinuxディストリビューションによって、 基本的に使用するパッケージマネージャが異なります。

Ubuntu apt
Rocky Linux dnf

確認問題:Linuxパッケージ管理の基本を確認しよう

QUESTION 01

Linuxのリポジトリとは何ですか?

正解:B

パッケージマネージャは設定されたリポジトリから パッケージ情報やソフトウェアを取得します。

QUESTION 02

Ubuntuでnginxをインストールする代表的なコマンドはどれですか?

正解:A

Ubuntu・Debian系ではaptを使って パッケージをインストールできます。

QUESTION 03

apt updateの説明として正しいものはどれですか?

正解:C

apt updateはパッケージ一覧情報を更新します。 実際のインストール済みパッケージ更新とは異なります。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

Linuxではソフトウェアを パッケージという単位で管理する

02

パッケージマネージャは リポジトリからパッケージを取得し、 依存関係も管理する

03

Ubuntu・Debian系ではapt、 RHEL系ではdnfが代表的

04

apt updateは情報更新、 apt upgradeインストール済みパッケージの更新

05

パッケージを変更するときは、 依存関係・変更内容・サービスへの影響を確認する ことが重要

パッケージを増やすとディスク容量も消費する

ソフトウェアをインストールすると、 当然ながらLinuxサーバの ディスク領域を使用します。

PACKAGE nginx
PACKAGE MySQL
LOG Logs
DISK 使用量増加

Linuxサーバを運用していると、 「ディスク容量が足りない」 という問題も発生します。

そこで次に覚えたいのが、 dfduです。

NEXT LESSON

次は「df・duでディスク使用量を確認する」を学びましょう

パッケージ管理を理解したら、 次はLinuxサーバの ディスク容量を確認する方法を学習します。

次の記事では、 dfでファイルシステム全体の空き容量を確認し、 duどのディレクトリやファイルが容量を使っているのか を調査します。

df・duでディスク使用量を確認する
LINUX INTERMEDIATE

Linux中級講座の一覧へ戻る

Linux中級の学習順を確認したい場合は、 講座一覧へ戻りましょう。

← Linux中級講座へ戻る
目次