Ошибка установки OSSEC HIDS (Срочно)

Вопрос или проблема

Когда я пытаюсь запустить скрипт ./install.sh для OSSEC HIDS, я продолжаю получать эти странные ошибки:

/usr/bin/ld: client-agent/config.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/event-forward.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/intcheck_op.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/main.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/notify.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/receiver.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/sendmsg.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: client-agent/start_agent.o:(.bss+0x0): множественное определение `server_ibuf'; client-agent/agentd.o:(.bss+0x0): впервые определено здесь
/usr/bin/ld: os_net.a(os_net.o):(.bss+0x0): множественное определение `agt'; client-agent/config.o:(.bss+0x10088): впервые определено здесь
collect2: error: ld returned 1 exit status
make: *** [Makefile:1017: ossec-agentd] Ошибка 1

Я установил все зависимости и обновил все (apt update и т.д.), но ничего не исправляет эту проблему. У кого-нибудь есть предложения?

Кроме того, я пытаюсь сделать локальную установку. Если вам нужно что-то еще, дайте знать.

Вы когда-нибудь пытались установить пакет libsystemd-dev?
Большинство этих проблем с компиляцией возникают из-за этого.

Чтобы это не было потеряно в обсуждении,

вы также можете попробовать построить свой проект, игнорируя некоторые проблемы с линковкой, добавив LDFLAGS="-Wl,-z,muldefs" перед своей командой, например:

LDFLAGS="-Wl,-z,muldefs" ./install.sh или
LDFLAGS="-Wl,-z,muldefs" make в папке src.

Ответ или решение

Устранение ошибки при установке OSSEC HIDS: Множественное определение символов

Установка OSSEC HIDS (HIDS – система обнаружения вторжений на хостах) может столкнуться с различными ошибками, и одна из распространённых проблем связана с множественным определением символов при компиляции. В вашем случае сообщения об ошибках указывают на множественные определения переменной server_ibuf и других символов.

Причины ошибки

Ошибка, с которой вы столкнулись, происходит из-за того, что переменные из различных файлов исходного кода определены одинаково. Ваша система компоновки (linker) пытается собрать программу, но не может, так как не знает, какое определение использовать. Эта проблема может возникнуть по нескольким причинам:

  1. Ошибка в коде: В коде могут быть дублирующиеся глобальные переменные. Если несколько файлов исходного кода объявляют одну и ту же переменную без использования extern, это приведёт к конфликту.

  2. Ошибки в Makefile: Если Makefile неправильно настроен, он может попытаться скомпилировать один и тот же файл несколько раз или включить его не так, как нужно.

  3. Отсутствие необходимых библиотек: Возможно, не хватает каких-либо библиотек, необходимых для корректной компиляции.

Рекомендации по устранению проблемы

  1. Проверьте исходный код:

    • Найдите все файлы, в которых определяется переменная server_ibuf, и уберите из них лишние определения. Убедитесь, что необходимо использовать extern для глобальных переменных в заголовочных файлах.
  2. Проверьте зависимости:

    • Убедитесь, что все необходимые библиотеки установлены. Например, вы упомянули пакет libsystemd-dev. Установите его командой:
      sudo apt install libsystemd-dev
  3. Попробуйте игнорировать ошибки компоновщика:

    • Если вы хотите игнорировать определенные предупреждения компоновщика, вы можете попробовать запустить установку с флагами:
      LDFLAGS="-Wl,-z,muldefs" ./install.sh
    • Или выполните команду make в каталоге исходников с аналогичными флагами:
      LDFLAGS="-Wl,-z,muldefs" make
    • Однако, обратите внимание, что игнорирование ошибок может привести к ошибкам во время выполнения программы. Используйте этот метод с осторожностью.
  4. Обновление системы:

    • Убедитесь, что у вас установлено всё необходимое программное обеспечение:
      sudo apt update && sudo apt upgrade
      sudo apt install build-essential
  5. Изолированная среда:

    • Попробуйте установить OSSEC в чистой (изолированной) среде, например, в Docker или виртуальной машине. Это может помочь найти и устранить проблемы с зависимостями.
  6. Логи и поддержка:

    • Если проблема остаётся, посмотрите лог-файлы, они могут дать больше информации о том, что именно пошло не так. Размышления на детальном уровне могут помочь заметить недочёты.

Заключение

Проблемы при установке OSSEC HIDS могут быть трудными, но с систематическим подходом можно найти решение. Всегда старайтесь анализировать ошибки на этапе компиляции и контролировать зависимости вашей системы. Если после выполнения всех указанных шагов ошибка всё ещё возникает, рассмотрите возможность получения поддержки в сообществе OSSEC или форуме разработчиков.

Оцените материал
Добавить комментарий

Капча загружается...