Script for installing tmux on systems where you don't have root access.

December 30, 2015 · View on GitHub

#!/bin/bash

TMUX_VERSION="2.1" LIBEVENT_VERSION="2.0.20" NCURSES_VERSION="6.0"

Script for installing tmux on systems where you don't have root access.

tmux will be installed in $HOME/local/bin.

It's assumed that wget and a C/C++ compiler are installed.

exit on error

set -e

create our directories

mkdir -p HOME/localHOME/local HOME/tmux_tmp cd $HOME/tmux_tmp

download source files for tmux, libevent, and ncurses

wget -O tmux-TMUXVERSION.tar.gzhttps://github.com/tmux/tmux/releases/download/{TMUX_VERSION}.tar.gz https://github.com/tmux/tmux/releases/download/{TMUX_VERSION}/tmux-TMUXVERSION.tar.gzwgethttps://github.com/downloads/libevent/libevent/libevent{TMUX_VERSION}.tar.gz wget https://github.com/downloads/libevent/libevent/libevent-{LIBEVENT_VERSION}-stable.tar.gz wget http://ftp.gnu.org/gnu/ncurses/ncurses-${NCURSES_VERSION}.tar.gz

extract files, configure, and compile

############

libevent

############ tar xvzf libevent-LIBEVENTVERSIONstable.tar.gzcdlibevent{LIBEVENT_VERSION}-stable.tar.gz cd libevent-{LIBEVENT_VERSION}-stable ./configure --prefix=$HOME/local --disable-shared make make install cd ..

############

ncurses

############ tar xvzf ncurses-NCURSESVERSION.tar.gzcdncurses{NCURSES_VERSION}.tar.gz cd ncurses-{NCURSES_VERSION} ./configure --prefix=$HOME/local --with-default-terminfo-dir=/usr/share/terminfo --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo" make make install cd ..

############

tmux

############ tar xvzf tmux-TMUXVERSION.tar.gzcdtmux{TMUX_VERSION}.tar.gz cd tmux-{TMUX_VERSION}

./configure --prefix=HOME/localenablestaticCFLAGS="IHOME/local --enable-static CFLAGS="-IHOME/local/include -IHOME/local/include/ncurses"LDFLAGS="LHOME/local/include/ncurses" LDFLAGS="-LHOME/local/lib -LHOME/local/include/ncursesLHOME/local/include/ncurses -LHOME/local/include" LIBEVENT_CFLAGS="-IHOME/local/include"LIBEVENTLIBS="LHOME/local/include" LIBEVENT_LIBS="-LHOME/local/lib -levent"

CPPFLAGS="-IHOME/local/includeIHOME/local/include -IHOME/local/include/ncurses" LDFLAGS="-static -LHOME/local/includeLHOME/local/include -LHOME/local/include/ncurses -L$HOME/local/lib" make -j5

make

cp tmux $HOME/local/bin cd ..

cleanup

rm -rf $HOME/tmux_tmp

echo "HOME/local/bin/tmuxisnowavailable.YoucanoptionallyaddHOME/local/bin/tmux is now available. You can optionally add HOME/local/bin to your PATH."