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 は別々のものではない。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の公式サイトのマニュアルを参考にするとわかりやすいと思います。
でも、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
まだまだ触れれていない部分はありますが、とりあえず環境構築するためにはこれぐらいはわかっておかないとだめな部分ですね。
もう少し深く勉強しようと思います。