Áú»¢¶Ä²©

3 Construir l'agent Áú»¢¶Ä²© sobre macOS

Vista general

Aquesta secci¨® ensenya com crear binaris d'agent Áú»¢¶Ä²© macOS a partir de fonts amb o sense TLS.

Prerrequisits

Us caldran les eines de desenvolupament de l¨ªnia de comandes (no cal Xcode), Automake, pkg-config i PCRE (v8.x) o PCRE2 (v10.x). Si voleu crear binaris d'agent amb TLS, tamb¨¦ haureu de menester OpenSSL o GnuTLS.

Per instal¡¤lar Automake i pkg-config us caldr¨¤ el gestor de paquets, Homebrew disponible a . Per instal¡¤lar-lo, obriu el terminal i executeu l'ordre seg¨¹ent:

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Tot seguit, instal¡¤leu Automake i pkg-config:

 brew install automake
        brew install pkg-config

La preparaci¨® de les biblioteques PCRE, OpenSSL i GnuTLS dep¨¨n de com s'enlla?aran a l'agent.

Si teniu intenci¨® d'executar binaris d'agent en una m¨¤quina macOS que ja t¨¦ aquestes biblioteques, podeu emprar biblioteques precompilades proporcionades per Homebrew. Normalment s¨®n m¨¤quines macOS que empren Homebrew per crear binaris d'agent Áú»¢¶Ä²© o amb altres finalitats.

Si els binaris d'agent s'empren a m¨¤quines macOS que no tenen la versi¨® compartida de les biblioteques, haureu de compilar les biblioteques est¨¤tiques des de la font i enlla?ar l'agent Áú»¢¶Ä²© amb elles.

Construir binaris d'agent amb les biblioteques compartides

Instal¡¤leu PCRE2 (canvieu pcre2 per pcre a les comandes d'aqu¨ª sota, si cal):

brew install pcre2

Quan es compili amb TLS, instal¡¤leu OpenSSL i/o GnuTLS:

brew install openssl
       brew install gnutls

Descarregueu les fonts de Áú»¢¶Ä²© :

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

Compileu l'agent sense TLS :

cd zabbix
       ./bootstrap.sh
       ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
       make
       make install

Compileu l'agent amb OpenSSL :

cd zabbix
       ./bootstrap.sh
       ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
       make
       make install

compileu l'agent amb 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

Compilar els binaris d'agent amb biblioteques est¨¤tiques sense TLS

Suposem que les biblioteques est¨¤tiques PCRE siguin installades a $HOME/static-libs. Emprarem PCRE2 10.39.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"

Descarregueu i creeu PCRE amb el suport de les propietats d'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

Descarregueu les fonts Áú»¢¶Ä²© i compileu 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

Compilar els binaris de l'agent amb les biblioteques est¨¤tiques emprant OpenSSL

Quan es construeix OpenSSL, es recomana executar "make test" despr¨¦s d'una compilaci¨® correcta. Fins i tot si la compilaci¨® ¨¦s correcta, les proves de vegades fallen. Si ¨¦s aix¨ª, els problemes s'han d'investigar i resoldre abans de continuar.

Suposem que les biblioteques est¨¤tiques PCRE i OpenSSL s'instal¡¤laran a $HOME/static-libs. Farem servir PCRE2 10.39 i OpenSSL 1.1.1a.

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

Poseu les biblioteques est¨¤tiques a static-libs-source :

mkdir static-libs-source
       cd static-libs-source

Descarregueu i creeu PCRE amb les propietats admeses d'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 ..

Descarregueu i creeu 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 ..

Descarregueu les fonts Áú»¢¶Ä²© i compileu 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

Creeu binaris d'agent amb biblioteques est¨¤tiques amb GnuTLS

GnuTLS dep¨¨n del backend de xifrat de Nettle i de la biblioteca aritm¨¨tica GMP. En lloc d'emprar la biblioteca GMP completa, aquesta guia emprar¨¤ mini-gmp que s'inclou amb Nettle.

Quan es construeix GnuTLS i Nettle, es recomana executar make check despr¨¦s d'una compilaci¨® correcta. Fins i tot si la compilaci¨® ¨¦s correcta, les proves de vegades fallen. Si ¨¦s aix¨ª, els problemes s'han d'investigar i resoldre abans de continuar.

Suposem que les biblioteques est¨¤tiques PCRE, Nettle i GnuTLS s'instal¡¤laran a $HOME/static-libs. Farem anar PCRE2 10.39, Nettle 3.4.1 i 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"

Copiem les biblioteques est¨¤tiques a static-libs-source :

mkdir static-libs-source
       cd static-libs-source

Descarregueu i compileu 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 ..

Descarregueu les fonts de Áú»¢¶Ä²© i compileu 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