Cette section montre comment cr¨¦er des binaires d'agent Áú»¢¶Ä²© macOS ¨¤ partir de sources avec ou sans TLS.
Vous aurez besoin des outils de d¨¦veloppement en ligne de commande (Xcode n'est pas requis), Automake, pkg-config et PCRE (v8.x) ou PCRE2 (v10.x). Si vous souhaitez cr¨¦er des binaires d'agent avec TLS, vous aurez ¨¦galement besoin d'OpenSSL ou de GnuTLS.
Pour installer Automake et pkg-config, vous aurez besoin d'un gestionnaire de paquets Homebrew disponible ¨¤ l'adresse . Pour l'installer, ouvrez le terminal et ex¨¦cutez la commande suivante :
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Installez ensuite Automake et pkg-config :
La pr¨¦paration des biblioth¨¨ques PCRE, OpenSSL et GnuTLS d¨¦pend de la mani¨¨re dont elles vont ¨ºtre li¨¦es ¨¤ l'agent.
Si vous avez l'intention d'ex¨¦cuter des fichiers binaires d'agent sur une machine macOS qui poss¨¨de d¨¦j¨¤ ces biblioth¨¨ques, vous pouvez utiliser des biblioth¨¨ques pr¨¦compil¨¦es fournies par Homebrew. Ce sont g¨¦n¨¦ralement des machines macOS qui utilisent Homebrew pour cr¨¦er des binaires d'agent Áú»¢¶Ä²© ou ¨¤ d'autres fins.
Si les fichiers binaires de l'agent sont utilis¨¦s sur des machines macOS qui ne disposent pas de la version partag¨¦e des biblioth¨¨ques, vous devez compiler les biblioth¨¨ques statiques ¨¤ partir des sources et lier l'agent Áú»¢¶Ä²© avec elles.
Installez PCRE2 (remplacez pcre2 par pcre dans les commandes ci-dessous, si n¨¦cessaire) :
Lors de la compilation avec TLS, installez OpenSSL et/ou GnuTLS :
T¨¦l¨¦chargez les sources de Áú»¢¶Ä²© :
Construire l'agent sans TLS :
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
$ make
$ make install
Construire l'agent avec OpenSSL :
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
$ make
$ make install
Construire l'agent avec GnuTLS :
$ cd zabbix-source/
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-gnutls=/usr/local/opt/gnutls
$ make
$ make install
Supposons que les biblioth¨¨ques statiques PCRE seront install¨¦es dans$HOME/static-libs
. Nous utiliserons PCRE2 10.39.
T¨¦l¨¦chargez et cr¨¦ez PCRE avec la prise en charge des propri¨¦t¨¦s Unicode :
$ mkdir static-libs-source
$ cd static-libs-source
$ curl --remote-name https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz
$ tar xf pcre2-10.39.tar.gz
$ cd pcre2-10.39
$ ./configure --prefix="$PCRE_PREFIX" --disable-shared --enable-static --enable-unicode-properties
$ make
$ make check
$ make install
T¨¦l¨¦chargez la source Áú»¢¶Ä²© et construisez l'agent :
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX"
$ make
$ make install
Lors de la construction d'OpenSSL, il est recommand¨¦ d'ex¨¦cuter make test
apr¨¨s une construction r¨¦ussie. M¨ºme si la construction a r¨¦ussi, les tests ¨¦chouent parfois. Si tel est le cas, les probl¨¨mes doivent ¨ºtre recherch¨¦s et r¨¦solus avant de continuer.
Supposons que les biblioth¨¨ques statiques PCRE et OpenSSL seront install¨¦es dans $HOME/static-libs
. Nous utiliserons PCRE2 10.39 et OpenSSL 1.1.1a.
Construisons des biblioth¨¨ques statiques dans static-libs-source
:
T¨¦l¨¦chargez et cr¨¦ez PCRE avec la prise en charge des propri¨¦t¨¦s Unicode :
$ curl --remote-name https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz
$ tar xf pcre2-10.39.tar.gz
$ cd pcre2-10.39
$ ./configure --prefix="$PCRE_PREFIX" --disable-shared --enable-static --enable-unicode-properties
$ make
$ make check
$ make install
$ cd ..
T¨¦l¨¦chargez et cr¨¦ez OpenSSL :
$ curl --remote-name https://www.openssl.org/source/openssl-1.1.1a.tar.gz
$ tar xf openssl-1.1.1a.tar.gz
$ cd openssl-1.1.1a
$ ./Configure --prefix="$OPENSSL_PREFIX" --openssldir="$OPENSSL_PREFIX" --api=1.1.0 no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method darwin64-x86_64-cc
$ make
$ make test
$ make install_sw
$ cd ..
T¨¦l¨¦chargez la source Áú»¢¶Ä²© et construisez l'agent :
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX" --with-openssl="$OPENSSL_PREFIX"
$ make
$ make install
GnuTLS d¨¦pend du backend de chiffrement Nettle et de la biblioth¨¨que arithm¨¦tique GMP. Au lieu d'utiliser la biblioth¨¨que GMP compl¨¨te, ce guide utilisera mini-gmp qui est inclus dans Nettle.
Lors de la construction de GnuTLS et de Nettle, il est recommand¨¦ d'ex¨¦cuter make check
apr¨¨s une construction r¨¦ussie. M¨ºme si la construction a r¨¦ussi, les tests ¨¦chouent parfois. Si tel est le cas, les probl¨¨mes doivent ¨ºtre recherch¨¦s et r¨¦solus avant de continuer.
Supposons que les biblioth¨¨ques statiques PCRE, Nettle et GnuTLS seront install¨¦es dans $HOME/static-libs
. Nous utiliserons PCRE2 10.39, Nettle 3.4.1 et GnuTLS 3.6.5.
$ PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
$ NETTLE_PREFIX="$HOME/static-libs/nettle-3.4.1"
$ GNUTLS_PREFIX="$HOME/static-libs/gnutls-3.6.5"
Construisons des biblioth¨¨ques statiques dans static-libs-source
:
T¨¦l¨¦chargez et compilez Nettle :
$ curl --remote-name https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz
$ tar xf nettle-3.4.1.tar.gz
$ cd nettle-3.4.1
$ ./configure --prefix="$NETTLE_PREFIX" --enable-static --disable-shared --disable-documentation --disable-assembler --enable-x86-aesni --enable-mini-gmp
$ make
$ make check
$ make install
$ cd ..
T¨¦l¨¦chargez et compilez GnuTLS :
$ curl --remote-name https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.5.tar.xz
$ tar xf gnutls-3.6.5.tar.xz
$ cd gnutls-3.6.5
$ PKG_CONFIG_PATH="$NETTLE_PREFIX/lib/pkgconfig" ./configure --prefix="$GNUTLS_PREFIX" --enable-static --disable-shared --disable-guile --disable-doc --disable-tools --disable-libdane --without-idn --without-p11-kit --without-tpm --with-included-libtasn1 --with-included-unistring --with-nettle-mini
$ make
$ make check
$ make install
$ cd ..
T¨¦l¨¦chargez la source Áú»¢¶Ä²© et compilez l'agent:
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git
$ cd zabbix
$ ./bootstrap.sh
$ CFLAGS="-Wno-unused-command-line-argument -framework Foundation -framework Security" \
> LIBS="-lgnutls -lhogweed -lnettle" \
> LDFLAGS="-L$GNUTLS_PREFIX/lib -L$NETTLE_PREFIX/lib" \
> ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX" --with-gnutls="$GNUTLS_PREFIX"
$ make
$ make install