libzip-1.6.1をCentOS7にソースインストール
篠原 隆司
覚書です。
ところどころ省いています。
実践環境で使う場合はご注意ください。
目的
PHP7.3.6 をインストールしようとしたところconfigure で次のエラーが発生しました。
checking for libzip... not found
configure: error: Please reinstall the libzip distribution
調べていくと、PHP 5.6.0 から、--with-libzip=DIR オプションが追加されたようで、libzip 0.11 以降が必要です。
PHP7.2 までは気にしたこともなかったのですが、どうやらPHP7.3からはlibzipを含まず、必要なら自分でインストールする形になったようです。
https://www.php.net/manual/ja/zip.installation.php
特徴
- ソースコードからのインストール
- 複数バージョンの共存
特定バージョンでの開発や動作確認など開発環境での用途を目的としています。
環境
実施日 | 2020-5-20 |
サーバ | さくらのVPS 2G![]() |
OS | CentOS 7.7 |
cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
rpm -qa | grep centos-release
centos-release-7-8.2003.0.el7.centos.x86_64
事前準備
cmake-3.17.2
libzip をcmake していると次のエラーが発生しました。
CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED):
CMake 3.0.2 or higher is required. You are running version 2.8.12.2
今までは yum で入れたものを使っていたのですが、CentOS6では 2.8.12.2 までのようです。
libzip 1.6.1
公式サイトからダウンロードして、/tmp にアップロード
libzipの公式サイトのダウンロードページに行くと最新版へのリンクがあります。
「libzip-1.6.1.tar.gz」をクリックしてダウンロードし、次の場所にアップロードします。
/tmp/libzip-1.6.1.tar.gz
インストール
公式の手順はこちらです。
ls -la /usr/local/src
ls -la /usr/local/lib
mkdir /usr/local/src/libzip-1.6.1
cp /tmp/libzip-1.6.1.tar.gz /usr/local/src/libzip-1.6.1/libzip-1.6.1.tar.gz
cd /usr/local/src/libzip-1.6.1
tar xvzf libzip-1.6.1.tar.gz
cd libzip-1.6.1
/usr/local/lib/cmake-3.17.2/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lib/libzip-1.6.1
make
make check
make install
トラブル対応
makeでエラー
/bin/sh: cmake: コマンドが見つかりません
# 無いことを確認
cmake --version
ls -la /usr/bin/cmake
ls -la /usr/local/bin/cmake
# 「事前準備」でインストールした「cmake-3.17.2」を追加
ln -s /usr/local/lib/cmake-3.17.2/bin/cmake /usr/local/bin/cmake
# 確認
cmake --version
cmake を追加します。
make checkでエラー
cmakeのバージョンが古い可能性があります。
# 確認
cmake --version
yum でインストールした cmake が使われていると思うので、既存のcmakeを消して、1つ上の「makeでエラー」の手順でいけると思います。(未確認)
configure
phpのconfigure での指定方法
--with-libzip=/usr/local/lib/libzip-1.6.1