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

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

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

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

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

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

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

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

usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): in function 'zbx_http_convert_to_utf8': /tmp/zabbix-master/src/libs/zbxhttp/http.c:957: undefined reference to 'curl_easy_header' collect2: error: ld returned 1 exit status

Овде, функција curl_easy_header() није доступна у старијој /usr/lib/x86_64-linux-gnu/libcurl.so, али је доступна у новијој /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 која може бити потребна на неким системима (погледајте такође: подразумеване опције линковања на системима базираним на Дебијану).

Stack size too small on some systems

If Zabbix crashes or freezes due to stack overflows, you can increase the per-thread stack size using the --with-stacksize option when configuring the sources. This issue may occur on systems with low default thread stack limits, especially during preprocessing, where multiple threads are created.

The following example sets the stack size to 512 KB per thread:

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

You can check the system thread stack limits at runtime using the ulimit -s command on Linux-based systems.