パッケージとは、ソフトウェアの実行に必要なファイルをまとめたものです。
具体的には、以下のようなものが含まれます。
・実行ファイル
・ライブラリ
・リソース (画像・音楽ファイルなど)
・設定ファイル
「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 カーネルの機能 | |||
---|---|---|---|
ネットワークのコマンド | |||
---|---|---|---|
関連記事:サーバー | ||||
---|---|---|---|---|