/ 中存储网

SUSE Linux ntp 升级报错(MAKE [1]:*** 【all】Error 2)

2014-12-06 00:00:00 来源:中存储网

NTP升级,升级RedHat时很顺利,升级完成后会默认覆盖掉原有文件,重启服务后,使用ntpd --version查看验证上即可,可在升级SUSE Linux时却发现错误频频,以下是我再升级时遇到的一些问题,小结之后希望有和我遇到同样错误的亲们可以作为参考:

一. 由于NTP包有漏洞,需下载4.2.7之后版本,网络下ntp-dev-4.2.7p26.tar.gz
 1.解压
#  tar –zxf  ntp-dev-4.2.7p26.tar.gz –C /usr/src
 2.编译
#  cd/usr/src/ntp-dev-4.2.7p26
 #./configure --prefix=/usr/local/ntp-dev-4.2.7p26--enable-all-clocks --enable-parse-clocks
如果生成Makefile文件时报错,提示信息为usge –-host skip在./configure 参数后添加--host=x86_64,这个参数(x86_64)来源于uname –m后得出的结果

3. #make 如果make报错,信息如下
ntp_loopfilter.c: In function ‘local_clock’:
ntp_loopfilter.c:516: error: ‘MOD_NANO’ undeclared (first use in this function)
 ntp_loopfilter.c:516: error: (Each undeclaredidentifier is reported only once
 ntp_loopfilter.c:516: error: for each function itappears in.)
 make[3]: *** [ntp_loopfilter.o] Error 1
 make[3]: Leaving directory`/usr/src/ntp-dev-4.2.7p26/ntpd'
 make[2]: *** [all] Error 2
 make[2]: Leaving directory`/usr/src/ntp-dev-4.2.7p26/ntpd'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory `/usr/src/ntp-dev-4.2.7p26'
 make: *** [all] Error 2

解决方法如下:
vim include/ntp_syscall.h.patch

 --- ntp-4.2.4p7/include/ntp_syscall.h
 +++ ntp-4.2.4p7/include/ntp_syscall.h
 @@ -14,5+14,13 @@
 #include<sys/timex.h>
 #endif
 +#if defined(ADJ_NANO) && !defined(MOD_NANO)
 +#define MOD_NANO ADJ_NANO
 +#endif
 +
 +#if defined(ADJ_TAI) && !defined(MOD_TAI)
 +#define MOD_TAI ADJ_TAI
 +#endif
 +
 #ifndefNTP_SYSCALLS_LIBC
 #ifdefNTP_SYSCALLS_STD

 # cd include
 # patch -p0 < ntp_syscall.h.patch
 patch file to:ntp_syscall.h
 # cd ..
 # make && make install
编译安装OK
 4.生成环境变量
# echo '#ntp seting' >>  /etc/profile.local
 # echo 'export PATH=$PATH:/usr/local/ntp/bin'>>  /etc/profile.local
 #echo /usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p/tmp/ntpd.pid >> /etc/profile.local
 # source /etc/profile.local
 5 验证
# ntpd –version
版本已升级为4.2.7p26

ps:

vim include/ntp_syscall.h.patch ,里的内容有的需要缩进,以#开关内容须缩进