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 situada en una ubicació no estàndard. Al següent exemple, Zabbix executarà curl-config
des de la ubicació no estàndard especificada i utilitzarà la seva sortida per determinar el libcurl correcte a utilitzar.
Això funcionarà si és l'únic libcurl instal·lat al sistema, però potser no si hi ha un altre libcurl instal·lat en una ubicació estàndard (pel gestor de paquets, per exemple). Aquest és el cas quan necessiteu 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-ne 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: undefined reference to '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 disponible 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 potser cal en alguns sistemes (veieu també: opcions d'enllaç predeterminades a sistemes basats en Debian).