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
OSCentOS 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