AlmaLinux9.2にlibzip-1.10.1をソースインストール

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

覚書です。
ところどころ省いています。
実践環境で使う場合はご注意ください。

目的

PHP8.2.10をAlmaLinux9.2にインストールしようとしたところ configure で次のエラーが発生しました。

checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0... no
configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:

Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBZIP_CFLAGS
and LIBZIP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

調べていくと、PHP 5.6.0 から、--with-libzip=DIR オプションが追加されたようで、libzip 0.11 以降が必要です。
PHP7.2 までは気にしたこともなかったのですが、どうやらPHP7.3からはlibzipを含まず、必要なら自分でインストールする形になったようです。

https://www.php.net/manual/ja/zip.installation.php

ということでLibZipをインストールすることにします。

ちなみにテストサーバ用途の複数バージョン同居環境の場合、下手にdnfするよりソースからバージョン指定でインストールしておいたほうが将来的にメリットがあります。

特徴

  • ソースコードからのインストール
  • 複数バージョンの共存

特定バージョンでの開発や動作確認など開発環境での用途を目的としています。

環境

実施日2023-09-08
サーバさくらのVPS 2G
OSAlmaLinux9.2
cat /etc/redhat-release
AlmaLinux release 9.2 (Turquoise Kodkod)

libzip 1.10.1

公式サイトでダウンロードURLを確認

libzipの公式サイトのダウンロードページに行くと最新版へのリンクがあります。

お目当ては tar.gz です。
URLを控えておきます。

https://libzip.org/download/libzip-1.10.1.tar.gz

Google Chromeならリンクテキストの上で右クリックして「リンクのアドレスをコピー」で取得できます。

インストール

公式の手順はこちらです。

LIBZIP_VERSION=1.10.1
ls -la /usr/local/src
ls -la /usr/local/lib

mkdir /usr/local/src/libzip-$LIBZIP_VERSION

cd /usr/local/src/libzip-$LIBZIP_VERSION

wget https://libzip.org/download/libzip-$LIBZIP_VERSION.tar.gz

cd /usr/local/src/libzip-$LIBZIP_VERSION

tar xvzf libzip-$LIBZIP_VERSION.tar.gz

cd libzip-$LIBZIP_VERSION

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lib/libzip-$LIBZIP_VERSION

make

make install

PHPのconfigureの前に

PHPのconfigureエラーで次のように出ていると思いますが、ここに書かれているとおり PKG_CONFIG_PATH の設定が必要です。

下記を実行してから、PHPのconfigureを再開します。

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/libzip-1.10.1/lib64/pkgconfig"