Rover12421's Blog

The End.

Perl 的 Net::Pcap 模块安装

本来打算些Sqlninja的配置环境安装的,但是在安装 Net::Pcap 的是很出了问题,写在一起太长了,就干脆分开写好了。这篇主要是解决Net::Pcap的过程,其实难度不大的。:)

安装Net::Pcap首先需要安装libpcap,我的是RHEL系统,在光盘里能找到rpm包,如果是装rpm包的话,就需要把 libpcap-devel这个包也要装上,如果是编译安装就不需要了。我喜欢编译安装的。libpcap下载地址是:http://www.tcpdump.org/%E3%80%82%E6%88%91%E4%B8%8B%E7%9A%84%E6%9C%80%E6%96%B0%E7%9A%84libpcaplibpcap-1.0.0.tar.gz。下好后编译安装。过程这里就不写了。

未安装libpcap的话,会有提示 “looking for -lpcap… no”

[root@RHEL Net-Pcap-0.16]# perl Makefile.PL
looking for -lpcap… no
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You appear to lack the pcap(3) library.

If it is installed in a non-standard location, please try setting the LIBS
and INC values on the command line.

Or get the sources and install the pcap library from http://www.tcpdump.org/

If you install the pcap library using a system package, make sure to also
install the corresponding -devel package, which contains the C headers needed
to compile this module.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

按常规来说,装好libpcap然后安装net::Pcap就不会有什么问题。我下的也是最新版的Net::Pcap模块,Perl模块推荐在http://search.cpan.org 这上面找。我这下的是Net-Pcap-0.16.tar.gz

[root@RHEL Net-Pcap-0.16]#  perl Makefile.PL
looking for -lpcap… yes
checking for pcap_lib_version() in -lpcap… yes
detecting available functions… ok
Writing Makefile for Net::Pcap
[root@RHEL Net-Pcap-0.16]# make
cc -c -Wall -Wwrite-strings -O2 -march=i486 -mtune=i686 -DVERSION=\“0.16\” -DXS_VERSION=\“0.16\” -fPIC “-I/usr/lib/perl5/5.8.8/i486-linux/CORE” -DHAVE_BLANK -DHAVE_PCAP_LIB_VERSION Pcap.c
In file included from Pcap.xs:43:
stubs.inc:85:2: warning: #warning “the function pcap_findalldevs() is not available, but will be emulated”
In file included from Pcap.xs:43:
stubs.inc:91: error: redefinition of `struct pcap_if'

/*\* …中间的错误就不写了….**/

make: *** [Pcap.o] Error 1

还以为那个库没装好,结果去网上搜索了下,很多人提到了这个问题,但结果都是不了了之,都不知道提问者是不是已经解决了。其中有人就提到用cpan安装。那也只的试一试罗。

[root@RHEL Net-Pcap-0.16]#cpan Net::Pcap

…….(过程就不贴了,贴上最后的错误)
SAPER/Net-Pcap-0.16.tar.gz
/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
Failed during this command:
SAPER/Net-Pcap-0.16.tar.gz : make NO

还是不成功。看到有人提议Perl版本问题,我现在的Perl版本是5.8.8的,于是在cpan上下了个5.89的安装,结果还是没能解决问题。

休息了一天,再重新找,用 Google.com in English 搜索错误,一个一个仔细的看,结果还是和前面一样的结果,把libpcap也装了N次。实在是没办法,在 linuxquestions 发现回答问题的人还是蛮详细的,总之是值得细看的。直接在这上面搜索好了,在搜索出来的帖子一个一个,仔细的看。最后在 http://www.linuxquestions.org/questions/slackware-14/perl-error-lwpsimple.pm-690680/#post3378535 这帖子里找到了答案

-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–

You also could try this version

http://packages.debian.org/lenny/libnet-pcap-perl

which is Net::Pcap-0.04 > > [libnet-pcap-perl_0.04.orig.tar.gz]
( used by most Debian systems )

( I found no link for ‘0.14’ )

EDIT : here it is

http://search.cpan.org/~saper/Net-Pcap-0.14/

….

-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–-–

他说到,可以试试Net::Pcap 0.14 本版,并给出了下载地址,我下的是最新的Net::Pcap 0.16。 还真别说,下了0.14的版本,真的顺利安装好了。:)

说了很多,结果解决问题只有一句,就是换成0.14版,哈哈~~不过过程还是值得记录的。:)

Comments