PostgreSQL のソースコードをコンパイルする際に、make
を実行した際に You need to run the 'configure' program first.
というエラーが発生した。
トラブルシューティングをメモしておく。
エラーメッセージ:
root@7a46fccdd51a:/postgresql-14.7# make -j$(nproc)
You need to run the 'configure' program first. See the file
'INSTALL' for installation instructions.
Makefile:19: recipe for target 'all' failed
make: *** [all] Error 1
このエラーは、PostgreSQL のソースコードディレクトリに configure
スクリプトが実行されていないために発生する。
configure
を実行するconfigure
スクリプトは PostgreSQL のビルド環境をセットアップするために必要である。まず、PostgreSQL のソースディレクトリに移動し、以下のコマンドを実行する。
./configure
もし configure
実行時に追加のオプションが必要な場合は、以下のように実行する。
./configure --prefix=/usr/local/pgsql --enable-debug --enable-cassert
また、利用可能なオプションを確認する場合は、次のコマンドを実行する。
./configure --help
make
を再実行configure
が正常に完了したら、以下のコマンドでビルドを実行する。
make -j$(nproc)
これにより、利用可能な CPU コア数を活用して高速にコンパイルが行われる。
make install
を実行(必要な場合)make
が成功したら、次に PostgreSQL をインストールする。
make install
これにより、指定したプレフィックスディレクトリ(デフォルトは /usr/local/pgsql
)に PostgreSQL がインストールされる。
configure
実行時の追加の問題と対処法configure: command not found
configure
スクリプトが存在しないまず、configure
スクリプトが存在するか確認する。
ls -l configure
もし configure
が見つからない場合、autoconf
を実行して再生成する。
autoreconf -fi
./configure
それでもエラーが発生する場合は、必要なパッケージがインストールされているか確認する。
apt update && apt install -y build-essential libreadline-dev zlib1g-dev flex bison
yum groupinstall -y "Development Tools"
yum install -y readline-devel zlib-devel flex bison
configure
実行時にライブラリのエラーが発生するエラーメッセージ例:
configure: error: readline library not found
不足しているライブラリをインストールする。
apt install -y libreadline-dev
または
yum install -y readline-devel
PostgreSQL のコンパイル時に make
が失敗する原因には、configure
が未実行であったり、必要なライブラリが足りていないことに起因するものがある。本記事で紹介した手順を実行することで、以下の問題を解決できるかもしれない。
configure
を実行し、環境を適切に設定するmake
を実行して PostgreSQL をビルドするmake install
を実行してインストールするconfigure
の実行時に発生する問題(ライブラリ不足など)を適切に解決する関連書籍