1 Kompilēšanas problēmas
Šīs ir zināmās problēmas, kas saistītas ar Zabbix kompilēšanu no avota koda. Visos citos gadījumos skatiet lapu Zināmās problēmas.
Zabbix aģenta kompilēšana HP-UX
Ja instalējat PCRE bibliotēku no populārās HP-UX pakotņu vietnes
http://hpux.connect.org.uk (piemēram, no faila pcre-8.42-ia64_64-11.31.depot), bibliotēkas tiks instalēta tikai 64 bitu versija direktorijā /usr/local/lib/hpux64.
Šādā gadījumā veiksmīgai aģenta kompilēšanai configure skriptam ir nepieciešama pielāgota opcija, piemēram:
CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include --with-libpcre-lib=/usr/local/lib/hpux64
Bibliotēka nestandarta atrašanās vietā
Zabbix ļauj norādīt bibliotēku, kas atrodas nestandarta atrašanās vietā. Tālāk redzamajā piemērā Zabbix palaidīs curl-config no norādītās nestandarta atrašanās vietas un izmantos tā izvadi, lai noteiktu pareizo izmantojamo libcurl.
$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config
Tas darbosies, ja tā ir vienīgā sistēmā instalētā libcurl, taču var nedarboties, ja standarta atrašanās vietā jau ir instalēta cita libcurl (piemēram, ar pakotņu pārvaldnieku). Tā var būt situācija, kad Zabbix vajadzīga jaunāka bibliotēkas versija, bet citām lietotnēm - vecākā.
Tāpēc komponenta norādīšana nestandarta atrašanās vietā ne vienmēr darbosies, ja tas pats komponents pastāv arī standarta atrašanās vietā.
Piemēram, ja izmantojat jaunāku libcurl, kas instalēta /usr/local, bet libcurl pakotne joprojām ir instalēta, Zabbix var paņemt nepareizo versiju un kompilēšana neizdosies:
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
Šeit funkcija curl_easy_header() nav pieejama vecākajā /usr/lib/x86_64-linux-gnu/libcurl.so, bet ir pieejama jaunākajā /usr/local/lib/libcurl.so.
Problēma ir saistīta ar linkera karogu secību, un viens no risinājumiem ir norādīt pilnu ceļu uz bibliotēku LDFLAGS mainīgajā:
$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config
Ņemiet vērā opciju -Wl,--no-as-needed, kas dažās sistēmās var būt nepieciešama (skatiet arī: noklusējuma saistīšanas opcijas Debian-based sistēmās).
Pārāk mazs steka lielums dažās sistēmās
Ja Zabbix avarē vai sasalst steka pārpildes dēļ, varat palielināt katra pavediena steka lielumu, konfigurējot avotus, izmantojot --with-stacksize opciju avotu konfigurēšanas laikā.
Šī problēma var rasties sistēmās ar zemu noklusējuma pavedienu steka ierobežojumu, īpaši priekšapstrādes laikā, kad tiek izveidoti vairāki pavedieni.
Tālāk redzamais piemērs iestata steka lielumu uz 512 KB katram pavedienam:
./configure --enable-server --with-mysql --with-stacksize=512
Sistēmas pavedienu steka ierobežojumus izpildes laikā var pārbaudīt, Linux bāzētās sistēmās izmantojot komandu ulimit -s.