pgpool インストール時に configure: error: header file <libmemcached/memcached.h> is required for memcached support
背景
pgpool-4.0.1 を検証していたら pgpool-4.0.2 が出たのでインストールしてみたところ表題のエラーとなりました。
エラー発生時のインストール手順
pgpoolのインストールはソースから行いますが、インメモリクエリキャッシュを使いたいのでlibmemcachedをインストールします。
# yum install libmemcached
以下の手順で configure してみると WARNING がでます。
# cd /usr/local/src # curl -L 'http://www.pgpool.net/download.php?f=pgpool-II-4.0.2.tar.gz' -o pgpool-II-4.0.2.tar.gz # tar xzf pgpool-II-4.0.2.tar.gz # cd pgpool-II-4.0.2 # ./configure --with-pgsql=/usr/pgsql-9.6 --with-openssl --with-libmemcached=/usr/lib64/libmemcached.so.11 ~略~ configure: WARNING: unrecognized options: --with-libmemcached
--with-libmemcached
オプションは非サポートとなり、 --with-memcached
となったようです。
なお、ビルドそのものは可能でした。
オプションを変更して再チャレンジしてみると前述のエラーとなりました。
# ./configure --with-pgsql=/usr/pgsql-9.6 --with-openssl --with-libmemcached=/usr/lib64/libmemcached.so.11 ~略~ checking libmemcached/memcached.h usability... no checking libmemcached/memcached.h presence... yes configure: WARNING: libmemcached/memcached.h: present but cannot be compiled configure: WARNING: libmemcached/memcached.h: check for missing prerequisite headers? configure: WARNING: libmemcached/memcached.h: see the Autoconf documentation configure: WARNING: libmemcached/memcached.h: section "Present But Cannot Be Compiled" configure: WARNING: libmemcached/memcached.h: proceeding with the compiler's result configure: WARNING: ## ---------------------------------------- ## configure: WARNING: ## Report this to pgpool-hackers@pgpool.net ## configure: WARNING: ## ---------------------------------------- ## checking for libmemcached/memcached.h... no configure: error: header file <libmemcached/memcached.h> is required for memcached support
why?
メッセージの通り libmemcached/memcached.h が存在しないためのようでした。
yum でインストールしたからでしょうか。バイナリのみがサーバー上に存在しています。
# updatedb && locate libmemcached /usr/lib64/libmemcached.so.11 /usr/lib64/libmemcached.so.11.0.0 /usr/lib64/libmemcachedprotocol.so.0 /usr/lib64/libmemcachedprotocol.so.0.0.0 /usr/lib64/libmemcachedutil.so.2 /usr/lib64/libmemcachedutil.so.2.0.0 /usr/share/doc/libmemcached-1.0.16 /usr/share/doc/libmemcached-1.0.16/AUTHORS /usr/share/doc/libmemcached-1.0.16/COPYING /usr/share/doc/libmemcached-1.0.16/ChangeLog /usr/share/doc/libmemcached-1.0.16/README /usr/share/doc/libmemcached-1.0.16/THANKS /usr/share/doc/libmemcached-1.0.16/TODO
libmemcached をソースでインストールしてみる
以下の手順で libmemcached をソースからインストールしてみます。
# curl -L https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz -o libmemcached-1.0.18.tar.gz # tar xzf libmemcached-1.0.18.tar.gz # cd libmemcached-1.0.18 # ./configure # make # make install
すると、 libmemcached は /usr/local/include/libmemcached にインストールされます。
# updatedb && locate memcached.h /usr/local/include/libmemcached/memcached.h ~略~
再度 pgpool をビルド
先程のエラーメッセージでは configure: error: header file <libmemcached/memcached.h>
ということでしたが、
まさかヘッダーファイルのみをオプションに指定するわけではないだろうということで、ディレクトリを指定してみるとビルドが通りました!
# ./configure --with-pgsql=/usr/pgsql-9.6 --with-openssl --with-memcached=/usr/local/include/libmemcached # make && make install
こういうものなんですかね。
とりあえずこれで進めてみます。