Чтобы собрать Zabbix из исходников, нужно победить кучу ошибок, возникающих из-за отсутствующих на сервере зависимостей. Ниже собраны пакеты, которые нужно установить для устранения ошибок сборки. Справедливо для Debian, в других дистрибутивах можно поискать что-то похожее по названию.
Флаг | Ошибка | Зависимость |
---|---|---|
—with-mysql | configure: error: MySQL library not found | libmysqlclient-dev |
—with-libcurl | configure: error: Curl library not found | libcurl4-openssl-dev |
—with-net-snmp | configure: error: Not found NET-SNMP library | libsnmp-dev |
—with-openipmi | configure: error: Invalid OPENIPMI directory — unable to find ipmiif.h | libopenipmi-dev |
—with-jabber | checking for IKSEMEL… configure: error: Jabber library not found | libiksemel-dev |
—with-libxml2 | configure: error: LIBXML2 library not found | libxml2-dev |
—with-ssh2 | configure: error: SSH2 library not found | libssh2-1-dev |
Просто ставим недостающие зависимости через
apt-get install $packet-name
.
Ссылки:
- Устранение ошибок при сборке Zabbix
quite wierd, i have some autobuild @work on Redhat 5 / Solaris 10, but now i try @home
$ ./configure —enable-server —with-postgresql
…
Configuration:
Detected OS: linux-gnu
Install path: /usr/local
Compilation arch: linux
Compiler: gcc
Compiler flags: -g -O2 -I <= empty include path
Enable server: yes
Server details:
With database: PostgreSQL
WEB Monitoring via: no
Native Jabber: no
SNMP: no
IPMI: no
SSH: no
Linker flags: -rdynamic -L <= empty lib path
Libraries: -lm -lrt -lresolv -lpq
Enable proxy: no
Enable agent: no
Enable Java gateway: no
LDAP support: no
IPv6 support: no
$ make
Making all in src
make[1]: Entering directory `/home/dakol/dl/zabbix-2.0.2/src’
Making all in libs
make[2]: Entering directory `/home/dakol/dl/zabbix-2.0.2/src/libs’
Making all in zbxcrypto
make[3]: Entering directory `/home/dakol/dl/zabbix-2.0.2/src/libs/zbxcrypto’
gcc -DHAVE_CONFIG_H -I. -I../../../include -g -O2 -I -MT md5.o -MD -MP -MF .deps/md5.Tpo -c -o md5.o md5.c
gcc: error: md5.o: No such file or directory
make[3]: *** [md5.o] Error 1
make[3]: Leaving directory `/home/dakol/dl/zabbix-2.0.2/src/libs/zbxcrypto’
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dakol/dl/zabbix-2.0.2/src/libs’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dakol/dl/zabbix-2.0.2/src’
make: *** [all-recursive] Error 1
I then install the missing libpq-dev and configure says:
Compiler: gcc
Compiler flags: -g -O2 -I/usr/include/postgresql <= ok
Enable server: yes
Server details:
With database: PostgreSQL
WEB Monitoring via: no
Native Jabber: no
SNMP: no
IPMI: no
SSH: no
Linker flags: -rdynamic -L/usr/lib <= ok
Libraries: -lm -lrt -lresolv -lpq <= ok
trying with —with-mysql, configure correctly detect missing dev/lib
checking for mysql_config… no
configure: error: MySQL library not found
Permalink
Cannot retrieve contributors at this time
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AC_INIT([libzbxpgsql], [1.1.0], [ryan@cavaliercoder.com]) | |
AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability foreign]) | |
m4_pattern_allow([AM_PROG_AR]) | |
AM_PROG_AR | |
AC_PROG_LIBTOOL # seem to need this on CentOS 5 (libtool v1.5) | |
LT_INIT | |
AC_PROG_CC | |
AC_CONFIG_MACRO_DIR([m4]) | |
AC_CONFIG_HEADERS([config.h]) | |
# check for stdlib header files | |
AC_HEADER_STDC | |
# check for libconfig | |
AC_CHECK_HEADERS(libconfig.h, [], [ AC_MSG_ERROR(«Unable to locate libconfig development headers.»)]) | |
AC_CHECK_LIB([config],[config_init],[],AC_MSG_ERROR([«Unable to locate libconfig library.»])) | |
# Checking for PostgreSQL support | |
AX_LIB_POSTGRESQL([8.1]) | |
AS_IF( | |
[test «x$found_postgresql» = «xno»], | |
[ | |
AS_IF( | |
[test ! -z «$POSTGRESQL_VERSION»], | |
[AC_MSG_ERROR([PostgreSQL version mismatch])], | |
[AC_MSG_ERROR([PostgreSQL library not found])] | |
) | |
] | |
) | |
#AS_IF([test «x$found_postgresql» = «xyes»], | |
# [ AS_IF([test «Xfound_postgresql_req_version» = «Xno»], | |
# [ AC_MSG_ERROR([PostgreSQL version mismatch])])], [ | |
# AC_MSG_ERROR([PostgreSQL library not found])]) | |
# Checking for Zabbix headers | |
AX_LIB_ZABBIX | |
if test ! «x$found_zabbix» = «xyes»; then | |
AC_MSG_ERROR([Zabbix headers not found]) | |
fi | |
# Checking for libdl | |
AC_CHECK_LIB(dl,dlopen) | |
# output | |
AC_CONFIG_FILES([ | |
Makefile | |
src/Makefile | |
]) | |
AC_OUTPUT |
У меня проблема с компиляцией Zabbix 5.2, настроенной таким образом:
# ./configure --enable-server --enable-agent --with-net-snmp --with-libcurl --with-libxml2 --with-postgresql --with-prefix=/usr/local/zabbix5 --verbose
...
checking for PostgreSQL libraries... yes
checking if PostgreSQL version is >= 9.2... yes
checking for Zabbix server/proxy database selection... ok
checking for multirow insert statements... yes
checking for pkg-config... no
checking for pkg-config... no
configure: error: LIBXML2 library not found
Теперь я установил libxml2-dev
(apt install libxml2-dev
). Он отображается как libxml2-dev:amd64
, не знаю почему, потому что ОС — amd64
.
Я пробовал установить различные переменные среды, например export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/libxml-2.0.pc
(эта конфигурация установлена libxml2-dev:amd64
).
Я понятия не имею, почему это происходит и как это исправить.
ОС: Debian 10 amd64.
2 ответа
Лучший ответ
Я решил проблему, проблема в том, что используемые мной источники взяты из пакета Debian (apt source zabbix-server-pgsql
), а не исходники, загруженные с сайта Zabbix.
Похоже, эта проблема возникает при построении обычным способом ./configure; make; make install
. Однако когда я собираю пакет Debian, он работает нормально:
dpkg-buildpackage -us -uc -nc
0
LetMeSOThat4U
30 Ноя 2020 в 18:59
Я только что успешно установил Zabbix 5.2 из исходников на Ubuntu 16.04. У меня такая же ошибка, как у вас, хотя я установил пакет libxml2-dev
. После дня поиска решений, когда я посмотрел журнал ошибок, мне в голову пришла идея:
checking for pkg-config... no
configure: error: LIBXML2 library not found
Вероятно, потому что я не установил пакет pkg-config
. Затем я попытался установить его и снова запустить команду настройки:
sudo apt install pkg-config
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-libcurl --with-libxml2=/usr/bin/xml2-config
На удивление, настройка прошла успешно.
1
Tom Nguyen
4 Дек 2020 в 02:28