GNU Libtoolのインストール
GNU Autoconfとともに,ソフトウェアのリポジトリーからのビルドで必要な場合があるGNU Libtoolをソースコードからインストールする。
項目 | 説明 |
---|---|
配布元 | |
リポジトリー | libtool.git – GNU Libtool |
手順 | README.md – libtool.git – GNU Libtool |
依存情報 | |
依存先 (必須) | Make (GNU Make) |
依存先 (任意) | リポジトリーからのビルドに必要: Autoconf, Automake, Help2man, XZ |
依存元 | APR |
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2019-03-31 | 2.4.6 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 7.4.0 |
配布用のtarファイルからのビルドは問題なく成功した。しかし,リポジトリーからのビルドは問題が起き,結局解決できなかった。解決できなかったところを記録として記す。
まず,./bootstrap
の実行時に以下のエラーが出た。
error: Server does not allow request for unadvertised object 342d9f09f2bab9a0380faa88787147bac4d48278 Fetched in submodule path 'gnulib', but it did not contain 342d9f09f2bab9a0380faa88787147bac4d48278. Direct fetching of that commit failed. bootstrap: running: gnulib/gnulib-tool --no-changelog --avoid=dummy --libtool --macro-prefix=GL --aux-dir=build-aux --m4-base=m4 --local-dir=gl --symlink --import announce-gen bootstrap... gnulib/gnulib-tool: *** minimum supported autoconf version is 2.63. Try adding AC_PREREQ([2.63]) to your configure.ac. gnulib/gnulib-tool: *** Stop.
これは,GNU M4のインストール時に発生したものと同じ原因のエラーだ。そのため,./bootstrap
実行前に必要なコミットが含まれるように,リポジトリーの履歴をダウンロードすることで対応できた。
具体的には,git submodule upadte --depth 1
の指定でダウンロードできていない342d9f09f2bab9a0380faa88787147bac4d48278
のコミットは2015-01-15のコミットだ。そのため,git submodule
に失敗後,git fetch --shalow-since 2015-01-15
で該当コミットの日付までのデータをダウンロードして対処した。
問題はmake check時のテストの失敗だ。2.4.6をリポジトリーからビルド後,make checkで以下のテストが失敗した。
14: verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIRS FAILED (libtoolize.at:782)
期待される最後の以下の1文が出力されていないのが失敗の理由な模様だ。
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
tests/testsuite.dir/014に失敗した試験のログなどが出力される。
しかし,この解決策がわからず,リポジトリーからのビルドを断念した。そのため,if false command -v git
でgit経由ではビルドしないようにしている。
tarファイルからのインストールではmake checkもパスしてインストールできた。tarファイルからインストールしても実用上は問題ない。ただし,気持ち悪いので,解決策がわかり次第,手順を更新する。