Ово су познати проблеми у вези са Zabbix компилацијом из извора. За све остале случајеве погледајте страницу Познати проблеми.
Ако инсталирате 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 за употребу.
Ово ће функционисати ако је то једини 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 по нити:
Можете проверити ограничења стека системских нити током извршавања помоћу команде ulimit -s
на системима заснованим на Linux-у.