Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Linux

Linux系OSのパッケージ管理システム(rpmやyum)及びリポジトリ(epel)について

投稿日:2020年5月29日 更新日:

(0)目次&概説

(1) 記事の目的
 (1-1) 目的
 (1-2) 前提条件
(2) rpm(パッケージ管理システム)
 (2-1) rpmとは?
 (2-2) rpmコマンド(追加・更新・削除)
 (2-3) rpmコマンド(照会)
 (2-4) SRPMとは?
(3) yum(パッケージ管理システム)
 (3-1) yumとは?
 (3-2) yumコマンド(リポジトリ操作系)
 (3-3) yumコマンド(リポジトリ照会系)
 (3-4) yumコマンド(パッケージ照会系)
 (3-5) yumコマンド(追加・更新・削除)
 (3-6) yum vs rpm比較
(4) epel(リポジトリ)
 (4-1) epelとは?
 (4-2) epel有効化(CentOS系)
 (4-3) epel有効化(RHEL系)
 (4-4) epelコマンド(照会)

(1) 記事の目的

(1-1) 目的

今更ですがLinux系OSで使われるパッケージ管理システム(yumやrpm)と良く聞くepelリポジトリについて理解を深めるべく改めて整理しました。ちなみに、まとめた後に知ったのですがyumコマンドは「Python2」で実装されているという理由から廃止となる予定で、後継のコマンドとして「Python3」で実装された「dnf」がこれから標準になってくるとの事・・。まあそれでも当面はyumを使う方もいると思うし、自分の備忘もかねて投稿してみます。

目次にもどる

(2) rpm(パッケージ管理システム)

(2-1) rpmとは?

・”Red Hat Package Manager”の略で、Linux系ディストリビューションの標準のパッケージ管理システムである。
・RPMベースのディストリビューションでのみ利用可能(UbuntuといったDebian系など系統が異なるOSでは利用不可)。
・RPMファイルは拡張子が「.rpm」で、この中にアーカイブファイル(パッケージのライブラリや依存関係を保持)しており、他のインストール済パッケージと干渉しないようになっている。

目次にもどる

(2-2) rpmコマンド(追加・更新・削除)

(2-2-1) パッケージをインストール
$ sudo rpm -ivh [Package Name]
(2-2-2) パッケージをアップデート
$ sudo rpm -Uvh [Package Name]
(2-2-3) パッケージをアンインストール
$ sudo rpm -evh [Package Name]

(備考)
・「v」オプションはパッケージの検査(Verify)を行います。
・「h」オプションはは進捗状況を表示します。

目次にもどる

(2-3) rpmコマンド(照会)

(2-3-1) パッケージを照会
$ sudo rpm -qa | grep [Package Name]

(備考)
・「q」オプションはパッケージ情報の表示と検索(Query)
・「a」オプションはインストールされているパッケージを一覧表示します

(図231)①単一のパッケージ名を指定した場合

(図231)②ワイルドカードでパッケージ名を指定した場合

目次にもどる

(2-4) SRPMとは?

・rpmパッケージのうち、ソースコードを含んだrpmパッケージを「SRPM」と呼んでおり、拡張子は「src.rpm」になります。
・コンパイルや手動での編集が可能なため、もしソースコードをカスタマイズ等したうえでコンパイルしたいケースなどはSRPMパッケージを入手する形になります。
・ビルドする場合のコマンドは以下

# cd ~/rpmbuild/SPECS/
# rpmbuild -ba mozc.spec

目次にもどる

(3) yum(パッケージ管理システム)

(3-1) yumとは?

・”Yellowdog Updater Modified”の略で、Linuxディストリビューションにおいて利用されるオープンソースのパッケージ管理システムです
・RPMベースのディストリビューションでのみ利用可能(UbuntuといったDebian系など系統が異なるOSでは利用不可)
・ディストリビューションの公式リポジトリや、他のサードパーティーリポジトリからRPMパッケージをダウンロードします。

・もし最新を自動で維持したい場合は「yum-cron」を用いての自動アップグレード等も可能です。

目次にもどる

(3-2) yumコマンド(リポジトリ操作系)

(3-2-1) リポジトリの追加

このコマンドを実行すると「/etc/yum.repos.d/」配下の「.repo」ファイルが更新されます。

$ sudo yum-config-manager --add-repo [Repository URL]

(例)

$ sudo yum-config-manager --add-repo http://www.rainbowsample.com/sample.repo
(3-2-2) リポジトリの有効化
$ sudo yum-config-manager --enable [Repository Name]
$ sudo yum --enablerepo=[Repository Name] 

(例)

$ sudo yum --enablerepo=epel
(3-2-3) リポジトリの無効化
$ sudo yum-config-manager --disable [Repository Name]

目次にもどる

(3-3) yumコマンド(リポジトリ照会系)

(3-3-1) リポジトリIDの表示
$ sudo yum repolist [all/enabled/disabled]

(実行結果サンプル)

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
repo id                    repo name                                       status
base/7/x86_64              CentOS-7 - Base                                 10070
epel/x86_64                Extra Packages for Enterprise Linux 7 - x86_64  13300
extras/7/x86_64            CentOS-7 - Extras                               397
updates/7/x86_64           CentOS-7 - Updates                              671
repolist: 24438

(図331)

(3-3-2) システムで利用可能なグループリストを表示

[Group Name]の一覧が表示されます。

$ sudo yum grouplist
(3-3-3) グループ内の情報表示
$ sudo yum groupinfo [Group Name]

目次にもどる

(3-4) yumコマンド(パッケージ照会系)

(3-4-1) リポジトリにある全パッケージ+インストール済みの全パッケージを表示
$ sudo yum list
(3-4-2) インストール済みの全パッケージを表示
$ sudo yum list installed
(3-4-3) 全リポジトリからインストール可能なパッケージを照会
$ sudo yum list available
(3-4-4) 利用可能なアップデートを調べる
$ sudo yum list available

目次にもどる

(3-5) yumコマンド(追加・更新・削除)

(3-5-1) パッケージのインストール
$ sudo yum install [Package Name]
(3-5-2) パッケージのアンインストール
$ sudo yum remove [Package Name]
(3-5-3) 複数パッケージの一括インストール(逆は「groupremove」)
$ sudo yum groupinstall "[Package Name1]" "[Package Name2]"…

(例)

$ sudo yum groupinstall "GNOME Desktop"

目次にもどる

(3-6) yum vs rpm比較

これまでの内容も踏まえ、yumとrpmの違いとなるポイントを表にまとめました。
(表)

比較項目 YUM RPM
依存関係の解決 ・依存するパッケージがあるかをチェックし、もしあれば全て事前に取得~インストールする事が出来る(パッケージの依存関係の解決が可能) ・依存するパッケージが全てあるかをチェックしてアラートを出す事は出来るが、それらを自動的に取得~インストールする事はできない。
複数バージョン導入 ・同時に複数バージョンの導入は不可 ・同時に複数のバージョンの導入が可能
リポジトリ ・全般的にオンラインのリポジトリに依存する ・オンラインのリポジトリは一切使用しない
システム全体のアップグレード ・YUMはシステム全体(システム内の全パッケージ)を最新化する事ができます(マイナーバージョンの更新も含む) ・システム全体のアップグレードは不可
その他 ・「yum update」の動作について、パッケージ名を指定した場合は、その該当パッケージ+依存パッケージのダウンロードとインストールを実行します。
・一方でパッケージ名を指定せずに実行した場合はシステム内の全てのパッケージをインストールしようとする
・「yum upgrade」は「yum update」と基本的に同じだが、違いとしては「非推奨」のパッケージを削除しようとする
 

目次にもどる

(4) epel(リポジトリ)

(4-1) epelとは?

・Extra Packages for Enterprise Linuxの略で、扱うパッケージはものによってはコアリポジトリに含まれないものや、一般公開されていないアップデート等もあったりします。
・当ブログでもepelリポジトリを用いて「ibus」や「anthy」や「ibus-anthy」をインストールしました。
・利用可能なLinuxディストリビューションは①RHEL、②CentOS、③Scientific Linux、④Oracle Linuxです。
・開発の背景としてFedora開発の貢献者たちがRHELや、その他互換性のあるOSでも彼らが整備したパッケージを使いたいという願望から生まれました。
・EPELグループ(Fedora Projectの内部派生グループ)により管理されています。

目次にもどる

(4-2) epel有効化(CentOS系)

CentOSがEPELの導入が最も簡単で(通常のパッケージ導入と同じ)、‘CentOS Extras’ というリポジトリが標準で含まれています。

(4-2-1) インストール
下記のコマンドでリポジトリのインストールを行えます。
$ sudo yum install epel-release
(4-2-2) リポジトリ一覧を確認
$ sudo yum repolist

目次にもどる

(4-3) epel有効化(RHEL系)

(4-3-1) rpmファイルダウンロード
CentOS以外のOSの場合(RHEL等)やCentOSにて上記のやり方で導入出来なかった場合は、rpmファイル(Red Hatのパッケージ管理ファイル)をダウンロードしてyumコマンドでインストールします。

・ダウンロード:RHEL7/CentOS7等の場合
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

・ダウンロード:RHEL6/CentOS6等の場合
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

・ダウンロード:RHEL5/CentOS5等の場合
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm

(4-3-2) インストール
$ sudo yum install ./epel-release-latest-*.noarch.rpm

目次にもどる

(4-4) epelコマンド(照会)

(4-4-1) epelの情報照会
# yum info epel-release
(4-4-2) epelの有効化
# yum --enablerepo=epel
(4-4-3) epelを構成するパッケージの表示
# yum --disablerepo="*" --enablerepo="epel" list available
(4-4-4) epelを構成するパッケージからパッケージ名をキーに個別検索
# yum --disablerepo="*" --enablerepo="epel" list available | grep '[Package Name]'
(4-4-5) epelリポジトリを利用してパッケージインストール
# yum --enablerepo="epel" install [Package Name]

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Linux

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

CentOS7で日本語が文字化けした時の対処方法(SSH接続の場合)

<目次> (1) CentOS7で日本語が文字化けした時の対処方法(SSH接続の場合)  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 (1) CentOS7で日本 …

CentOS6でエラー「Cannot find a valid baseurl for repo: centos-sclo-rh」が出た時の対処メモ

<目次> (1) CentOS6でエラー「Cannot find a valid baseurl for repo: centos-sclo-rh」が出た時の対処メモ  (1-1) エラーメッセージ …

GitHubのアカウント作成の手順と初期設定をご紹介

  <目次> (1) GitHubのアカウント作成の手順と初期設定をご紹介  (1-1) STEP1:GitHubアカウント作成  (1-2) STEP2:SSH Keyの設定 (1) Gi …

Linuxのviで貼り付け時にコメントがある場合の注意点(コメントアウトされてしまう)

  <目次> (1) Linuxのviで貼り付け時にコメントがある場合の注意点(コメントアウトされてしまう)  (1-1) 発生事象  (1-2) 原因  (1-3) 対処  (1-4) 切 …

Linuxのテキスト入力で日本語が文字化けした時の対処法と解説

Linuxのテキスト入力等で日本語が文字化けした時の対処方法を紹介します。 (0)目次&概説 (1) 障害・不具合の概要 (2) 文字化けの対処法 (3) 解説(文字コードについて) (1) 障害・不 …

  • English (United States)
  • 日本語
Top