Linuxのパッケージ管理についての用語を理解する
vagrantで環境を構築する際に、PHPの各種バージョンを指定して作成した場合はありますが、
その際にyumでリポジトリを追加してパッケージをインストール、、などと言われても意味がわかっていなかったので、ざっくりと調べてみました。
yum
RedHat系ディストリビューションのパッケージ管理システムのこと。
PHPでいう、composerのLinux(RedHat系)版、みたいなものでしょうか。
ちなみにRedHat系ディストリビューションのLinux、とは、CentOSがそれにあたるよう。(Fedora、とか)
Linuxディストリビューションの比較 – Wikipedia
(Debian系のディストリビューション、では、apt-get
が使われる。
UbuntuはDebian系ディストリビューション。)
一方、rpm
、というのもあるそうですが、rpmを機能拡張したものがyum、という位置づけのようです。
初心者の頃に知っておきたかった rpm と yum の違いと使い分け – 彼女からは、おいちゃんと呼ばれています
要するにyumで提供されているものはyumを使ったほうが楽だからyumを使うけれど、
rpmでしかないものや、yumで提供されているものが古かったりするばあいは、rpmで直接指定する、みたいな感じっぽいです。
また、上記サイトに用語の説明として以下のように記載されていました。
・パッケージ
ソフトウェアの一連のファイルをまとめたもの
・リポジトリ
パッケージを集めて保管している場所。インターネット上にいろいろなリポジトリが存在する
・RPM データベース
rpm 形式のパッケージがインストールされると、その情報は「/usr/lib/rpm」に格納される。このデータのまとまりを「RPM データベース」という
リポジトリ
今聞くとgitしか思い浮かびませんが、たぶん意味は同じ。
リポジトリ、なのか、レポジトリなのか、揺れがあります。
(リポジトリ、のほうが多い気がしました)
yumの概念を覚えよう。fedoracore4では標準でついてます。
最新バージョンのソフトウェアは、リポジトリというサイトに登録されていています。
まあ、簡単にいうと、リポジトリとはソフトウェアの貯蔵庫みたいなもの。
PHPでいうところの、composer.json
がネット上にアップされていて、どのパッケージのどのバージョンをインストールするか、みたなものが管理されており、それをリポジトリ、と呼ぶ、という事でしょうか。
remi
yum が便利になる RPMforge、Remi、EPEL とは一体何なのか – oki2a24
有名なサードパーティのリポジトリの一つのよう。
あと有名なものは上記サイトにあるように、 EPEL
とか、 RPMforge
とかがあるみたいです。
人の名前らしい。
「remiってなに?」って話 : 元うなぎ屋
CentOSのPHP
ようやく本題に近づいてきました。
現状、CentOSの公式リポジトリで提供されているPHPは、5.4、らしいです。
CentOS7.x系では、PHP5.4、なのだと思います。
CentOS6.x系では、PHP5.3、のようです。
ですので、最新のPHPを含め、他のバージョンのPHPをインストールするには、そのPHPがパッケージされたリポジトリを使用する必要があります。
その際に上記のremi、を使うのがもっともポピュラーな方法のようです。
EPELリポジトリ
Remi で提供されているソフトウェアをインストールするためには EPEL のリポジトリも必須要件となっていますので、EPELのリポジトリの追加を行った後に Remi のリポジトリを追加します。
CentOS 7 に PHP 5.6 を yum でインストールする手順 | WEB ARCH LABO
用語の揺れ
remiのyumリポジトリなのか、yumのremiリポジトリなのか?
CentOS7では「EPEL」リポジトリを「yum」で追加することで追加することができます。
CentOS7 サードパーティーリポジトリの追加 | server-memo.net
上記にある通り、EPELリポジトリをyumで追加するので、remiリポジトリ、が正解だと思います。
サードパーティリポジトリ
特にサードパーティのリポジトリをインストールしなかったばあいは、yum標準のリポジトリからインストールやアップデートが行われますが、
サードパーティのリポジトリをインストールしている場合はyumを使用する際にインストールしたサードパーティのリポジトリからインストールやアップデートが行われる、ということのようです。
remiやEPELなんかの有名どころでは信頼性も高いのかもしれないですが、セキュリティの観点から言うとやはり公式の標準リポジトリからインストールするのが一番安全だと思われます。
なので、通常はyum標準のリポジトリを利用するが、足りないものやカスタマイズしたい場合のみ、remiなどのサードパーティのリポジトリを使う、という運用がよく行われるようです。
追加するリポジトリによっては、CentOS標準のパッケージを置き換えてしまったりするものがあり、それが問題を引き起こしてしまう場合があります。
ですので、通常はCentOSデフォルトのリポジトリを使用し、そこに無いパッケージをインストールしたい場合のみ、明示的に追加したリポジトリを指定してパッケージのインストールを行うという運用に私はしています。
CentOS7 サードパーティーリポジトリの追加 | server-memo.net
まとめ
とりあえずyum、リポジトリ、remiなどの関係がざっくりと理解できました。
linux系の記事とかを調べているとこの辺の用語が当たり前に出てくるのでつらかったのですが、これである程度整理しながら読むことが出来そうです。