kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

yumについて理解が進んでいないのでメモ

CentOSでのパッケージ管理についてのお話

用語

RHEL : Red Hat Enterprise Linux

yum

yum : Yellowdog Updater Modified

RPM Package Managerのパッケージを管理するメタパッケージ管理システム

RPM?

RPM : RPM Package Manager

RedHat系OSが使うパッケージ管理システム

  • 再帰的命名だ!!
  • 昔は、Red Hat Package Manager だったらしい
  • パッケージ : ソフトウェアのバイナリやそれが必要とするファイルをひとまとめにしたもの

なんでRPMから更に1枚噛ませているの?

  • yumは、内部でRPMを呼び出している
  • RPMにない機能をyumは持っている
    • ファイル名より抽象的なパッケージ名
    • インストールされていないパッケージの検索
    • パッケージ同士の依存関係の管理

リポジトリ

  • パッケージを集めて保管している場所
  • CentOSにデフォルトでバンドルされているのは、base, updates, extras, centosplus, contrib の5つ
    • ただし、centosplus, contrib はデフォルト無効
    • base : OSリリース時の状態
    • updates : baseから更新があったパッケージが格納
    • extras : baseに含まれない便利なソフトウェア群

コマンド yum repolist で確認可能

また、/etc/yum.repos.d/CentOS-Base.repo に、デフォルトのリポジトリ設定が書かれている

リポジトリの追加

バンドルされているリポジトリの他に、サードパーティリポジトリを追加できる

  • 利点 : デフォルトにない/新しいパッケージを追加できる
  • 欠点 : CentOS開発チームがテストをしていない

RedHatエンタープライズ向けなので、提供されるパッケージは古めの(枯れている)バージョンが多い

その為、最新のパッケージが欲しい場合、サードパーティリポジトリに頼ることが多い

centOSでよく使われるサードパーティリポジトリ

基本的にはどれか1択。複数サードパーティリポジトリからパッケージを入れると、依存関係がわけわからんことになりがち

EPEL

EPEL : Extra Packages for Enterprise Linux

RPMfusion

Fedora プロジェクトに収録されていないパッケージを提供するレポジトリ

Remi

RHELFedoraに最新のPHPと他のソフトウェアを供給するのを目的としたリポジトリ

RepoForge

  • 旧RPMforge
  • RHEL6で更新が止まってる様子なのであえて使う必要はなさげ?
    • 2015/10現在、RHEL7が最新

参考