Фатальная ошибка: rpc/rpc.h: нет такого файла или каталога
Я пытаюсь установить 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. Спасибо
6 ответов
моя ОС 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/
Если ваш/usr/include/rpc
папка не содержит файла rpc.h, и вы уже установилиlibntirpc-dev
попробуйте связать заголовок со стандартной директорией, как описано здесь ! Другое решение, которое я нашел, заключалось в использовании./configure CFLAGS=-I/usr/include/tirpc
описано @steeldriver в другом ответе здесь в качестве комментария! К сожалению, решение, за которое проголосовали, мне не помогло, хотя оно также включает путь к каталогу библиотеки...
У меня была такая же проблема, но я не получил помощи по всему Интернету, тогда я сам разобрался. в основном файл есть, но фырканье каким-то образом ищет в некоторых других каталогах. поэтому все необходимые файлы помещаются в /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/
Решение простое. Вам нужно положить недостающие файлы отсюда
https://github.com/lattera/glibc/tree/master/sunrpc/rpc
к
/usr/include/rpc
Это небезопасно, но работает xDПосмотрите здесь
Я сделал настройку snort в дистрибутиве Kali
Устраните проблему следующим образом:
- Найдите библиотеку, включающую rpc (
apt-file search rpc/rpc.h
) - Установка (
apt-get install libntirpc-dev
) - Копирование файлов из
ntircp
папку вrcp
папка - Бежать:
- Изменение пути к файлу не найдено
- Повторяйте процесс, пока ошибки не будут устранены
Бывший. 1:
Копирование файлов из ntirpc в rpc
sp_rpc_check.c:32:10: fatal error: rpc/rpc.h: No such file or directory
32 | #include <rpc/rpc.h>
/include/ntirpc# cp rpc.h /usr/include/rpc
/snort_source/snort-2.9.18.1# make
Пример 2:
Редактирование типов.h
/usr/include/rpc/types.h:189:10: fatal error: misc/abstract_atomic.h: No such file or directory
189 | #include <misc/abstract_atomic.h>
Измените строку с:
#include <misc/abstract_atomic.h>
к:
#include </usr/include/rpc/misc/abstract_atomic.h>
затем
/snort_source/snort-2.9.18.1# make
так далее., ...
Я изменил следующие файлы:
wait_queuq.h
clnt.h
rpc.h
pool_queue.h
svc.h
portable.h
types.h
в соответствии с требованиями
make
.
Приблизительно: 40 строк кода
Спросите систему упаковки:
dpkg -S /usr/include/rpc/rpc.h
Это скажет вам, какой пакет предоставляет
/usr/include/rpc/rpc.h
. Установите этот пакет. Читать
man dpkg
.