As rookie

ルーキーインフラエンジニアがインフラのこと以外も結構書いてしまうブログ

yumとかrpmとか

こんにちは〜

今日はサーバーにPHPをいれたいと思います。

yum install php

とよしインストール終わったっぽいな〜

ってことでPHPのバージョンを調べたい。

php -v
PHP 5.3.3 (cli) (built: Jun 22 2016 09:05:27)

とか

rpm -qa | grep php

5.3.3!?

古くないか?わからんが…

最新は7.1!?

古いじゃん…

ってことでせめて5.6ぐをインストールしたい!

でも今までなんの気にもせずにyumコマンド使ってたからバージョンの指定方法とか知らない…

ってことでyumのことを調べてみることにした!!

Yellowdog Updater Modified(yum)

https://ja.wikipedia.org/wiki/Yellowdog_Updater_Modified

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

とかいてある。つまりRPMのパッケージを管理するシステムってことだろ?

ちょっとまったRPMってなんだ。

さっきなにげなしに「rpm -qa | grep php」とかやってたけど全然何かわからん…

ってことでRPMを調べる!!

RPM Package Manager

https://ja.wikipedia.org/wiki/RPM_Package_Manager


ソフトウェアのパッケージを管理するためのシステム (パッケージ管理システム)、及びコマンド。

わけわからん。パッケージを管理するシステムを管理するシステムがyum??

ググろう。オーソドックスに

rpm yum 違い」

参考にさしていただきました。


blog.inouetakuya.info


rpmyum は別々のものではない。yum は内部で rpm を呼び出して、rpm よりもさらに高度な機能を提供しているもの
rpm は依存関係のあるパッケージを自動ではインストールしてくれない
yum は依存関係のあるパッケージを自動でインストールしてくれる

yumでインストールすると、複数回rpmをしてくれている感じですね

yumのインストールでインストールのために必要なパッケージがないってときに

rpm -ivh

でパッケージをインストールしてから再度yumをすると成功する。なんてがあります。
(あれ?依存関係のある自動でインストールしてくれるんじゃないの?)

以前に
PHPの画像生成するためのライブラリ「GD」をyumでインストールしようとしたときにこれがおこりました。

普通に

yum install --enablerepo=remi-php56 php-gd

としたところ

Faild dependencies gd-last

「失敗した依存」とのこと。

yum list --enablerepo=remi-php56 | grep gd-last

結果は何も表示されなかった。
そして色々調べて
http://rpms.famillecollet.com/enterprise/6/remi/x86_64/
にたどり着きました。ここにはremiリポジトリrpmがファイルとして置かれている場所です。
ページ内検索で「gd-last」を検索すると
gd-last-2.2.1-2.el6.remi.x86_64.rpmがハイライトされるとおもいます。

gd-last-2.2.1-2 gd-lastのバージョン
el6 enterprise linux 6x
remi remiリポジトリ
x86_64 64bit

これを右クリックしてリンクをコピーします。

rpm -ivh http://rpms.famillecollet.com/enterprise/6/remi/x86_64/gd-last-2.2.2-1.el6.remi.x86_64.rpm

rpmパッケージを単体でインストールしてくれます。
これをして再び[依存関係のエラー]が起こったときはその依存関係のあるものをrpmでインストールすればよいのです。

rpmについてはRed Hatの公式サイトのマニュアルを参考にするとわかりやすいと思います。

https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Installing_and_Upgrading.html


でも、rpmがいっぱいおいてある場所なんてわかんないですよね。そちらもいずれ検証したいと思います。


ちなみに
リポジトリrpmで追加するときに公開鍵が必要な場合があります。
remiリポジトリを追加するときには必要でした。そのときは

curl -O http://rpms.famillecollet.com/RPM-GPG-KEY-remi

で公開鍵(RPM-GPG-KEY)をダウンロードしてきて、

rpm --import RPM-GPG-KEY-remi

rpmに公開鍵をインポートして

sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmls

でremiリポジトリを追加して、

yum install --enablerepo=remi-php56 php

でPHP5.6はインストールできました。
gd-lastを追加したのはその後ですね。

参考にしたサイト↓
CentOSにyumリポジトリを追加 - Qiita

まだまだ触れれていない部分はありますが、とりあえず環境構築するためにはこれぐらいはわかっておかないとだめな部分ですね。
もう少し深く勉強しようと思います。