CentOS Stream 8にlibzip-1.8.0をソースインストール
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
覚書です。
ところどころ省いています。
実践環境で使う場合はご注意ください。
目的
PHP8.0.11をCentOS Stream 8にインストールしようとしたところ 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.
調べていくと、PHP 5.6.0 から、--with-libzip=DIR オプションが追加されたようで、libzip 0.11 以降が必要です。
PHP7.2 までは気にしたこともなかったのですが、どうやらPHP7.3からはlibzipを含まず、必要なら自分でインストールする形になったようです。
https://www.php.net/manual/ja/zip.installation.php
特徴
- ソースコードからのインストール
- 複数バージョンの共存
特定バージョンでの開発や動作確認など開発環境での用途を目的としています。
環境
実施日 | 2021-09-25 |
サーバ | さくらのVPS 2G |
OS | CentOS Stream 8 |
cat /etc/redhat-release
CentOS Stream release 8
libzip 1.8.0
公式サイトでダウンロードURLを確認
libzipの公式サイトのダウンロードページに行くと最新版へのリンクがあります。
お目当ては tar.gz です。
URLを控えておきます。
https://libzip.org/download/libzip-1.8.0.tar.gz
Google Chromeならリンクテキストの上で右クリックして「リンクのアドレスをコピー」で取得できます。
インストール
公式の手順はこちらです。
LIBZIP_VERSION=1.8.0
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 check
make install
トラブル対応
古いバージョンのCentOSで行っている場合は cmake でエラーとか色々でると思います。
下記の記事ではいろいろトラブル対応をあるのでご覧ください。
PHPのconfigureの前に
PHPのconfigureエラーで次のように出ていると思いますが、ここに書かれているとおり PKG_CONFIG_PATH の設定が必要です。
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.
下記を実行してから、PHPのconfigureを再開します。
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/libzip-1.8.0/lib64/pkgconfig"
phpのconfigure には次のように指定を加えます。
--with-libzip=/usr/local/lib/libzip-1.8.0