Ово су познати проблеми у вези са 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
која може бити потребна на неким системима (погледајте такође: подразумеване опције линковања на системима базираним на Дебијану).