1 Проблеми са компилацијом

Ово су познати проблеми у вези са Zabbix компилацијом из извора. За све остале случајеве погледајте страницу Познати проблеми.

Компајлирање Zabbix агента на HP-UX

Ако инсталирате PCRE библиотеку са популарног сајта HP-UX пакета http://hpux.connect.org.uk (на пример, из датотеке pcre-8.42-ia64_64-11.31.depot), само ће 64-битна верзија библиотеке бити инсталирана у /usr/local/lib/hpux64 директоријум.

У овом случају, за успешну компилацију агента, потребна је прилагођена опција за скрипту configure, на пример:

CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include --with-libpcre-lib=/usr/local/lib/hpux64

Библиотека на нестандардној локацији

Zabbix вам омогућава да наведете библиотеку која се налази на нестандардној локацији. У примеру испод, Zabbix ће покренути curl-config са наведене нестандардне локације и користити свој излаз да одреди исправан libcurl за употребу.

$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Ово ће функционисати ако је то једини libcurl инсталиран у систему, али можда неће ако постоји други libcurl инсталиран на стандардној локацији (на пример, од стране менаџера пакета). Такав је случај када вам је потребна новија верзија библиотеке за Zabbix и старија за друге апликације.

Стога, навођење компоненте на нестандардној локацији неће увек функционисати када иста компонента постоји и на стандардној локацији.

На пример, ако користите новији либцурл инсталиран у /usr/local са libcurl пакетом још увек инсталираним, Zabbix би могао да покупи погрешан и компилација неће успети:

usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): у функцији 'zbx_http_convert_to_utf8':
       /tmp/zabbix-master/src/libs/zbxhttp/http.c:957: недефинисана референца на 'curl_easy_header'
       collect2: error: ld returned 1 статус излаза

Овде функција curl_easy_header() није доступна у старијем /usr/lib/x86_64-linux-gnu/libcurl.so, but is available in the newer /usr/local/lib/libcurl.so .

Проблем лежи у редоследу заставица повезивача, а једно решење је да наведете пуну путању до библиотеке у променљивој LDFLAGS:

$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Обратите пажњу на опцију -Wl,--no-as-needed која би могла бити потребна на неким системима (погледајте такође: подразумеване опције повезивања на базираном на Debian-у системи).