AlmaLinux9.2にLibGD2.3.3をソースインストール

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

目的

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

checking whether to enable JIS-mapped Japanese font support in GD... no
checking for gdlib >= 2.1.0... no
configure: error: Package requirements (gdlib >= 2.1.0) were not met:

Package 'gdlib', 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 GDLIB_CFLAGS
and GDLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

PHP7.4.0 からLibGDは同梱されなくなりました。

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

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

特徴

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

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

環境

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

事前準備

ダウンロードURLの確認

Githubから入手します。

https://github.com/libgd/libgd/tags

2023-09-08時点では「2.3.3」が最新のようですのでこちらをインストールしていきます。

https://github.com/libgd/libgd/releases/tag/gd-2.3.3

こちらのページの一番下「Source code (tar.gz)」がお目当てです。

URLを控えておきます。

https://github.com/libgd/libgd/archive/refs/tags/gd-2.3.3.tar.gz

インストール

LIBGD_VERSION=2.3.3
ls -la /usr/local/src
ls -la /usr/local/lib

mkdir /usr/local/src/gd-$LIBGD_VERSION

cd /usr/local/src/gd-$LIBGD_VERSION

wget https://github.com/libgd/libgd/releases/download/gd-$LIBGD_VERSION/libgd-$LIBGD_VERSION.tar.gz

tar xvzf libgd-$LIBGD_VERSION.tar.gz

cd libgd-$LIBGD_VERSION

./configure --prefix=/usr/local/lib/libgd-$LIBGD_VERSION

configure の最後のほうに▼の表示が出てきます。

** Configuration summary for libgd 2.3.3:

   Support for gd/gd2 images:        no
   Support for Zlib:                 yes
   Support for PNG library:          no
   Support for JPEG library:         no
   Support for WebP library:         no
   Support for HEIF library:         no
   Support for AVIF library:         no
   Support for TIFF library:         no
   Support for Freetype 2.x library: no
   Support for Fontconfig library:   no
   Support for Xpm library:          no
   Support for liq library:          no
   Support for complex text:         no
   Support for pthreads:             yes

「no」が付いてるところはサポートされないので、このままでは PNG も使えないことになります。
PHPのGDにはPNGサポートは必須です。
他にも、WebPとかも欲しいところです。

# 必要なものだけでOK
dnf install libjpeg-devel
dnf install libpng-devel
dnf install libwebp-devel
dnf install libXpm-devel
dnf install freetype-devel

# 追加したのでもう一度
./configure --prefix=/usr/local/lib/libgd-$LIBGD_VERSION

次のようになりました。

** Configuration summary for libgd 2.3.3:

   Support for gd/gd2 images:        no
   Support for Zlib:                 yes
   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for WebP library:         yes
   Support for HEIF library:         no
   Support for AVIF library:         no
   Support for TIFF library:         no
   Support for Freetype 2.x library: yes
   Support for Fontconfig library:   no
   Support for Xpm library:          yes
   Support for liq library:          no
   Support for complex text:         no
   Support for pthreads:             yes
make
make install

PHPのconfigureの前に

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

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

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/libgd-2.3.3/lib/pkgconfig"