パッケージとは、ソフトウェアの実行に必要なファイルをまとめたものです。
具体的には、以下のようなものが含まれます。
・実行ファイル
・ライブラリ
・リソース (画像・音楽ファイルなど)
・設定ファイル

「iOS でいう App Store」とか、「Windows でいう窓の社・Vector」みたいなものです。

パッケージマネージャーとは、パッケージをインストール/アンインストールするツールです

パッケージマネージャーは依存関係を解決 (インストール) する機能もあります

関連記事:Linux の基本 | |||||
---|---|---|---|---|---|
学習ロードマップ | |||||
---|---|---|---|---|---|
パッケージマネージャーの種類一覧
パッケージマネージャーには、以下の種類が存在します。
パッケージマネージャー | ディストリビューション | 下位のパッケージマネージャー |
---|---|---|
dnf (yum) | RHEL | rpm |
apt | Ubuntu/Debian | dpkg |
上位のパッケージマネージャー (dnf, apt) は、依存関係を自動で解決してくれます。
dnf と yum の違い
使用上の違いはありません。(どちらで書いても OK です。)
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/9.4_release_notes/package_management_with_yum_dnf
yum
の代わりにdnf
と入力しても、どちらも互換性のためのエイリアスなので、コマンドは期待通りに動作します。
内部や運用上の違いは以下のとおりです。(参考)
- メモリ消費の低減
- ドキュメントの整備
- (廃止されている) Python 2 依存からの脱却
ということで、dnf を推奨します。
dnf/yum コマンドの使い方
ここからは dnf コマンドを紹介します。(dnf を yum に置き換えても動作します)
install パッケージをインストール
今回は nginx (Web サーバー) パッケージをインストールしてみます。
====================================================================================================================================================================
Package Architecture Version Repository Size
====================================================================================================================================================================
Installing:
nginx x86_64 1:1.24.0-1.amzn2023.0.4 amazonlinux 33 k
Installing dependencies:
generic-logos-httpd noarch 18.0.0-12.amzn2023.0.3 amazonlinux 19 k
gperftools-libs x86_64 2.9.1-1.amzn2023.0.3 amazonlinux 308 k
libunwind x86_64 1.4.0-5.amzn2023.0.2 amazonlinux 66 k
nginx-core x86_64 1:1.24.0-1.amzn2023.0.4 amazonlinux 586 k
nginx-filesystem noarch 1:1.24.0-1.amzn2023.0.4 amazonlinux 9.8 k
nginx-mimetypes noarch 2.1.49-3.amzn2023.0.3 amazonlinux 21 k
Transaction Summary
====================================================================================================================================================================
Install 7 Packages
Total download size: 1.0 M
Installed size: 3.4 M
Is this ok [y/N]: y
「y」を押して「Enter」を押すとパッケージをインストールします。
なお、nginx パッケージ以外にも、依存するパッケージをインストールすることが確認できます。
upgrade パッケージをアップデート
なお、dnf upgrade と dnf update は同じです。
yum upgrade は yum --obsoletes update と同じです。(不要になったパッケージを自動削除)
Invoking
https://dnf.readthedocs.io/en/latest/cli_vs_yum.html#update-and-upgrade-commands-are-the-samednf update
ordnf upgrade
, in all their forms, has the same effect in DNF, with the latter being preferred. In YUMyum upgrade
was exactly likeyum --obsoletes update
.
info パッケージの詳細情報
Installed Packages
Name : nginx
Epoch : 1
Version : 1.24.0
Release : 1.amzn2023.0.4
Architecture : x86_64
Size : 128 k
Source : nginx-1.24.0-1.amzn2023.0.4.src.rpm
Repository : @System
From repo : amazonlinux
Summary : A high performance web server and reverse proxy server
URL : https://nginx.org
License : BSD
Description : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
: IMAP protocols, with a strong focus on high concurrency, performance and low
: memory usage.
- 「Installed Packages」と表示されるとインストール済み
- 「Available Packages」と表示されると、まだインストールしてない
list パッケージの一覧を表示
Installed Packages
acl.x86_64 2.3.1-2.amzn2023.0.2 @System
Available Packages
npm.x86_64 1:8.19.2-1.18.12.1.1.amzn2023.0.10 amazonlinux
リポジトリ名の前に @ マークが付いているものは、インストール済みです。
- インストール済みパッケージに絞りたい場合は dnf list installed
- 未インストールパッケージに絞りたい場合は、dnf list available
特定のパッケージがインストール済みか調べたい場合は、dnf info <パッケージ> がオススメです。
remove パッケージを削除
====================================================================================================================================================================
Package Architecture Version Repository Size
====================================================================================================================================================================
Removing:
nginx x86_64 1:1.24.0-1.amzn2023.0.4 @amazonlinux 128 k
Removing unused dependencies:
generic-logos-httpd noarch 18.0.0-12.amzn2023.0.3 @amazonlinux 21 k
gperftools-libs x86_64 2.9.1-1.amzn2023.0.3 @amazonlinux 1.4 M
libunwind x86_64 1.4.0-5.amzn2023.0.2 @amazonlinux 165 k
nginx-core x86_64 1:1.24.0-1.amzn2023.0.4 @amazonlinux 1.6 M
nginx-filesystem noarch 1:1.24.0-1.amzn2023.0.4 @amazonlinux 0
nginx-mimetypes noarch 2.1.49-3.amzn2023.0.3 @amazonlinux 43 k
Transaction Summary
====================================================================================================================================================================
Remove 7 Packages
Freed space: 3.4 M
Is this ok [y/N]:y
「y」を入力し、Enter を押すとパッケージがアンインストールされます。
dnf/yum のリポジトリの管理/確認
パッケージマネージャーでは、パッケージを探すリポジトリを追加可能です。
repolist 現在のリポジトリ一覧
repo id repo name
amazonlinux Amazon Linux 2023 repository
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository
現在無効になっているリポジトリも一覧に含める場合は all をつけます。
repo id repo name status
amazonlinux Amazon Linux 2023 repository enabled
amazonlinux-debuginfo Amazon Linux 2023 repository - Debug disabled
amazonlinux-source Amazon Linux 2023 repository - Source packages disabled
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository enabled
config-manager --add-repo 新規リポジトリを追加
今回は Fedora 40 リポジトリの URL を指定して追加してみます。(詳細はこちら)
※リポジトリの追加は自己責任です。
/etc/yum.repos.d/ リポジトリの設定ファイル
先程追加した Fedora 40 のリポジトリの設定ファイルを確認します。
amazonlinux.repo
ftp.iij.ad.jp_pub_linux_Fedora_fedora_linux_releases_40_Everything_x86_64_os_.repo
kernel-livepatch.repo
config-manager --enable リポジトリを有効化
Fedora 40 のリポジトリ名を指定して有効化します。
※Fedora 40 はデフォルトで有効化されてますが、今回は説明用として有効化
repo id repo name status
amazonlinux Amazon Linux 2023 repository enabled
amazonlinux-debuginfo Amazon Linux 2023 repository - Debug disabled
amazonlinux-source Amazon Linux 2023 repository - Source packages disabled
ftp.iij.ad.jp_pub_linux_Fedora_fedora_linux_releases_40_Everything_x86_64_os_ created by dnf config-manager from http://ftp.iij.ad.jp/pub/linux/Fedora/fedo enabled
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository enabled
関連情報
学習ロードマップ | |||||
---|---|---|---|---|---|
関連記事:Linux の基本 | |||||
---|---|---|---|---|---|
Linux カーネルの機能 | |||
---|---|---|---|
ネットワークのコマンド | |||
---|---|---|---|
関連記事:サーバー | ||||
---|---|---|---|---|