我正在尝试按照 Snort 网站上的说明从源文件在 Ubuntu 21.04 上安装 Snort。我按照 Youtube 上的视频操作,解决了许多问题,但我还是卡在了:
sp_rpc_check.c:32:10: fatal error: rpc/rpc.h: No such file or directory
32 | #include <rpc/rpc.h>
| ^~~~~~~~~~~
compilation terminated.
make[4]: *** [Makefile:478: sp_rpc_check.o] Error 1
make[4]: Leaving directory '/usr/snort-2.9.18/src/detection-plugins'
make[3]: *** [Makefile:428: all] Error 2
make[3]: Leaving directory '/usr/snort-2.9.18/src/detection-plugins'
make[2]: *** [Makefile:547: all-recursive] Error 1
make[2]: Leaving directory '/usr/snort-2.9.18/src'
make[1]: *** [Makefile:505: all-recursive] Error 1
make[1]: Leaving directory '/usr/snort-2.9.18'
make: *** [Makefile:370: all] Error 2
已
sudo apt install libntirpc-dev
按照 AskUbuntu 上的另一个帖子进行尝试。
我比较新手。已经做过sudo apt update
和sudo apt upgrade
。
来自 snort 网站,https://www.snort.org/#get-started,已经完成了所有:
wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
wget https://www.snort.org/downloads/snort/snort-2.9.18.tar.gz
tar xvzf daq-2.0.7.tar.gz
cd daq-2.0.7
./configure && make && sudo make install
tar xvzf snort-2.9.18.tar.gz
cd snort-2.9.18
但运行时:
./configure --enable-sourcefire && make && sudo make install
得到上面描述的错误
我还解决了 libpcap、libpcre 和 dnet 问题。所以现在只是这个 rpc 问题。谢谢
答案1
我的操作系统是 Debian,你可以:
- 安装相应的软件包及其头文件(-dev表示)。
sudo apt install libntirpc-dev
2. 找到所有头文件所在的位置。
dpkg -L libntirpc-dev
您可以看到如下输出:
/usr/include/ntirpc/rpc/rpc.h
3.将标题目录附加到配置中。
./configure --enable-optimizations --includedir=/usr/include/tirpc/
答案2
如果你的/usr/include/rpc
文件夹不包含rpc.h文件,并且你已经安装libntirpc-dev
,请尝试将标题链接到标准目录中,如所述这里! 其他解决方案我发现,是使用./configure CFLAGS=-I/usr/include/tirpc
@steeldriver 在另一个答案中描述的作为评论!不幸的是,被点赞的解决方案对我来说不起作用,即使它还包括库目录路径...
答案3
决定很简单。你需要把丢失的文件从这里https://github.com/lattera/glibc/tree/master/sunrpc/rpc
放到/usr/include/rpc
它不安全,但可以工作 xD
看这里
答案4
我遇到了同样的问题,但在网上找不到任何帮助,后来我自己找到了解决办法。基本上文件是在那里的,但不知何故,snort 却在其他目录中查找。所以所有需要的文件都放在 /usr/include/ntirpc/ 中,但你必须将每个文件复制到其自己的目录中
例如,为了解决第一个错误,您需要将目录 /usr/include/ntirpc/rpc/rpc.h 中的文件复制到目录 /usr/include/rpc/
这将解决第一个错误,但安装过程中还会出现很多其他错误,但过程相同。
如果错误是 misc/anyfile,则将文件从 /usr/include/ntirpc/misc/ 复制到位置 /usr/incldue/misc
如果错误提示 anyfile.h 记得将其复制到 /usr/include/