ntpd 4.2.2p2 のインストールに失敗する

REPORT


ntpd 4.2.2p2 のインストール作業で

Linux Slackware 10.2 上にて ntpd 4.2.2p2 を稼動させようと思ったのですけど、なんだかコンパイルエラーとなってしまいました。

今までに EZ-NET: Slackware 10.2 で NTP サーバを構築する にて ntpd 4.2.0 をインストールしたことがあったので、その手順で上手く行くだろうと思っていたのですけど、今回 ntpd 4.2.2p2 でそれをやってみると "./configure" は通るものの、"make" によるコンパイルの時点で次のようなエラーが発生してしまうのでした。

socket.c:11:20: config.h: No such file or directory

make[2]: *** [socket.o] Error 1

make[2]: Leaving directory `/usr/local/src/ntp-4.2.2p2/sntp'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/usr/local/src/ntp-4.2.2p2'

make: *** [all] Error 2

なんだか "ntp-4.2.2p2/sntp" ディレクトリ内で "config.h" ファイルが見つからないという感じでしょうか…。探してみると "config.h" というファイルはとりあえず "ntp-4.2.2p2/" ディレクトリに 1 つあるだけで、"sntp/" を含む他のサブディレクトリ内には存在していない感じでした。

そこで、ただの勘で何の根拠もないのですけど、"sntp/" ディレクトリ内にも親ディレクトリの "config.h" を参照することができるように、次のようにしてシンボリックリンクを作成してみることにしました。

ln -s ../config.h sntp/

そうして改めて "make" を実行してみると、無事にコンパイルを完了することができました。そんな思いつきな感じの対処ではあるものの、"make check"、"make install" と実行して、実際に ntpd を起動させてもみましたけど、特に問題なく動作するようでした。

いくら "config.h" を強引に参照するように設定したからといって、もしそれが不適切なものだった場合には、コンパイルが通るということは非常に稀でしょうから恐らくはこれで大丈夫ではないかと思います。

 

このようなテキトウな対処が不安な場合、Slackware 10.2 では ntpd 2.2.0 を利用すると、問題なくコンパイルすることができるようでした。また、Slackware 7.1 では肝心の ntpd のコンパイル中に "ntp_io.o" の作成でエラーとなってしまうようですけど、この場合は ntp 4.1.2 を利用すれば大丈夫なようです。