Áú»¢¶Ä²©

This is a translation of the original English documentation page. Help us make it better.

Construire l'agent Áú»¢¶Ä²© sur macOS

Aper?u

Cette section montre comment cr¨¦er des binaires d'agent Áú»¢¶Ä²© macOS ¨¤ partir de sources avec ou sans TLS.

Conditions pr¨¦alables

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 :

$ brew install automake
       $ brew install 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.

Construire des fichiers binaires d'agent avec des biblioth¨¨ques partag¨¦es

Installez PCRE2 (remplacez pcre2 par pcre dans les commandes ci-dessous, si n¨¦cessaire) :

$ brew install pcre2

Lors de la compilation avec TLS, installez OpenSSL et/ou GnuTLS :

$ brew install openssl
       $ brew install gnutls

T¨¦l¨¦chargez les sources de Áú»¢¶Ä²© :

$ git clone https://git.zabbix.com/scm/zbx/zabbix.git

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

Construire des binaires d'agent avec des biblioth¨¨ques statiques sans TLS

Supposons que les biblioth¨¨ques statiques PCRE seront install¨¦es dans$HOME/static-libs. Nous utiliserons PCRE2 10.39.

$ PCRE_PREFIX="$HOME/static-libs/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

Construire des binaires d'agent avec des biblioth¨¨ques statiques avec OpenSSL

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.

$ PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
       $ OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"

Construisons des biblioth¨¨ques statiques dans static-libs-source :

$ mkdir static-libs-source
       $ cd 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

Construire des binaires d'agent avec des biblioth¨¨ques statiques avec GnuTLS

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 :

$ mkdir static-libs-source
       $ cd 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