1 Problemas de compilação

Estes são os problemas conhecidos relacionados à compilação do Zabbix a partir das fontes. Para todos os outros casos, consulte a página Known issues.

Compilando o agente Zabbix no HP-UX

Se você instalar a biblioteca PCRE a partir do site popular de pacote HP-UX http://hpux.connect.org.uk (por exemplo, a partir do arquivo pcre-8.42-ia64_64-11.31.depot), apenas a versão 64-bit da biblioteca será instalada no diretório /usr/local/lib/hpux64 .

Nesse caso, para a compilação bem-sucedida do agente, uma opção personalizada é necessária para o script configure , por exemplo:

CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include --with-libpcre-lib=/usr/local/lib/hpux64

Biblioteca em um local não padrão

O zabbix permite especificar uma biblioteca localizada em uma local não padrão. No exemplo abaixo, o Zabbix executará curl-config a partir do local não padrão especificado e usará sua saída para determinar a versão correta da libcurl a ser utilizada.

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

Isso funcionará se for a única instalação da liburl no sistema, mas pode não funcionar se houver outra libcurl instalada em um local padrão (por exemplo, pelo gerenciador de pacotes). Esse é o caso quando você precisa de uma versão mais recente da biblioteca para o Zabbix e a versão antiga para outras aplicações.

Portanto, especificar um componente em um local não padrão nem sempre funcionará quando o mesmo componente também existir em um local padrão.

Por exemplo, se você utilizar uma versão mais recente da libcurl instalada/usr/local , o Zabbix pode selecionar a versão errada e a compilação falhar:

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

Aqui, a função curl_easy_header() não está disponível na versão mais antiga/usr/lib/x86_64-linux-gnu/libcurl.so, mas está disponível na versão mais recente /usr/local/lib/libcurl.so.

O problema está na ordem das flags do linker, e uma solução é especificar o caminho completo para a biblioteca em uma variável LDFLAGS:

$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Observe que a opção -Wl,--no-as-needed pode ser necessária para alguns sistemas (consulte também: opções padrão de linking nos sistemas Debian-based ).