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