Ово су познати проблеми у вези са 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
која може бити потребна на неким системима (погледајте такође: подразумеване опције линковања на системима базираним на Дебијану).
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:
You can check the system thread stack limits at runtime using the ulimit -s
command on Linux-based systems.