Skip to content

Instantly share code, notes, and snippets.

@shime
Forked from ryin/tmux_local_install.sh
Last active November 11, 2024 01:23
Show Gist options
  • Save shime/5706655 to your computer and use it in GitHub Desktop.
Save shime/5706655 to your computer and use it in GitHub Desktop.
installation script for tmux 1.9a

Having trouble installing the latest stable version of tmux?

I know, official package for your OS/distro is outdated and you just want the newest version of tmux.

Well, this script should save you some time with that.

Prerequisities

  • gcc
  • wget

Installs

  • tmux - 1.9a (latest stable)
  • libevent - 2.0.21 (latest stable)
  • ncurses - 5.9 (latest stable)

How to install

First of all, you should give me super user permissions, because this will install tmux to /usr/local/lib by default. Trust me, I'm a random guy from the interwebz.

Hit

curl -fsSL https://gist.github.com/shime/5706655/raw/install.sh | sudo bash -e
#!/bin/bash
# Script for installing tmux and dependencies.
# tmux will be installed in /usr/local/lib by default.
# Prerequisites: - gcc
# - wget
# define versions
tmux_version="1.9"
tmux_patch_version="a" # leave empty for stable releases
libevent_version="2.0.21"
ncurses_version="5.9"
tmux_name="tmux-$tmux_version"
tmux_relative_url="$tmux_name/$tmux_name$tmux_patch_version"
libevent_name="libevent-$libevent_version-stable"
ncurses_name="ncurses-$ncurses_version"
# set the installation directory
target_dir="/usr/local"
# download source files for tmux, libevent, and ncurses
# save them in /tmp
cd /tmp
wget -O $tmux_name.tar.gz http://sourceforge.net/projects/tmux/files/tmux/$tmux_relative_url.tar.gz/download
wget -O $libevent_name.tar.gz https://github.com/downloads/libevent/libevent/$libevent_name.tar.gz
wget -O $ncurses_name.tar.gz ftp://ftp.gnu.org/gnu/ncurses/$ncurses_name.tar.gz
# extract files, configure, and compile
# libevent installation
tar xvzf $libevent_name.tar.gz
cd $libevent_name
./configure --prefix=$target_dir --disable-shared
make
make install
cd -
# ncurses installation
tar xvzf $ncurses_name.tar.gz
cd $ncurses_name
./configure --prefix=$target_dir
make
make install
cd -
# tmux installation
tar xvzf ${tmux_name}*.tar.gz
cd ${tmux_name}*/
./configure CFLAGS="-I$target_dir/include -I$target_dir/include/ncurses" LDFLAGS="-L$target_dir/lib -L$target_dir/include/ncurses -L$target_dir/include"
CPPFLAGS="-I$target_dir/include -I$target_dir/include/ncurses" LDFLAGS="-static -L$target_dir/include -L$target_dir/include/ncurses -L$target_dir/lib" make
cp tmux $target_dir/bin
cd -
version=`tmux -V | cut -d ' ' -f 2`
if [ -z "$version" ]; then
echo
echo "[error] failed to install tmux - check for errors in the above output"
exit 1
fi
@Integralist
Copy link

The simplest solution is...

add-apt-repository ppa:pi-rho/dev
apt-get update
apt-get install tmux-y

@shime
Copy link
Author

shime commented Sep 29, 2014

@michaelsbradleyjr man pages are left out because we're not using package manager here. fork away and add support for man pages :)
@Integralist yes if your package manager is aptitude
@mdmcaus I don't know what happened, but link for libevent is correct

@liuyuan10
Copy link

Works on my Ubuntu 14.04. Thanks!

@billiegoose
Copy link

Thanks!!

Note to others - I recommend closing any existing tmux sessions before launching the new tmux. I didn't, and not sure what happened but I was forced to do a hard reboot. :)

@limingjie
Copy link

Thank you! Saved me a lot of time!

@felippenardi
Copy link

@shime Can you update it to tmux 2.0?

@ganiszulfa
Copy link

if after running this script your tmux is 'still' not upgraded, try

/usr/local/bin/tmux -V

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment