Skip to content

Instantly share code, notes, and snippets.

@karlding
Created January 4, 2018 03:22
Show Gist options
  • Select an option

  • Save karlding/5c123c7b1b9afc24a8b257f9c67d30cf to your computer and use it in GitHub Desktop.

Select an option

Save karlding/5c123c7b1b9afc24a8b257f9c67d30cf to your computer and use it in GitHub Desktop.

Revisions

  1. karlding created this gist Jan 4, 2018.
    58 changes: 58 additions & 0 deletions tmux_local_install.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,58 @@
    #!/bin/bash

    # 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

    TMUX_VERSION=2.5

    # create our directories
    mkdir -p $HOME/local $HOME/tmux_tmp
    cd $HOME/tmux_tmp

    # download source files for tmux, libevent, and ncurses
    LIBEVENT_TAR_FILE=libevent-2.1.8-stable.tar.gz

    wget -O tmux-${TMUX_VERSION}.tar.gz https://github.com/tmux/tmux/releases/download/${TMUX_VERSION}/tmux-${TMUX_VERSION}.tar.gz
    wget -O $LIBEVENT_TAR_FILE https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/$LIBEVENT_TAR_FILE
    wget -O ncurses.tar.gz http://invisible-island.net/datafiles/release/ncurses.tar.gz

    # extract files, configure, and compile

    ############
    # libevent #
    ############
    tar xvzf $LIBEVENT_TAR_FILE
    cd libevent-2.1.8-stable
    ./configure --prefix=$HOME/local --disable-shared
    make
    make install
    cd -

    ############
    # ncurses #
    ############
    tar xvzf ncurses.tar.gz
    cd ncurses-5.9
    ./configure --prefix=$HOME/local
    make
    make install
    cd -

    ############
    # tmux #
    ############
    tar xvzf tmux-${TMUX_VERSION}.tar.gz
    cd tmux-${TMUX_VERSION}
    ./configure CFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-L$HOME/local/lib -L$HOME/local/include/ncurses -L$HOME/local/include"
    CPPFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-static -L$HOME/local/include -L$HOME/local/include/ncurses -L$HOME/local/lib" make
    cp tmux $HOME/local/bin
    cd -

    # cleanup
    rm -rf $HOME/tmux_tmp

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