Фатальная ошибка: 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, вы можете:

  1. Установите соответствующий пакет с заголовочными файлами (на что указывает -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



Устраните проблему следующим образом:

  1. Найдите библиотеку, включающую rpc ( apt-file search rpc/rpc.h)
  2. Установка ( apt-get install libntirpc-dev)
  3. Копирование файлов из ntircpпапку в rcpпапка
  4. Бежать:
  5. Изменение пути к файлу не найдено
  6. Повторяйте процесс, пока ошибки не будут устранены

Бывший. 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.

Другие вопросы по тегам