Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

1 Problemas de compilación

Estos son los problemas conocidos relacionados con la compilación de Zabbix desde fuentes. Para todos los demás casos, consulte la página de Problemas conocidos.

Biblioteca en una ubicación no estándar

Zabbix permite especificar una biblioteca ubicada en una ubicación no estándar. En el siguiente ejemplo, Zabbix ejecutará curl-config desde la ubicación no estándar especificada y usará su salida para determinar la libcurl correcta a utilizar.

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

Esto funcionará si es la única libcurl instalada en el sistema, pero podría no funcionar si hay otra libcurl instalada en una ubicación estándar (por el gestor de paquetes, por ejemplo). Este es el caso cuando necesita una versión más reciente de la biblioteca para Zabbix y la versión anterior para otras aplicaciones.

Por lo tanto, especificar un componente en una ubicación no estándar no siempre funcionará cuando el mismo componente también exista en una ubicación estándar.

Por ejemplo, si utiliza una libcurl más reciente instalada en /usr/local con el paquete libcurl aún instalado, Zabbix podría seleccionar la incorrecta y la compilación fallará:

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

Aquí, la función curl_easy_header() no está disponible en la antigua /usr/lib/x86_64-linux-gnu/libcurl.so, pero sí está disponible en la nueva /usr/local/lib/libcurl.so.

El problema radica en el orden de las banderas del enlazador, y una solución es especificar la ruta completa 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

Tenga en cuenta la opción -Wl,--no-as-needed, que podría ser necesaria en algunos sistemas (ver también: opciones de enlace predeterminadas en sistemas basados en Debian).

Tamaño de pila demasiado pequeño en algunos sistemas

Si Zabbix se bloquea o se congela debido a desbordamientos de pila, puede aumentar el tamaño de pila por hilo utilizando la opción --with-stacksize al configurar las fuentes. Este problema puede ocurrir en sistemas con límites de pila por hilo bajos por defecto, especialmente durante el preprocesamiento, donde se crean múltiples hilos.

El siguiente ejemplo establece el tamaño de pila en 512 KB por hilo:

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

Puede comprobar los límites de pila por hilo del sistema en tiempo de ejecución utilizando el comando ulimit -s en sistemas basados en Linux.