Solaris 10 源码安装编译出错的一种处理办法
作者:田逸( [email][email protected][/email] from
 
几天前,在solaris 10下安装nagiso的插件nagios-plus时,在编译(执行make)命令是,总是不能成功,报错信息如下:
make: Fatal error: Command failed for target `all-recursive'
开始以为是软件包下载得不对,再去官方网站 [url]www.nagios.org[/url]下载一回,执行./configure --prefix=/usr/local/nagios 顺利通过,再执行 make命令编译,还是不成功。想一下:nagios程序本身也是用源码通过配置 ./configure –prefix=/usr/local/nagios 、编译 make 、安装make install这三步完成的呀,是什么原因呢?
 
先拿这个报错信息在google搜索一下,希望能找出类似的信息。倒是有些相似的,云make版本兼容性问题。到[url]www.gnu.org[/url]下载一个新的make源码文件make-3.81.tar.gz,然后把它安装到/usr/local/make目录。现在系统上有2个编译工具make,我打算用新的gnu make替换系统自带的那个。先把系统自带的make做个备份,以便万一出现意外能够恢复;其操作如下:
mv  /usr/ccs/bin/make  /usr/local/bin/make.orig
现在再把后来安装的gnu链接到/usr/ucc/bin目录 ln –s /usr/local/make/bin/make /usr/ccs/bin/make ,这样就不必更改环境变量/etc/profile的路径了。手动执行一下 make –v ,看输出的版本号是否正确。
 
现在再回到nagios-plus插件这个软件安装的问题上来,进入安装文件所在的目录,执行编译命令 make ,还是不能通过。执行make clean清理一下环境,重新来一次配置 ./configure –prefix=/usr/local/nagios ,执行编译 make ,嘿嘿,这次成功了!安装 make install,全部执行完毕后,在目录/usr/local/nagios目录看是否存在目录libexec,如果存在这个目录,表明安装成功。
 
GNU为用户提供了丰富的软件资源,为开源运动做出了巨大的贡献。使用GNU软件,将近一步摆脱某些厂商的束缚。把非gnu的包替换成gnu的包,可使用户获得更大的自由度。