Estos son los problemas conocidos relacionados con la compilación de Zabbix a partir de las fuentes. Para todos los demás casos, consulte la página Problemas conocidos.
Zabbix le 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 el libcurl correcto a usar.
Esto funcionará si es el único libcurl instalado en el sistema, pero podría no funcionar si hay otro libcurl instalado en una ubicación estándar (por ejemplo, por el administrador de paquetes). Tal es el caso cuando necesita una versión más nueva de la biblioteca para Zabbix y la 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 existe en una ubicación estándar.
Por ejemplo, si usa un libcurl más nuevo instalado en /usr/local
con el paquete libcurl aún instalado, Zabbix podría seleccionar el incorrecto y la compilación fallará:
usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): en la función '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 el /usr/lib/x86_64-linux-gnu/libcurl.so
antiguo, pero sí en el /usr/local/lib/libcurl.so
más nuevo .
El problema radica en el orden de los indicadores del vinculador 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 puede ser necesaria en algunos sistemas (consulte también: opciones de enlace predeterminadas en los sistemas basados en Debian).