脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

php-gdが入らない

php-gdが上手に入らない、なんとかして」の対応メモ。

入れたいのは remi-php56 の方のphp-gd。そしてGD本体。

$ sudo yum --enablerepo=remi-php56 list | grep php-gd
php-gd.x86_64                              5.3.3-40.el6_6               updates

$ sudo yum --disablerepo=* --enablerepo=remi-php56 list | grep php-gd
php-gd.x86_64                      5.6.7-1.el6.remi                  remi-php56

単純に入れようとすると依存でこける

$ sudo yum --enablerepo=remi,remi-php56 install php-gd
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * remi: remi.kazukioishi.net
 * remi-php56: remi.kazukioishi.net
 * updates: ftp.tsukuba.wide.ad.jp
258 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-gd.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-40.el6_6 for package: php-gd-5.3.3-40.el6_6.x86_64
--> Processing Dependency: libXpm.so.4()(64bit) for package: php-gd-5.3.3-40.el6_6.x86_64
--> Running transaction check
---> Package libXpm.x86_64 0:3.5.10-2.el6 will be installed
---> Package php-gd.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-40.el6_6 for package: php-gd-5.3.3-40.el6_6.x86_64
--> Finished Dependency Resolution
Error: Package: php-gd-5.3.3-40.el6_6.x86_64 (updates)
           Requires: php-common(x86-64) = 5.3.3-40.el6_6
           Installed: php-common-5.6.7-1.el6.remi.x86_64 (@remi-php56)
               php-common(x86-64) = 5.6.7-1.el6.remi
           Available: php-common-5.3.3-38.el6.x86_64 (base)
               php-common(x86-64) = 5.3.3-38.el6
           Available: php-common-5.3.3-40.el6_6.x86_64 (updates)
               php-common(x86-64) = 5.3.3-40.el6_6
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

gdを先に入れてみる

$ sudo yum --enablerepo=remi,remi-php56 install gd-last
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * remi: remi.kazukioishi.net
 * remi-php56: remi.kazukioishi.net
 * updates: ftp.tsukuba.wide.ad.jp
258 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gd-last.x86_64 0:2.1.1-2.el6.remi will be installed
--> Processing Dependency: libvpx.so.1()(64bit) for package: gd-last-2.1.1-2.el6.remi.x86_64
--> Processing Dependency: libXpm.so.4()(64bit) for package: gd-last-2.1.1-2.el6.remi.x86_64
--> Running transaction check
---> Package libXpm.x86_64 0:3.5.10-2.el6 will be installed
---> Package libvpx.x86_64 0:1.3.0-5.el6_5 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                    Arch                      Version                             Repository               Size
========================================================================================================================
Installing:
 gd-last                    x86_64                    2.1.1-2.el6.remi                    remi                    135 k
Installing for dependencies:
 libXpm                     x86_64                    3.5.10-2.el6                        base                     51 k
 libvpx                     x86_64                    1.3.0-5.el6_5                       base                    486 k

Transaction Summary
========================================================================================================================
Install       3 Package(s)

Total download size: 672 k
Installed size: 1.8 M
Is this ok [y/N]:

続いてphp-gdを入れようとしてみる。
t1libがないと言われるが、前進はしている。

$ sudo yum --disablerepo=* --enablerepo=remi,remi-php56 install php-gd
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * remi: remi.kazukioishi.net
 * remi-php56: remi.kazukioishi.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-gd.x86_64 0:5.6.7-1.el6.remi will be installed
--> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.6.7-1.el6.remi.x86_64
--> Finished Dependency Resolution
Error: Package: php-gd-5.6.7-1.el6.remi.x86_64 (remi-php56)
           Requires: libt1.so.5()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

t1libを入れる。

$ sudo yum --enablerepo=remi,remi-php56 install t1lib
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * remi: remi.kazukioishi.net
 * remi-php56: remi.kazukioishi.net
 * updates: ftp.tsukuba.wide.ad.jp
258 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package t1lib.x86_64 0:5.1.2-6.el6_2.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                  Arch                      Version                               Repository               Size
========================================================================================================================
Installing:
 t1lib                    x86_64                    5.1.2-6.el6_2.1                       base                    160 k

Transaction Summary
========================================================================================================================
Install       1 Package(s)

Total download size: 160 k
Installed size: 386 k
Is this ok [y/N]:

再度php-gdにトライ。今度は成功した。

$ sudo yum --disablerepo=* --enablerepo=remi,remi-php56 install php-gd
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * remi: remi.kazukioishi.net
 * remi-php56: remi.kazukioishi.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-gd.x86_64 0:5.6.7-1.el6.remi will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                 Arch                    Version                              Repository                   Size
========================================================================================================================
Installing:
 php-gd                  x86_64                  5.6.7-1.el6.remi                     remi-php56                   74 k

Transaction Summary
========================================================================================================================
Install       1 Package(s)

Total download size: 74 k
Installed size: 229 k
Is this ok [y/N]:

まとめ

CentOS-6.5 + remi6(6.5-1.el6.remi) で php-gd を入れたい場合、
先にremiの gd-last と t1lib を入れてから、 php-gd を入れる必要がある。

以前にもgdでトラブルがあったけど、どうもremiにあるphpはgd関連の依存がおかしくなっている模様。