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-у системи).

Величина стека је премала на неким системима

Уколико Zabbix престане да ради или се не одзива због препуњавања стека, можете повећати величину стека по нити користећи опцију --with-stacksize приликом конфигурисања извора. Овај проблем се може јавити на системима са ниским подразумеваним ограничењима стека нити, посебно током предобраде, где се креира више нити.

Следећи пример поставља величину стека на 512 KB по нити:

./configure --enable-server --with-mysql --with-stacksize=512

Можете проверити ограничења стека системских нити током извршавања помоћу команде ulimit -s на системима заснованим на Linux-у.