yum! yum! yum!
ゆむ!やむ!やん!便利ですよね。こんな便利で幸せなものが存在する事になろうとは、1x 年前の大学時代には考えられなかったですぞ!
だがしかし、yumさまの機嫌が悪く、夜中に思い切りハマった、そして夜中には解決しなかった…ので以下備忘録
開発用サーバのCentOS7にPHP5.6を入れたい。ただそれだけやってん。
スムーズにいくと思われた通常の手順(普通はこれでいける、CentOS6 のVPSとかはイケた)
- リポジトリに remi-php56 を追加
↓ - yum -y install –enablerepo=remi-php56 php
↓ - 完成!
と思いますやん?
うちの環境ではなんべんやってもこうなりました…
5.4…お前が入ってくるんじゃねえ(´д`)
remi-php56 リポジトリ指定してんのに、yumさまが取得しようとしてるのは base から。
※baseではphp5.4が標準提供されています。
ググりまくったら、パッケージ名をphp56-php にすればいい とのこと。
簡単じゃん( ´▽`)
yum install –enablerepo=remi-php56 php56-php
にすると、ちゃんと入ってくれました。わーい。
だが…
喜び勇んでバージョン確認!
php -v
コマンドが見つかりませんでした
( ´▽`)
…..もしやとおもって
php56 -v
PHP 5.6.18 (cli) (built: Feb 3 2016 13:07:14)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
そう来ましたか( ´▽`)
こうなったら、ソースからコンパイル?rpmパッケージを直接ダウンロードして入れる…?
それは避けたい!というかこんな一般的なパッケージでyum様のパーフェクトでマーベラスな依存管理から抜け出すのは愚の骨頂!!
yumさまが吐いてる以下のメッセージにピンときて
*** packages excluded due to repository priority protections
試行錯誤のあげく、たどり着いた解答が
remi.repo の[remi-php56]の欄に priority=1 を設定する
でした。
# vi /etc/yum/repos.d/remi.repo
↓
その状態で、再度 yum っちゃうよ!
# yum -y install –enablerepo=remi-php56 php
うおおおおおおおおおおおおおおおおおお!やったぜ!我が勝利( ´▽`)
インストールが済んだら、priority下げるなり、削除するなりしておきましょう。
冷静に考えると、同じパッケージ名 だと、優先度が高い方から取ってくる…至極あたりまえな動きだとは思うけれど…。
–enablerepo=の設定はそこからだけ取ってくる と勘違い(思い込み)してたのですが、そういうものでもない?ようです。 まだまだ鯖管と呼ばれるには程遠い…。精進が必要ですね。
2016-02-17追記:
yum のオプションに、「リポジトリを無効にする」というのがあることに気づく…
# yum -y install –disablerepo=* –enablerepo=remi-php56 php
もう入れちゃったので実験はしないけど、こんな感じ↑でやれば良かったっぽい(´д`)
※ただ、依存性の解消がうまくいかないかもしれない?