centos6.4 php5.4の環境でyum --enablerepo=epel install zabbix-web-mysqlを行って

zabbixをインストールしようとしたところ、以下のエラーになってしまいます。
php5.3にダウングレードしないとzabbixはいらないのでしょうか。。インストールするための対応方法を教えていただきたいです。
--> Finished Dependency Resolution
Error: Package: php-gd-5.3.3-23.el6_4.i686 (updates)
Requires: php-common(x86-32) = 5.3.3-23.el6_4
Installed: php-common-5.4.20-1.el6.remi.i686 (@remi)
php-common(x86-32) = 5.4.20-1.el6.remi
Available: php-common-5.3.3-22.el6.i686 (base)
php-common(x86-32) = 5.3.3-22.el6
Available: php-common-5.3.3-23.el6_4.i686 (updates)
php-common(x86-32) = 5.3.3-23.el6_4

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/11/06 19:52:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:yayayai

エラーの続きです。

Error: Package: php-xml-5.3.3-23.el6_4.i686 (updates)

Requires: php-common(x86-32) = 5.3.3-23.el6_4

Installed: php-common-5.4.20-1.el6.remi.i686 (@remi)

php-common(x86-32) = 5.4.20-1.el6.remi

Available: php-common-5.3.3-22.el6.i686 (base)

php-common(x86-32) = 5.3.3-22.el6

Available: php-common-5.3.3-23.el6_4.i686 (updates)

php-common(x86-32) = 5.3.3-23.el6_4

Error: Package: php-bcmath-5.3.3-23.el6_4.i686 (updates)

Requires: php-common(x86-32) = 5.3.3-23.el6_4

Installed: php-common-5.4.20-1.el6.remi.i686 (@remi)

php-common(x86-32) = 5.4.20-1.el6.remi

Available: php-common-5.3.3-22.el6.i686 (base)

php-common(x86-32) = 5.3.3-22.el6

Available: php-common-5.3.3-23.el6_4.i686 (updates)

php-common(x86-32) = 5.3.3-23.el6_4

You could try using --skip-broken to work around the problem

You could try running: rpm -Va --nofiles --nodigest

ベストアンサー

id:JULY No.2

回答回数966ベストアンサー獲得回数247

ポイント200pt

おそらく、zabbix-web が php を要求していると思いますが、zabbix-web 自体は、5.0 以降のバージョンであれば問題ないようです。

$ rpm -qRp zabbix-web-2.0.9-1.el6.noarch.rpm
警告: zabbix-web-2.0.9-1.el6.noarch.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
/bin/bash
/bin/sh
/bin/sh
/usr/sbin/update-alternatives
/usr/sbin/update-alternatives
config(zabbix-web) = 2.0.9-1.el6
dejavu-sans-fonts
httpd
php >= 5.0
php-bcmath
php-gd
php-mbstring
php-xml
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
zabbix-web-database = 2.0.9-1.el6
rpmlib(PayloadIsXz) <= 5.2-1

エラーメッセージからすると、php-gd を CentOS のリポジトリからインストールしようとして、すでに remi リポジトリからインストールしている php のバージョンと合わない、という状況だと思います。

登録している yum リポジトリの設定がどうなっているか分かりませんが、もし、remi リポジトリの設定では有効になっていない(--enablerepo=remi として php を remi リポジトリから入れた)のであれば、remi リポジトリを有効にした状態にすれば、成功するかもしれません。

あと、zabbix パッケージが要求している php 関連のパッケージ(php-bcmatch、php-gd、php-mbstring、php-xml)を、あらかじめ remi リポジトリからインストールしておく、というのが手があります。こうしておけば、少なくとも zabbix-web パッケージが要求するパッケージはインストール済みで、条件を見たしている事になります。

どちらかというと、後者の方法(あらかじめ php-gd などを remi リポジトリからインストールしておく)を試してみて、それでもさらなる依存性の問題が解決できないようなら、remi リポジトリを有効の状態で zabbix パッケージをインストールする、とか、remi リポジトリや epel などの priority や除外設定等を工夫する、という事になると思います。

他5件のコメントを見る
id:JULY

今回のケースだと yum は次のような判断をしたと思います。

zabbix-web が php-gd を要求している

php-gd は CentOS リポジトリに見つかった。

CentOS リポジトリにある php-gd はバージョン 5.3.3-23.el6_4 で、このパッケージが php-common の バージョン 5.3.3-23.el6_4 を要求している。

php-common は 5.4.20-1.el6.remi というバージョンのが既に入っている。

同じパッケージで複数のバージョンはインストールできないから、ダメ。

ポイントは、php-gd が要求する php-common は、バージョンを指定して要求している点です。一つのソースファイルから、機能毎に分割した複数のパッケージになっているケースの場合、関連するパッケージ同士は、同じバージョン番号を要求するのが通常です。

しかし、zabbix 自体は、特定の php のバージョンを要求している訳ではなく、ざっくりとバージョン 5 以上、ということしか要求していません。

そこで、最初から Zabbix が要求している php-gd やら php-bcmath やらを先にインストールしてしまえば、Zabbix には文句がないだろう、ということです。

> すみません。初歩的質問で失礼なのですが、
> yum clean all したほうがベターなのは、もしかしたらキャッシュが
> 残ってしまうからってことでしょうか

そうです。そのキャッシュをクリアして、改めて yum check-update をすれば、有効になっているリポジトリのパッケージ情報をダウンロードしてきます。リポジトリの設定等を変更した場合、キャッシュが邪魔する事があるので、「あれ? 反映されてない?」と思ったら、yum clean、yum check-update を実行します。

2013/11/06 18:30:59
id:yayayai

ありがとうございます‼︎ お陰様で知識が深めることができました!
また、別で何かありました際には何卒よろしくお願い致します!
本件これにてクローズします!
かなり良回答いただいたので、お礼の気持ちとして、二倍ポイントをつけさせていただきます!

2013/11/06 19:51:13

その他の回答1件)

id:rx7 No.1

回答回数38ベストアンサー獲得回数9

未確認なので、うまくいくかわかりませんが、

  1. 一時的に、php5.4をアンインストール
  2. Zabbixをインストール(多分、php5.3がインストールされる?)
  3. php5.4を再度インストール

の流れで、うまく依存解決が行われないでしょうか。お試しください。
(的外れな回答だったら、すみません。。。)

id:JULY No.2

回答回数966ベストアンサー獲得回数247ここでベストアンサー

ポイント200pt

おそらく、zabbix-web が php を要求していると思いますが、zabbix-web 自体は、5.0 以降のバージョンであれば問題ないようです。

$ rpm -qRp zabbix-web-2.0.9-1.el6.noarch.rpm
警告: zabbix-web-2.0.9-1.el6.noarch.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
/bin/bash
/bin/sh
/bin/sh
/usr/sbin/update-alternatives
/usr/sbin/update-alternatives
config(zabbix-web) = 2.0.9-1.el6
dejavu-sans-fonts
httpd
php >= 5.0
php-bcmath
php-gd
php-mbstring
php-xml
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
zabbix-web-database = 2.0.9-1.el6
rpmlib(PayloadIsXz) <= 5.2-1

エラーメッセージからすると、php-gd を CentOS のリポジトリからインストールしようとして、すでに remi リポジトリからインストールしている php のバージョンと合わない、という状況だと思います。

登録している yum リポジトリの設定がどうなっているか分かりませんが、もし、remi リポジトリの設定では有効になっていない(--enablerepo=remi として php を remi リポジトリから入れた)のであれば、remi リポジトリを有効にした状態にすれば、成功するかもしれません。

あと、zabbix パッケージが要求している php 関連のパッケージ(php-bcmatch、php-gd、php-mbstring、php-xml)を、あらかじめ remi リポジトリからインストールしておく、というのが手があります。こうしておけば、少なくとも zabbix-web パッケージが要求するパッケージはインストール済みで、条件を見たしている事になります。

どちらかというと、後者の方法(あらかじめ php-gd などを remi リポジトリからインストールしておく)を試してみて、それでもさらなる依存性の問題が解決できないようなら、remi リポジトリを有効の状態で zabbix パッケージをインストールする、とか、remi リポジトリや epel などの priority や除外設定等を工夫する、という事になると思います。

他5件のコメントを見る
id:JULY

今回のケースだと yum は次のような判断をしたと思います。

zabbix-web が php-gd を要求している

php-gd は CentOS リポジトリに見つかった。

CentOS リポジトリにある php-gd はバージョン 5.3.3-23.el6_4 で、このパッケージが php-common の バージョン 5.3.3-23.el6_4 を要求している。

php-common は 5.4.20-1.el6.remi というバージョンのが既に入っている。

同じパッケージで複数のバージョンはインストールできないから、ダメ。

ポイントは、php-gd が要求する php-common は、バージョンを指定して要求している点です。一つのソースファイルから、機能毎に分割した複数のパッケージになっているケースの場合、関連するパッケージ同士は、同じバージョン番号を要求するのが通常です。

しかし、zabbix 自体は、特定の php のバージョンを要求している訳ではなく、ざっくりとバージョン 5 以上、ということしか要求していません。

そこで、最初から Zabbix が要求している php-gd やら php-bcmath やらを先にインストールしてしまえば、Zabbix には文句がないだろう、ということです。

> すみません。初歩的質問で失礼なのですが、
> yum clean all したほうがベターなのは、もしかしたらキャッシュが
> 残ってしまうからってことでしょうか

そうです。そのキャッシュをクリアして、改めて yum check-update をすれば、有効になっているリポジトリのパッケージ情報をダウンロードしてきます。リポジトリの設定等を変更した場合、キャッシュが邪魔する事があるので、「あれ? 反映されてない?」と思ったら、yum clean、yum check-update を実行します。

2013/11/06 18:30:59
id:yayayai

ありがとうございます‼︎ お陰様で知識が深めることができました!
また、別で何かありました際には何卒よろしくお願い致します!
本件これにてクローズします!
かなり良回答いただいたので、お礼の気持ちとして、二倍ポイントをつけさせていただきます!

2013/11/06 19:51:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません