Skip to content

Instantly share code, notes, and snippets.

@broxio
Created May 28, 2020 04:03
Show Gist options
  • Save broxio/8ef366635a4f73d5b5ac9c2ef57a8df9 to your computer and use it in GitHub Desktop.
Save broxio/8ef366635a4f73d5b5ac9c2ef57a8df9 to your computer and use it in GitHub Desktop.
Compile haproxy at ec2
#!/bin/bash
HAPROXY="2.1.4"
OPENSSL="1.1.1g"
LUA="5.3.5"
SRC="/usr/local/src"
sudo rm /usr/local/src/* -rf
sudo apt-get install make build-essential automake libreadline-dev libz-dev libpcre3-dev logrotate libpcre2-dev -y
cd $SRC/ && sudo wget https://www.lua.org/ftp/lua-$LUA.tar.gz && sudo tar -zxf lua-$LUA.tar.gz
cd lua-$LUA && sudo make linux && sudo make INSTALL_TOP=/opt/lua53 install
cd $SRC/ && sudo wget https://www.openssl.org/source/openssl-$OPENSSL.tar.gz && sudo tar -zxf openssl-$OPENSSL.tar.gz
cd openssl-$OPENSSL && sudo ./config --prefix=/usr/local --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic && sudo make -j2 && sudo make install_sw
cd $SRC/ && sudo wget http://www.haproxy.org/download/2.1/src/haproxy-$HAPROXY.tar.gz && sudo wget http://www.haproxy.org/download/2.1/src/snapshot/haproxy-$HAPROXY-patches-LATEST.tar.gz && sudo tar -zxf haproxy-$HAPROXY.tar.gz && sudo mkdir -p /usr/local/src/a && sudo tar -zxf haproxy-$HAPROXY-patches-LATEST.tar.gz -C a --strip=1
function compile {
cd $SRC/haproxy-$HAPROXY &&
sudo make -j2 \
TARGET=linux-glibc \
USE_PCRE2=1 \
USE_PCRE2_JIT=1 \
USE_PTHREAD_PSHARED=1 \
USE_REGPARM=1 \
USE_OPENSSL=1 \
USE_LUA=1 \
LUA_LIB=/opt/lua53/lib/ \
LUA_INC=/opt/lua53/include/ \
USE_ZLIB=1 \
LDFLAGS="-lcrypt -lssl -lcrypto -L/usr/local/lib/ -llua -lm -L/usr/lib -lpcreposix -lpcre" \
CFLAGS="-O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wtype-limits" \
&& sudo make install install-bin install-man
}
if [ -z "$(ls -A /usr/local/src/a)" ]; then
echo "No patches available" && compile
else
echo "Patches available" && cd $SRC/haproxy-$HAPROXY && for i in /usr/local/src/a/*.diff; do sudo patch -p1 < $i; done && compile;
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment