libzip-1.5.2をソースインストール / Rocky Linux9.4 on さくらのVPS

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

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

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

目的

PHP7.3.33をRocky Linux9.4にインストールしようとしたところ configure で次のエラーが発生しました。

checking size of off_t... 0
configure: error: off_t undefined; check your library configuration
  • PHP 7.3.33 には libzip-1.5.2 は不要
  • PHP 7.3.33 には libzip 1.10.1 が使用できる (使用している)
  • PHP 8系 以上には libzip 1.10.1 が使用できる (使用している)
  • PHP 7.3系 以下は「export LD_LIBRARY_PATH」を行っているか
  • 「export PKG_CONFIG_PATH」を行っているか
  • configure に「--with-libzip=/usr/local/lib/libzip-1.10.1」が含まれているか
libzip-1.10.1をソースインストール / Rocky Linux9.4 on さくらのVPS

ということで、せっかくこのページを作成したので libzip-1.5.2 は不要になりましたが残しておくこととします。

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

特徴

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

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

環境

実施日2024-05-17
サーバさくらのVPS 2G
OSRocky Linux9.4
cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)

libzip 1.5.2

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

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

ですが今回欲しいのは過去バージョンです。
過去バージョンは Github から入手します。

お目当ては tar.gz です。
URLを控えておきます。
「rel-1-5-2」の「tar.zg」です。

https://github.com/nih-at/libzip/archive/refs/tags/rel-1-5-1.tar.gz

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

インストール

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

LIBZIP_VERSION=1.5.2
LIBZIP_REL_VERSION=1-5-2
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://github.com/nih-at/libzip/archive/refs/tags/rel-$LIBZIP_REL_VERSION.tar.gz -O libzip-$LIBZIP_VERSION.tar.gz

tar xvzf libzip-$LIBZIP_VERSION.tar.gz

mv libzip-rel-$LIBZIP_REL_VERSION libzip-$LIBZIP_VERSION

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.5.2/lib64/pkgconfig"

PHP 7.3 系以下のバージョンの場合

export LD_LIBRARY_PATH=/usr/local/lib/libzip-1.5.2/lib64:$LD_LIBRARY_PATH