1 Problemes de compilació

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.

Compilació de l'agent Zabbix sota HP-UX

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

Biblioteca en una ubicació no estàndard

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.

$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

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).