Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

1 Problemas de compilação

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.

Biblioteca em um local não padrão

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.

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

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 status

Aqui, 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-config

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

Tamanho da pilha muito pequeno em alguns sistemas

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:

./configure --enable-server --with-mysql --with-stacksize=512

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.