インストール: GNU Autoconf | UNIX系OSのパッケージ開発の基盤ソフト

プログラムをSVNやGitのリポジトリーからビルドする際に,configure.ac
からconfigure
ファイルの生成時に必要なGNU Autoconfをソースコードからインストールする。
GNU AutoconfはAutotoolsというUNIX系OSでソフトウェアパッケージ開発を行うためのフレームワークの1種であり,autoconf, automake, libtoolsの3大ソフトウェアの一つである。
ソースコードからソフトウェアをインストール際にほぼ必須となる。システムにインストールされているGNU Autoconfはバージョンが古いこともあるので,最新のソフトウェアをソースコードからインストールする際に,新しいGNU Autoconfが必要な場合がある。
項目 | 説明 |
---|---|
配布元 | |
リポジトリー | |
手順 | |
依存情報 | |
依存先 (必須) | |
依存先 (任意) | |
依存元 |
sh -eux <<-"EOT"
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
PKG=autoconf VER=2.69b TAG=v$VER PKG_VER=$PKG${VER:+-$VER}
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"
if (command -v git && command -v autoconf) >/dev/null; then
[ -e $PKG ] || git clone --depth 1 git://git.sv.gnu.org/autoconf $PKG
cd $PKG
git fetch --depth 1 ${TAG:+origin tag $TAG}
git checkout -f ${TAG:-master}
git clean -dfX
autoreconf -i
else
[ -e $PKG_VER ] || wget https://ftp.gnu.org/gnu/$PKG/$PKG_VER.tar.gz
tar -xf $PKG_VER.*
cd $PKG_VER
fi
make -kj $J distclean clean || :
./configure --prefix="$LOCAL/stow/$PKG_VER"
make -j $J
make -j $J check
make -j $J install
cd "$LOCAL/stow"
echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow -D
stow $PKG_VER
EOT
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2020-08-18 | 2.69b | Ubuntu 20.04 | GNU Make 4.2.1, GCC 9.3.0, Perl 5.32.0, M4 1.4.18 Help2man 1.47.8, Texinfo 6.6, Automake 1.16.1 |
リポジトリーからのautoconfのビルドにはautoconf自身が必要になるので,初回はリリースtar.gzからインストールする。
make check
のテストが523個あり,テストの完了に20-30分ほどかかったので注意する。
GNU Autoconfのビルドに着手したのは2019年の8月頃だったのだが,make check
が失敗したり思っていた以上に難しくて時間がかかった。
Perlをソースコードからインストールして,Perlを使用しているTexinfoもインストールし直したのをきっかけにうまくインストールできたように思う。
当初,2.69bのインストール時にmake
で以下のエラーが出た。
MiscXS.c: loadable library and perl binaries are mismatched (got handshake key 0xde00080, needed 0xcd00080)
Perlのバイナリーがあっていないようだ。
どうやらTexinfoのMiscXS.soのPerlのモジュールの問題のようだった。OSをUbuntu 18.04から20.04に更新したり,Perlを自前でビルドしたのもあり,Texinfoをインストールし直すと解決した。