LoginSignup
11
9

More than 5 years have passed since last update.

Centos7でyumを使用してphp-mysqlパッケージのインストール時のエラーについて

Last updated at Posted at 2019-03-09

質問を書いていたら、自己解決しました。。。。そういうのって、なくなーい?
せっかくなので公開します。

内容

CentOS7でyumを使用してphp-mysqlのパッケージをインストールすると、エラーメッセージが表示されてインストールできませんインストール方法を教えて下さい。

環境

VPS:ConoHa

OS:CentOS Linux release 7.6.1810

教えて欲しい事 その1

エラーメッセージの中に解決方法が書いてあると思うのですが、どのように解釈し、どのような操作をしたらインストールできるのか教えて下さい

インストール時のエラーメッセージ

yum実行時のエラーメッセージ
# yum install php-mysql

読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.jaist.ac.jp
 * epel-debuginfo: ftp.jaist.ac.jp
 * epel-source: ftp.jaist.ac.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-mysql.x86_64 0:5.4.16-46.el7 を インストール
--> 依存性の処理をしています: 
     php-pdo(x86-64) = 5.4.16-46.el7 のパッケージ: php-mysql-5.4.16-46.el7.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ : php-mysql-5.4.16-46.el7.x86_64 (base)
            要求       : php-pdo(x86-64) = 5.4.16-46.el7
            インストール : php-pdo-7.1.27-1.el7.remi.x86_64 (@remi-php71)
                         php-pdo(x86-64) = 7.1.27-1.el7.remi
            利用可能    : php-pdo-5.4.16-46.el7.x86_64 (base)
                        php-pdo(x86-64) = 5.4.16-46.el7
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

yum実行時のエラーメッセージ(--skip-broken使用時)
# yum install php-mysql --skip-broken

読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.jaist.ac.jp
 * epel-debuginfo: ftp.jaist.ac.jp
 * epel-source: ftp.jaist.ac.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-mysql.x86_64 0:5.4.16-46.el7 を インストール
--> 依存性の処理をしています: php-pdo(x86-64) = 5.4.16-46.el7 のパッケージ: php-mysql-5.4.16-46.el7.x86_64

パッケージは依存関係に問題があるため、飛ばします:
    php-mysql-5.4.16-46.el7.x86_64 (base から)

解決策を模索している中で行なった事

エラーメッセージの中で示されているパッケージの調査
# yum provides php-pdo

読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.jaist.ac.jp
 * epel-debuginfo: ftp.jaist.ac.jp
 * epel-source: ftp.jaist.ac.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
php-pdo-5.4.16-46.el7.x86_64 : A database access abstraction module for PHP applications
リポジトリー        : base

php-pdo-7.1.27-1.el7.remi.x86_64 : A database access abstraction module for PHP applications
リポジトリー        : @remi-php71

教えて欲しい事 その2

エラーメッセージについての解釈は以下の通りでしょうか?

【質問2ー1】エラーメッセージの解釈
要求:php-pdo(x86-64) = 5.4.16-46.el7

自分なりの解釈
php-pdo(x86-64)が必要で、そのバージョンは 5.4.16-46.el7 です

この解釈で合っているでしょうか?

【質問2ー2】エラーメッセージの解釈
インストール : php-pdo-7.1.27-1.el7.remi.x86_64 (@remi-php71)
             php-pdo(x86-64) = 7.1.27-1.el7.remi

自分なりの解釈
現在、php-pdo-7.1.27-1.el7.remi.x86_64がインストールされていますよ

この解釈で合っているでしょうか?

【質問2ー3】エラーメッセージの解釈
利用可能 : php-pdo-5.4.16-46.el7.x86_64 (base)
         php-pdo(x86-64) = 5.4.16-46.el7

自分なりの解釈
php-pdo-5.4.16-46.el7.x86_64をインストールすると競合が発生しませんよ

この解釈で合っているでしょうか?

教えて欲しい事 その3

この質問を書いていてなんとなく分かってきました。この解釈および操作で良いでしょうか?

解釈
yumでphp-mysqlをインストールするにはphp-pdo 5.4.16が必要です。

操作概要
yumでインストールするには上記のパッケージが必要ですが、現在インストールされているphpのバージョンからすると、php-mysqlについては、yumで通常の方法(yum install php-mysql)でインストールはできない。インストール方法は、バージョンを指定してのインストールとなる。

操作
以下のコマンドを実行

phpをインストールした時に使ったコマンドをphp-mysql用に変更して実行
yum install --enablerepo=remi,remi-php71 php-mysql

↓結果

Running transaction
  インストール中          : php-mysqlnd-7.1.27-1.el7.remi.x86_64
                   1/1
  検証中                 : php-mysqlnd-7.1.27-1.el7.remi.x86_64
                   1/1
インストール:
  php-mysqlnd.x86_64 0:7.1.27-1.el7.remi
完了しました!

...あ。なんかできました...

11
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9