Aquests són els problemes coneguts sobre la compilació de Zabbix des de les fonts. Per a la resta de casos, consulteu la pàgina de problemes coneguts.
Si instal·leu la biblioteca PCRE des d'un lloc popular de paquets d'HP-UX http://hpux.connect.org.uk (per exemple, des del fitxer pcre-8.42-ia64_64-11.31.depot
), només s'instal·larà la versió de 64 bits de la biblioteca al directori /usr/local/lib/hpux64
.
En aquest cas, per a una compilació correcta de l'agent, s'han d'emprar opcions personalitzades amb l'script configure
, per exemple:
CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include --with-libpcre-lib=/usr/local/lib/hpux64
Zabbix us permet especificar una biblioteca ubicada a un lloc no estàndard. A l'exemple següent, Zabbix executarà curl-config
des de la ubicació no estàndard especificada i emprarà la seva sortida per determinar el libcurl correcte a emprar.
Això funcionarà si és l'únic libcurl instal·lat al sistema, però potser no pas si hi ha un altre libcurl instal·lat en una ubicació estàndard (pel gestor de paquets, per exemple). Aquest és el cas quan us cal una versió més nova de la biblioteca per a Zabbix i la més antiga per a altres aplicacions.
Per tant, especificar un component en una ubicació no estàndard no sempre funcionarà quan el mateix component també existeix en una ubicació estàndard.
Per exemple, si empreu un libcurl més nou instal·lat a /usr/local
amb el paquet libcurl encara instal·lat, Zabbix podria agafar l'equivocat i la compilació fallarà:
usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): a la funció 'zbx_http_convert_to_utf8':
/tmp/zabbix-master/src/libs/zbxhttp/http.c:957: referència indefinida a 'curl_easy_header'
collect2: error: ld returned 1 exit status
Aquí, la funció curl_easy_header()
no és disponible a l'antiga /usr/lib/x86_64-linux-gnu/libcurl.so
, però sí que ho és a la nova /usr/local/lib/libcurl.so
.
El problema rau en l'ordre dels indicadors d'enllaç i una solució és especificar el camí complet a la biblioteca en una variable LDFLAGS:
$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin /curl-config
Tingueu en compte l'opció -Wl,--no-as-needed
que pot caldre en alguns sistemes (vegeu també: opcions d'enllaç predeterminades a sistemes basats en Debian).