help2manのインストール

コマンドの–helpと–versionオプションの出力内容から,簡易的なマニュアルページを生成するhelp2manをソースコードからインストールする。

GNU Texinfoのように,リポジトリーからパッケージをビルドする際に,help2manを必要とするソフトが存在する。その際の依存関係のためにインストールした。

インストール情報
項目説明
配布元
リポジトリー
手順
依存情報
依存先 (必須)
依存先 (任意)Autoconf: リポジトリーからのビルドに必要。
Automake:リポジトリーからのビルドに必要。
po4a-translate: リポジトリーからのビルドに必要。
依存元GNU Texinfo
インストール手順
sh -eux <<-"EOT"
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
PKG=help2man VER=1.47.8 TAG=v$VER
mkdir -p "$LOCAL/src"; cd "$LOCAL/src"
  
# if command -v git >/dev/null; then
if false; then
  [ -e $PKG ] || git clone --depth 1 https://salsa.debian.org/bod/help2man.git $PKG
  cd $PKG
  git fetch --depth 1 origin tag $TAG
  git checkout $TAG
  automake -a || :
  autoreconf -i
else  
  [ -e $PKG-$VER ] || wget https://ftp.gnu.org/gnu/$PKG/$PKG-$VER.tar.xz
  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 install
cd "$LOCAL/stow"
stow -S $PKG-$VER -D $PKG-[0-9]*
EOT
インストール例
日付バージョンOS依存関係
2019-03-181.47.8Ubuntu 18.04GNU Make 4.2.1, GCC 7.4.0

リポジトリーからのビルドには成功していない。リリース用のtar.xzファイルからインストールできた。

時間ができたときに,リポジトリーからのビルドに再挑戦する。

リポジトリーからのビルドを試みた際のメモを以下に記載しておく。

configureで以下のエラー。

configure: error: cannot find install-sh, install.sh, or shtool in build-aux "."/build-aux

automake -a || :を実行して,build-aux/install-shを生成すると,上記エラーは解決した。ただし,make実行時に以下のエラーが出る。

lang=de; \
make help2man bindtextdomain.so \
    localetmp/$lang/LC_MESSAGES/help2man.mo help2man.$lang.h2m; \
LD_PRELOAD=./bindtextdomain.so LOCALEDIR=localetmp TEXTDOMAIN=help2man \
    ./help2man --include=$(build-aux/find-vpath   help2man.$lang.h2m) \
        --output=help2man.de.1 ./help2man
make[1]: Entering directory '/home/senooken/.local/src/help2man'
make[1]: 'help2man' is up to date.
make[1]: 'bindtextdomain.so' is up to date.
lang=de; \
build-aux/mkinstalldirs localetmp/$lang/LC_MESSAGES && \
/usr/bin/install -c -m 644 po/$lang.gmo localetmp/$lang/LC_MESSAGES/help2man.mo
/bin/bash: line 1: build-aux/mkinstalldirs: No such file or directory
make[1]: *** [Makefile:161: localetmp/de/LC_MESSAGES/help2man.mo] Error 127
make[1]: Leaving directory '/home/senooken/.local/src/help2man'
help2man: can't open `help2man.de.h2m' (No such file or directory)
make: *** [Makefile:168: help2man.de.1] Error 2

mkinsalldirsがないのが問題な模様。少し調べたら,このコマンドはGNU gettextに付属するらしい。

いや,GNU gettextは無関係か?

./debian/rules maint-prepを最初に実行。すると以下のエラー。

build-aux/missing po4a-translate -f texinfo -m ./help2man.texi \
    -p po-texi/de.po -l help2man-de.texi -k 60
build-aux/missing: 81: build-aux/missing: po4a-translate: not found
WARNING: 'po4a-translate' is missing on your system.
         You might have modified some files without having the proper
         tools for further handling them.  Check the 'README' file, it
         often tells you about the needed prerequisites for installing
         this package.  You may also peek at any GNU archive site, in
         case some other package contains this missing 'po4a-translate' program.
Makefile:197: recipe for target 'help2man-de.texi' failed
make[1]: *** [help2man-de.texi] Error 127

たぶん,po4a-translateが必要。これのインストールが面倒くさい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です