No.204
【PHP】【Pear】PECL::zip 1.14.0 注意事項
PECL::zipのインストールでちょいハマリ…
VagrantのCentOS7開発環境構築用のchefにPECL::zipをバージョン指定しないで書いていた。となると実行コマンドは下記となり、必然的に最新版がインストールされる。
pecl -d preferred_state=stable install -a zip
まあ、聡い人ならもうおわかりかと思うが、PECL::zipのバージョンアップでエラーが出るようになってしまいちょいハマリしたので解決方法をメモ。
エラー
最終的に下記2つのエラーが発生していた。
configure: error: Please reinstall the libzip distribution
configure: error: system libzip must be upgraded to version >= 0.11
解決方法
PECL::zipのバージョン指定を行った。
指定するバージョンは1.13.5。理由は後述
pecl -d preferred_state=stable install -a zip/zip-1.13.5
chefのreciptだと
php_pear 'zip' do
version :'1.13.5'
action :install
end
となる。
原因
PECL::zipが1.14.0にバージョンアップしていた際にいろいろと必要項目が変わっていた。
リリースノートの以下の部分に注目。
...
- add ZipArchive::setEncryptionName and ZipArchive::setEncryptionIndex
methods available with libzip >= 1.2.0 (Remi)
...
- support for system libzip on Windows (Anatol)
- drop bundled libzip, only support system library (Remi)
- 内蔵していたlibzipの使用をやめシステムのlibzipを使うようになった。
- libzipはバージョン
0.2.0
以降が必要。
つまりyum install libzip libzip-devel
などが必要になる。
ところがCentOS公式のlibzipはバージョンが0.11.0
なのだ。 orz
というわけで、Vagrantの開発環境用なのでPECL::zipのバージョンを1.13.5
に戻すことで一時的に対応した。