パッケージとは、ソフトウェアの実行に必要なファイルをまとめたものです。
具体的には、以下のようなものが含まれます。
・実行ファイル
・ライブラリ
・モジュール
・設定ファイル
・リソース (画像・音楽ファイルなど)
パッケージ管理システムとは、パッケージをインストール/アンインストールするシステムです。Windows や Mac でいうインストーラのことです。
関連記事:Linux の基本機能 | |||||
---|---|---|---|---|---|
パッケージ管理システムの機能
パッケージ管理システムの機能を説明する前に、まずは用語を説明します。
リポジトリ (レポジトリ) とは
リポジトリとは、パッケージの保管場所 (配布サイト) のことです。
「iOS でいう App Store」とか、「Windows でいう窓の社・Vector」みたいなものです。
依存関係とは
依存関係とは、パッケージ A を利用するために、パッケージ B をインストールする必要がある状態のことです。
パッケージ管理システムの機能
パッケージ管理システムは、パッケージをインストール/アンインストールする際に、次の機能を持ちます。
- パッケージをリポジトリ(後述)から自動で探す
- パッケージの依存関係(後述)を自動で解決
パッケージ管理システムの一覧
パッケージ管理システムには、以下の種類が存在します。
パッケージ管理システム | ディストリビューション | 依存関係が存在する時 |
---|---|---|
rpm | RHEL | インストール・アンインストールを中断 |
yum | RHEL | 自動で依存関係を解決 |
dpkg | Ubuntu/Debian | インストール・アンインストールを中断 |
apt | Ubuntu/Debian | 自動で依存関係を解決 |
yum や apt はパッケージ管理システム (rpm, dpkg) を管理するので、メタパッケージ管理システムと呼ばれることもあります。
リポジトリにパッケージが存在する場合は、メタパッケージ管理システム (yum/apt) を使えば ok です。
なお、メタパッケージ管理システムは以下のように依存関係を解決します。
yum コマンドの使い方
install パッケージをインストール
「yum install <パッケージ名>」 or 「yum install <rpm パッケージの URL>」
================================================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================================= インストール中: httpd x86_64 2.4.52-1.amzn2 amzn2-core 1.3 M 依存性関連でのインストールをします: apr x86_64 1.7.0-9.amzn2 amzn2-core 122 k apr-util x86_64 1.6.1-5.amzn2.0.2 amzn2-core 99 k apr-util-bdb x86_64 1.6.1-5.amzn2.0.2 amzn2-core 19 k generic-logos-httpd noarch 18.0.0-4.amzn2 amzn2-core 19 k httpd-filesystem noarch 2.4.52-1.amzn2 amzn2-core 24 k httpd-tools x86_64 2.4.52-1.amzn2 amzn2-core 88 k mailcap noarch 2.1.41-2.amzn2 amzn2-core 31 k mod_http2 x86_64 1.15.19-1.amzn2.0.1 amzn2-core 149 k トランザクションの要約 ================================================================================================================================================= インストール 1 パッケージ (+8 個の依存関係のパッケージ) 総ダウンロード容量: 1.9 M インストール容量: 5.2 M Is this ok [y/d/N]:
「y」を押して「Enter」を押すとパッケージをインストールします。
なお、httpd パッケージと依存関係のあるパッケージは以下の8つであることがわかります。
- apr
- apr-util
- apr-util-bdb
- generic-logos-httpd
- httpd-filesystem
- httpd-tools
- mailcap
- mod_http2
update パッケージをアップデート
yum update <パッケージ>
なお、「yum update --obsoletes
」=「yum upgrade」です。
(不要になったパッケージの削除を自動で行う)
info パッケージの詳細情報
インストール済みパッケージ 名前 : httpd アーキテクチャー : x86_64 バージョン : 2.4.52 リリース : 1.amzn2 容量 : 4.1 M リポジトリー : installed 提供元リポジトリー : amzn2-core 要約 : Apache HTTP Server URL : https://httpd.apache.org/ ライセンス : ASL 2.0 説明 : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
- 「インストール済みのパッケージ」と表示される場合は、インストール済みのパッケージです
- 「利用可能なパッケージ」と表示される場合は、まだインストールしてないパッケージです
list 利用可能なパッケージ
利用可能な (設定済みのリポジトリにある) パッケージの一覧を表示します。
list installed インストール済みのパッケージ一覧
「sudo yum list installed|grep <パッケージ名>」で絞るといい感じですが、「sudo yum info <パッケージ名>」のほうがスマートです。
remove パッケージを削除
====================================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ====================================================================================================================================================== 削除中: httpd x86_64 2.4.52-1.amzn2 @amzn2-core 4.1 M 依存性関連での削除をします: mod_http2 x86_64 1.15.19-1.amzn2.0.1 @amzn2-core 382 k トランザクションの要約 ====================================================================================================================================================== 削除 1 パッケージ (+1 個の依存関係のパッケージ) インストール容量: 4.5 M 上記の処理を行います。よろしいでしょうか? [y/N]y
「y」を入力し、Enter を押すとパッケージがアンインストールされます。
yum のリポジトリの管理・確認
パッケージ管理システムでは、デフォルトとは別のリポジトリからパッケージをインストールするすることも可能です。
Extra Packages for Enterprise Linux (EPEL) - (See http://fedoraproject.org/wiki/EPEL) provides rebuilds of Fedora packages for EL6 and EL7.
https://wiki.centos.org/AdditionalResources/Repositories
Remi Repository - (See http://rpms.remirepo.net/) Remi Collet maintains a large collection of RPMS, including latest versions of PHP etc.
repolist 設定済みリポジトリ一覧
リポジトリー ID リポジトリー名 状態 !amzn2-core/2/x86_64 Amazon Linux 2 core repository amzn2extra-docker/2/x86_64 Amazon Extras repo for docker amzn2extra-kernel-5.10/2/x86_64 Amazon Extras repo for kernel-5.10
現在無効になっている、 設定済みリポジトリ一覧を含める場合は all をつけます。
リポジトリー ID リポジトリー名 状態 !amzn2-core/2/x86_64 Amazon Linux 2 core repository 有効 amzn2-core-debuginfo/2/x86_64 Amazon Linux 2 core repository - debuginfo packages 無効 amzn2-core-source/2 Amazon Linux 2 core repository - source packages 無効 amzn2extra-docker/2/x86_64 Amazon Extras repo for docker 有効 amzn2extra-docker-debuginfo/2/x86_64 Amazon Extras debuginfo repo for docker 無効 amzn2extra-docker-source/2 Amazon Extras source repo for docker 無効 amzn2extra-kernel-5.10/2/x86_64 Amazon Extras repo for kernel-5.10 有効 amzn2extra-kernel-5.10-debuginfo/2/x86_64 Amazon Extras debuginfo repo for kernel-5.10 無効 amzn2extra-kernel-5.10-source/2 Amazon Extras source repo for kernel-5.10 無効
EPEL (リポジトリ) を追加
EPEL を設定済みリポジトリに追加するには、以下のコマンドとなります。
「EPEL リポジトリを追加するパッケージを yum install でインストールする」と考えていただければ OK です。
/etc/yum.repos.d/ リポジトリの設定ファイル
リポジトリの設定ファイルは /etc/yum.repos.d/ 配下にあります。
amzn2-core.repo amzn2-extras.repo epel-testing.repo epel.repo
先程インストールした EPEL リポジトリが存在することを確認できます。
/etc/yum.repos.d/ の確認
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
フィールド | 意味 |
---|---|
[epel] | リポジトリ ID |
name | リポジトリ名 |
metalink | メタリンク |
enabled | 1ならリポジトリが有効 |
gpgcheck | 1なら GPG 署名確認 rpm ファイルの信頼性を確保するため |
gpgkey | GPG キーのパス |
GnuPG(GPG)は、ファイルまたは電子メールメッセージの署名および暗号化を可能にする PGP のオープンソースバージョンです。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/security_guide/sect-security_guide-encryption-gpg
関連情報
関連記事:Linux の基本機能 | |||||
---|---|---|---|---|---|