Estes são os problemas conhecidos relacionados à compilação do Zabbix a partir do código-fonte. Para todos os outros casos, consulte a página de Problemas conhecidos.
O Zabbix permite que você especifique uma biblioteca localizada em um local não padrão. No exemplo abaixo, o Zabbix executará o curl-config a partir do local não padrão especificado e usará sua saída para determinar a libcurl correta a ser usada.
Isso funcionará se for a única libcurl instalada no sistema, mas pode não funcionar se houver outra libcurl instalada em um local padrão (pelo gerenciador de pacotes, por exemplo). Isso ocorre quando você precisa de uma versão mais recente da biblioteca para o Zabbix e da versão mais antiga para outros aplicativos.
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ê usar uma libcurl mais recente instalada em /usr/local com o pacote libcurl ainda instalado, o Zabbix pode escolher a 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 statusAqui, a função curl_easy_header() não está disponível na antiga /usr/lib/x86_64-linux-gnu/libcurl.so, mas está disponível na nova /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-configObserve a opção -Wl,--no-as-needed, que pode ser necessária em alguns sistemas (veja também: opções de link padrão em sistemas baseados em Debian).
Se o Zabbix travar ou congelar devido a estouros de pilha, você pode aumentar o tamanho da pilha por thread usando a opção --with-stacksize ao configurar os fontes. Esse problema pode ocorrer em sistemas com limites de pilha de thread padrão baixos, especialmente durante o pré-processamento, onde várias threads são criadas.
O exemplo a seguir define o tamanho da pilha para 512 KB por thread:
Você pode verificar os limites de pilha de thread do sistema em tempo de execução usando o comando ulimit -s em sistemas baseados em Linux.