snort源码安装过程中,需要安装daq,dnet。这里想说下如何进行安装。daq简单,源码下载直接安装就可以。dnet在安装过程中,出错后总想着在网上搜一搜,结果很失望。。本篇记录的不仅仅是解决安装过程中的一个错误。而是让我意识到要克服自己的惰性,和遇到问题解决问题后寻找解决方案的思路。
##daq安装流程
先说简单的daq,我们从官网https://www.snort.org/#get-started可以看到daq的安装流程。
```wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
tar xvfz daq-2.0.6.tar.gz
cd daq-2.0.6
./configure && make && sudo make install
```
以上安装过程应该基本不会出错。我的安装过程没有出错,应该会没有问题的。
##dnet安装流程
为何列出dnet来,是因为我自己遇到问题的时候总是直接的去网上搜索出错信息然后找答案。因为在找之前,自己根本没有思考过如何解决,问题的原因在在哪。
先说如何解决问题。
**ERROR! dnet header not found, go get it from http://code.google.com/p/libdnet/ or use the --with-dnet-* options, if you have it installed in an unusual place**
明显的我们看到dnet没有找到。同时可以看到错误信息已经提供了解决方案。
两种解决方案。一是use the --with-dnet-* options, if you have it installed in an unusual place,如果你已经安装了(可能因为路径的问题),可以用--with-dnet-includes和--with-dnet-libraries指定目录。二是还没有安装,所以需要去安装了。下载http://code.google.com/p/libdnet/(可能有些朋友科学上网有障碍,其实这个链接已经跳转到https://github.com/dugsong/libdnet)。下载后进行安装,基本没有问题。(可能需要libpcap等包,耐心安装,缺什么装什么)。
安装过程同上安装daq一致。
##snort安装依旧报错dnet header缺失
进入到snort目录后,执行
```
./configure --enable-sourcefire
```
依旧报错ERROR! dnet header not found, go get it from...
此时打开configure文件
我们搜索dnet header,可以看到有两处dnet header not found, go get it from,将第一处的文字添加一点debug信心。再次执行configure。可以判断报错的信息是第一处。
接着往上面读configure文件。
```
x$DNET_H" = "xno" -a "x$DUMBNET_H" = "xno"
```
if语句判断两个条件:DNET_H要求dnet.h文件,DUMBNET_H要求dumbnet.h文件。
搜索后发现并不存在dumbnet.h文件。得知在libdumbnet-dev包中。
安装
```
apt-get install libdumbnet-dev
```
再次执行configure,发现可以通过。</br></br>
##总结
在遇到问题的时候,缺失了自己去看代码,去分析问题造成的原因的勇气。在各种问题中,已经遇到了很多次这样的问题。此处进行反省。耐心,勇气!