如何在CentOS 5上安装Net :: Arping?

时间:2011-10-23 11:03:04

标签: linux perl centos nagios

我曾尝试使用cpan安装Net :: Arping软件包,因为错误我不能这样做...

CPAN.pm: Going to build R/RI/RIIKI/Net-Arping-0.02.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Net::Arping
cp Arping.pm blib/lib/Net/Arping.pm
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap             /usr/lib/perl5/5.8.8/ExtUtils/typemap  Arping.xs > Arping.xsc && mv Arping.xsc Arping.c
Please specify prototyping behavior for Arping.xs (see perlxs manual)
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-    statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -    I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-    protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"0.02\" -    DXS_VERSION=\"0.02\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"  -    D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H Arping.c
Arping.xs: In function ‘XS_Net__Arping_send_arp’:
Arping.xs:116: warning: implicit declaration of function ‘libnet_name_resolve’
Arping.xs:124: warning: passing argument 1 of ‘libnet_select_device’ from incompatible     pointer type
Arping.xs:124: error: too many arguments to function ‘libnet_select_device’
Arping.xs:130: warning: implicit declaration of function ‘libnet_open_link_interface’
Arping.xs:130: warning: assignment makes pointer from integer without a cast
Arping.xs:135: warning: implicit declaration of function ‘libnet_get_ipaddr’
Arping.xs:140: error: ‘LIBNET_IP_H’ undeclared (first use in this function)
Arping.xs:140: error: (Each undeclared identifier is reported only once
Arping.xs:140: error: for each function it appears in.)
Arping.xs:143: warning: implicit declaration of function ‘libnet_init_packet’
Arping.xs:148: warning: passing argument 1 of ‘libnet_get_hwaddr’ from incompatible pointer type
Arping.xs:148: error: too many arguments to function ‘libnet_get_hwaddr’
Arping.xs:148: warning: assignment from incompatible pointer type
Arping.xs:156: warning: passing argument 6 of ‘libnet_build_ethernet’ from incompatible pointer type
Arping.xs:156: error: too few arguments to function ‘libnet_build_ethernet’
Arping.xs:161: warning: passing argument 12 of ‘libnet_build_arp’ from incompatible pointer type
Arping.xs:161: error: too few arguments to function ‘libnet_build_arp’
Arping.xs:166: warning: pointer targets in passing argument 1 of ‘pcap_open_live’ differ in signedness
Arping.xs:185: warning: implicit declaration of function ‘libnet_write_link_layer’
Arping.xs:196: warning: implicit declaration of function ‘libnet_close_link_interface’
Arping.xs:197: warning: implicit declaration of function ‘libnet_destroy_packet’
make: *** [Arping.o] Error 1
  /usr/bin/make  -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible

我需要这个perl模块用于Nagios的check_arping脚本。

其他一些信息:

[root@atlantis build]# uname -a
Linux atlantis 2.6.18-238.9.1.el5xen #1 SMP Tue Apr 12 18:53:56 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@atlantis build]# rpm -qa | grep libnet
libnet-1.1.2.1-2.rf
[root@atlantis build]# rpm -qa | grep libpcap
libpcap-devel-0.9.4-15.el5
libpcap-0.9.4-15.el5
libpcap-0.9.4-15.el5
libpcap-devel-0.9.4-15.el5
[root@atlantis build]#

正如您所看到的,我已经安装了libnet,libpcap并且仍然存在问题......是否有人知道如何解决此问题?

1 个答案:

答案 0 :(得分:3)

您已安装libpcap-devel,但未安装libnet-devel。 RPM的* -devel版本包括构建基于XS的模块时经常需要的C头文件。

在尝试再次构建模块之前尝试sudo yum install libnet-devel

更新:上述建议是正确的,但不够充分。我刚刚在Centos 5.6的安装上对此进行了测试,但它的错误完全相同。

看看CPAN testers results,很明显Net :: Arping的0.02版本已经很长时间没有为任何人成功构建。这个发行版在2002年被上传到CPAN,看起来它的XS代码与现代版本的libnet不兼容。

然而,CPAN上有一个version 0.03 of Net::Arping。这在我的Centos 5.6上成功构建。我建议你转而使用它。我还没有弄清楚为什么cpan无法识别版本0.03。我看到它是由不同的作者,所以它可能是一个权限问题。您应该考虑将此问题报告给modules@cpan.org。