Skip to content

Instantly share code, notes, and snippets.

@jnovack
Last active January 17, 2024 18:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jnovack/e23484a56e96ec9eb18aee89693f2570 to your computer and use it in GitHub Desktop.
Save jnovack/e23484a56e96ec9eb18aee89693f2570 to your computer and use it in GitHub Desktop.
tmux installation on Mac OSX Catalina
#!/bin/sh
## setup _________________________________
TMUX_VER=3.3a
LIBEVENT_VER=2.1.12-stable
OPENSSL_VER=1_1_1v
TEMP_COMPILE=~/tmux-temp-compile
COMMON_INSTALL_PREFIX=/opt
SYMLINK=/usr/local/bin/tmux
## _______________________________________
echo
echo ">>> Creating and using temporary dir ${TEMP_COMPILE} for downloading and compiling libevent and tmux ..."
echo
mkdir ${TEMP_COMPILE}
cd ${TEMP_COMPILE}
echo
echo ">>> Downloading the releases ..."
echo
curl -OL https://github.com/tmux/tmux/releases/download/${TMUX_VER}/tmux-${TMUX_VER}.tar.gz
curl -OL https://github.com/libevent/libevent/releases/download/release-${LIBEVENT_VER}/libevent-${LIBEVENT_VER}.tar.gz
curl -OL https://github.com/openssl/openssl/archive/OpenSSL_${OPENSSL_VER}.tar.gz
echo
echo ">>> Extracting tmux ${TMUX_VER}, libevent ${LIBEVENT_VER}, and openssl ${OPENSSL_VER}..."
echo
tar xzf tmux-${TMUX_VER}.tar.gz
tar xzf libevent-${LIBEVENT_VER}.tar.gz
tar xzf OpenSSL_${OPENSSL_VER}.tar.gz
echo
echo ">>> Compiling openssl ..."
echo
cd openssl-OpenSSL_${OPENSSL_VER}
./config --prefix=${COMMON_INSTALL_PREFIX}
make
make test
# Only install libs & includes
sudo make install_dev
echo
echo ">>> Compiling libevent ..."
echo
cd ../libevent-${LIBEVENT_VER}
PKG_CONFIG_PATH=${COMMON_INSTALL_PREFIX}/lib/pkgconfig LDFLAGS="-L${COMMON_INSTALL_PREFIX}/lib" CPPFLAGS="-I${COMMON_INSTALL_PREFIX}/include" ./configure --prefix=${COMMON_INSTALL_PREFIX} OPENSSL_CFLAGS=-I/opt/include OPENSSL_LIBS="-L/opt/lib -lssl -lcrypto"
sudo make
sudo make install
echo
echo ">>> Compiling tmux ..."
echo
cd ../tmux-${TMUX_VER}
LDFLAGS="-L${COMMON_INSTALL_PREFIX}/lib" CPPFLAGS="-I${COMMON_INSTALL_PREFIX}/include" LIBS="-lresolv" ./configure --prefix=${COMMON_INSTALL_PREFIX} --disable-utf8proc
make
echo
echo ">>> Installing tmux in ${COMMON_INSTALL_PREFIX}/bin ..."
echo
sudo make install
echo
echo ">>> Symlink to it from ${SYMLINK} ..."
sudo rm ${SYMLINK}
sudo ln -s ${COMMON_INSTALL_PREFIX}/bin/tmux ${SYMLINK}
echo
echo ">>> Cleaning up by removing the temporary dir ${TEMP_COMPILE} ..."
echo
cd ..
sudo rm -rf ${TEMP_COMPILE}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment