この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:5
ページ更新者:T
更新日時:2026-06-11 07:12:00

タイトル: ./configure
SEOタイトル: Linux ./configure 完全ガイド - GNU Autotools / --prefix / --enable / --with

この記事の要点
  • ./configure は GNU Autotools が生成するシェルスクリプト。OS 環境を調査して Makefile を作成
  • 基本フロー: ./configuremakesudo make install
  • 主要オプション: --prefix=/usr/local インストール先 / --enable-FEATURE 機能有効化 / --with-PACKAGE 依存ライブラリ指定
  • 依存パッケージ不足エラーは configure: error: ... で出る → 該当 dev パッケージを追加
  • ./configure --help でオプション全リスト確認。config.log がエラー調査の鍵

./configure とは

./configureGNU Autotools(autoconf / automake)が生成する設定スクリプトです。ソースコードから OSS をビルドする際、お使いの環境(OS、コンパイラ、ライブラリの有無)を調査して、適切な Makefile を生成します。

# 典型的なビルド3手順
tar xzf nginx-1.27.0.tar.gz
cd nginx-1.27.0

./configure --prefix=/usr/local/nginx     # 1. Makefile 生成
make                                       # 2. コンパイル
sudo make install                          # 3. インストール

主要オプション

オプション役割デフォルト
--prefix=DIRインストール先ベースディレクトリ/usr/local
--bindir=DIR実行ファイル配置先$prefix/bin
--libdir=DIRライブラリ配置先$prefix/lib
--sysconfdir=DIR設定ファイル配置先$prefix/etc
--enable-FEATURE機能を有効化製品依存
--disable-FEATURE機能を無効化製品依存
--with-PACKAGE依存ライブラリのパス指定自動検出
--without-PACKAGE依存ライブラリを使わない自動検出
--host=TYPEクロスコンパイル先自分の OS
CC=gcc CFLAGS=-O2環境変数で渡す環境変数

典型的な使用例

nginx をビルド

./configure \
    --prefix=/usr/local/nginx \
    --sbin-path=/usr/local/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --pid-path=/var/run/nginx.pid \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_gzip_static_module \
    --with-pcre \
    --with-openssl=/usr/local/openssl-3.0

Python をビルド(pip TLS エラー対策)

./configure \
    --prefix=/usr/local \
    --enable-optimizations \
    --enable-shared \
    --with-openssl=/usr/local/openssl \
    LDFLAGS="-Wl,-rpath,/usr/local/openssl/lib"

make -j$(nproc)
sudo make altinstall      # python3.11 として共存インストール

PHP をビルド

./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/etc/php \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-zlib \
    --with-curl \
    --with-openssl \
    --enable-mbstring \
    --enable-intl

./configure が裏で行うこと

./configure はテストコードを書いてコンパイルしては結果を見るを繰り返し、環境を調査します。生成物:

ファイル役割
Makefileビルドルール
config.h機能フラグマクロ定義(HAVE_OPENSSL 等)
config.status再生成スクリプト
config.log★ 検査の全ログ。エラー調査の必読

configure エラーの典型

依存ライブラリ不足

configure: error: zlib library not found.
You can disable zlib support by adding --without-zlib.

configure: error: OpenSSL >= 1.1.1 not found.

checking for libxml-2.0 >= 2.7.6... configure: error: Package requirements
(libxml-2.0 >= 2.7.6) were not met:
No package 'libxml-2.0' found

対処: 開発ヘッダ付きパッケージ(-dev / -devel)を追加:

# Debian / Ubuntu
sudo apt install zlib1g-dev libssl-dev libxml2-dev pkg-config

# RHEL / CentOS / Rocky
sudo dnf install zlib-devel openssl-devel libxml2-devel pkgconfig

# Alpine
sudo apk add zlib-dev openssl-dev libxml2-dev pkgconfig

# 一括で代表的な build essentials
# Debian
sudo apt install build-essential
# RHEL
sudo dnf groupinstall "Development Tools"

config.log でエラー深掘り

# エラー直近を表示
tail -100 config.log

# どのテストで失敗したか
grep -B 5 -A 5 "error" config.log | less

# 「configure: error: …」の前後を見る
grep -B 20 "configure: error" config.log

並列ビルドと再ビルド

# 並列ビルド(CPU コア数を活用)
make -j$(nproc)            # Linux
make -j$(sysctl -n hw.ncpu)  # macOS

# クリーン
make clean                 # オブジェクトファイル削除
make distclean             # configure の生成物も削除

# configure をやり直し
./configure --prefix=/usr/local --enable-debug
make

# config.status で同じ条件で再 configure
./config.status --recheck

configure がない場合

git clone した直後のリポジトリには configure が無く、configure.acMakefile.am しか無いことがあります。autoreconf で生成:

# Autotools 必要
sudo apt install autoconf automake libtool

# configure を生成
autoreconf -i
# または autogen.sh があれば
./autogen.sh

# 以降は通常通り
./configure --prefix=/usr/local
make
sudo make install

configure vs CMake / Meson

ビルドシステムconfigure コマンド特徴
GNU Autotools./configure古典的、UNIX 系で汎用
CMakecmake -B build -DCMAKE_INSTALL_PREFIX=/opt多プラットフォーム対応、IDE 連携
Mesonmeson setup build --prefix=/usr/localPython 製、高速
Cargo (Rust)cargo build --releaseconfigure 不要
Gogo buildconfigure 不要

FAQ

Q: --prefix を後から変えたい
A: make distclean → 再度 ./configure --prefix=新パス → make → make install。makefile を直接編集してはいけません。

Q: sudo make install で何がどこに入ったか
A: install ターゲットを見ると分かります。または checkinstall ツールで deb / rpm パッケージ化してインストールすると、後でアンインストール可能。

Q: 同じ製品の異なるバージョンを共存させたい
A: --prefix=/opt/myapp-1.5 等で各バージョン別ディレクトリにし、/etc/alternatives や シンボリックリンク /usr/local/bin/myapp で切り替え。Python は make altinstall も活用。