การติดตั้ง tmux ผ่านแพ็คเกจที่สร้างไว้ล่วงหน้า

หลายแพลตฟอร์มมีแพ็คเกจ tmux ที่สร้างไว้ล่วงหน้า แต่อาจมีเวอร์ชันเก่า คำสั่งในการค้นหาและติดตั้งสามารถดูได้จากเอกสารเครื่องมือจัดการแพ็คเกจของแพลตฟอร์ม ตัวอย่างเช่น:

| Platform | Install Command |
|---------------------|--------------------------|
| Arch Linux | pacman -S tmux |
| Debian หรือ Ubuntu | apt install tmux |
| Fedora | dnf install tmux |
| RHEL หรือ CentOS | yum install tmux |
| macOS (ใช้ Homebrew) | brew install tmux |
| macOS (ใช้ MacPorts) | port install tmux |
| openSUSE | zypper install tmux |

แพ็คเกจไบนารีจากบุคคลที่สามที่มีให้ใช้งาน: AppImage และ RPMs

ไบนารีที่สร้างไว้ล่วงหน้าแบบคงที่

ไบนารี tmux ที่สร้างไว้ล่วงหน้าสามารถดาวน์โหลดได้จากคลัง tmux-builds ไบนารีเหล่านี้สร้างสำหรับแพลตฟอร์ม Linux และ macOS ที่พบบ่อยและไม่ต้องการไลบรารีรันไทม์เพิ่มเติม ดูรายละเอียดและคำแนะนำการติดตั้งได้จากที่เก็บนั้น

การติดตั้งจากไฟล์ tarball ต้นทาง

tmux ต้องการไลบรารีสองตัวต่อไปนี้:
  • libevent
  • ncurses

นอกจากนี้ tmux ยังต้องการคอมไพเลอร์ C, make, yacc (หรือ bison) และ pkg-config

บนแพลตฟอร์มส่วนใหญ่ ไลบรารีเหล่านี้สามารถติดตั้งได้จากแพ็คเกจ ตารางต่อไปนี้แสดงแพ็คเกจที่จำเป็นสำหรับการรันหรือการสร้าง tmux:

| Platform | คำสั่ง | แพ็คเกจสำหรับการรัน | แพ็คเกจสำหรับการสร้าง |
|-----------------|------------------------|------------------------------|------------------------------------------------------|
| Debian | apt-get install | libevent ncurses | libevent-dev ncurses-dev build-essential bison pkg-config |
| RHEL หรือ CentOS| yum install | libevent ncurses | libevent-devel ncurses-devel gcc make bison pkg-config |

หาก libevent และ ncurses ไม่สามารถหาเป็นแพ็คเกจได้ สามารถสร้างจากต้นทางได้ ดูส่วนนี้

tmux ใช้ autoconf ดังนั้นจึงมีสคริปต์ configure เพื่อสร้างและติดตั้งไปยัง /usr/local โดยใช้ sudo ให้รัน:

tar -zxf tmux-*.tar.gz
cd tmux-*/
./configure
make && sudo make install

หากต้องการติดตั้งไปยังที่อื่น ให้เพิ่ม --prefix ไปที่คำสั่ง configure เช่น เพื่อติดตั้งไปยัง /usr ให้ใช้ --prefix=/usr

การสร้างไลบรารีขึ้นต้น

หากไลบรารีไม่มีให้ใช้งาน สามารถสร้างจากต้นทางและติดตั้งในที่ท้องถิ่น (ไม่แนะนำหากสามารถติดจากแพ็คเกจระบบได้)

การสร้างต้องการคอมไพเลอร์ C, make, automake, autoconf และ pkg-config โดยทั่วไปจำเป็นต้องสร้าง libevent มากกว่า ncurses

คำแนะนำฉบับเต็มสามารถดูได้จากเว็บไซต์โครงการ แต่ต่อไปนี้เป็นสรุปวิธีการติดตั้ง libevent และ ncurses ไปยัง ~/local สำหรับผู้ใช้คนเดียว หากต้องการติดตั้งทั่วระบบไปยังไดเรกทอรีภายใต้ /opt หรือ /usr/local ให้แทนที่เส้นทางที่จำเป็นสำหรับ $HOME/local ในแต่ละขั้นตอนและรัน make install ในฐานะ root (ตัวอย่างด้วย sudo: make && sudo make install)

#### สำหรับ libevent:

tar -zxf libevent-*.tar.gz
cd libevent-*/
./configure --prefix=$HOME/local --enable-shared
make && make install

#### สำหรับ ncurses:

tar -zxf ncurses-*.tar.gz
cd ncurses-*/
./configure --prefix=$HOME/local --with-shared --with-termlib --enable-pc-files --with-pkg-config-libdir=$HOME/local/lib/pkgconfig
make && make install

จากนั้นให้สคริปต์ configure ของ tmux ชี้ไปยังไลบรารีท้องถิ่นโดยใช้ตัวแปรแวดล้อม PKG_CONFIG_PATH:

tar -zxf tmux-*.tar.gz
cd tmux-*/
PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig ./configure --prefix=$HOME/local
make && make install

หาก ncurses และ libevent ถูกติดตั้งในไดเรกทอรีที่ต่างกันแทนที่จะอยู่รวมกันใน ~/local จะต้องเพิ่มไดเรกทอรี lib/pkgconfig ของทั้งสองเข้าไปใน PKG_CONFIG_PATH ตัวอย่างเช่น:

PKG_CONFIG_PATH=/opt/libevent/lib/pkgconfig:/opt/ncurses/lib/pkgconfig ./configure --prefix=$HOME/local

ไบนารี tmux ที่สร้างใหม่จะอยู่ที่ ~/local/bin/tmux

เมื่อติดตั้ง tmux บน Linux ในที่ท้องถิ่น ตัวเชื่อมโยงรันไทม์อาจต้องได้รับการบอกตำแหน่งของไลบรารีโดยใช้ตัวแปรแวดล้อม LD_LIBRARY_PATH เช่น:

LD_LIBRARY_PATH=$HOME/local/lib $HOME/local/bin/tmux -V

และเพื่อดูหน้าคู่มือ (man page) จำเป็นต้องตั้งค่า MANPATH:

MANPATH=$HOME/local/share/man man tmux

ผู้ใช้ส่วนใหญ่จะต้องตั้งค่าตัวแปรเหล่านี้ในไฟล์โปรไฟล์เชลล์ ตัวอย่างเช่นใน .profile สำหรับ ksh หรือ .bash_profile สำหรับ bash:

export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export MANPATH=$HOME/local/share/man:$MANPATH

การติดตั้งจากระบบควบคุมเวอร์ชัน (Git)

การสร้าง tmux จาก Git มีข้อกำหนดเหมือนกับการสร้างจาก tarball เพิ่มเติมด้วย autoconf และ automake ขั้นตอนการสร้างเหมือนกับจาก tarball ยกเว้นขั้นตอนแรกที่ต้องสร้างสคริปต์ configure ก่อน หากต้องการติดตั้งไปยัง /usr/local ให้ทำดังนี้:
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure
make && sudo make install

ตัวเลือกการตั้งค่า configure

tmux มีตัวเลือกการตั้งค่า configure หลายตัว:

| Option | คำอธิบาย |
|----------------------|--------------------------------------------------|
| --enable-debug | สร้างพร้อมสัญลักษณ์ดีบัก |
| --enable-static | สร้างไบนารีแบบคงที่ |
| --enable-utempter | ใช้ไลบรารี utempter หากมีการติดตั้ง |
| --enable-utf8proc | ใช้ไลบรารี utf8proc หากมีการติดตั้ง |

ทราบว่า --enable-static อาจต้องการไลบรารีแบบคงที่ที่ติดตั้งไว้ เช่น บน RHEL หรือ CentOS จำเป็นต้องมีแพ็คเกจ glibc-static

ปัญหาที่พบบ่อย

configure แจ้งว่า: libevent ไม่พบหรือ ncurses ไม่พบ

ไลบรารี libevent หรือส่วนหัวของมันไม่ได้ติดตั้ง ให้ตรวจสอบว่าแพ็คเกจที่เหมาะสมได้รับการติดตั้งแล้ว (บางแพลตฟอร์มแบ่งไลบรารีและส่วนหัวออกเป็นแพ็คเกจ -dev หรือ -devel)

configure แจ้งว่า: ต้องระบุ --enable-utf8proc หรือ --disable-utf8proc

การสนับสนุน UTF-8 ในตัว macOS ที่ติดตั้งมาพร้อมเครื่องมีคุณภาพต่ำ ดังนั้นจึงแนะนำให้ใช้ไลบรารี utf8proc หากเป็นไปได้ หลังจากติดตั้งแล้ว ให้ส่ง --enable-utf8proc ไปยัง configure

หากต้องการบังคับให้ tmux สร้างโดยไม่ใช้ utf8proc ให้ใช้ --disable-utf8proc

tmux ไม่สามารถทำงานจาก ~/local

บน Linux ให้ตรวจสอบว่าตัวแปร LD_LIBRARY_PATH ถูกตั้งค่า หรือลองสร้างแบบคงที่แทนโดยให้ --enable-static กับ configure

autogen.sh รายงานข้อผิดพลาดเกี่ยวกับ AM_BLAH หรือ PKG_MODULES

ตรวจสอบว่า pkg-config ได้รับการติดตั้งแล้ว

configure แจ้งว่า: คอมไพเลอร์ C ไม่สามารถสร้างไฟล์ที่สามารถทำงานได้

หรือไม่มีคอมไพเลอร์ C (gcc, clang) ที่ติดตั้งอยู่ หรือมันทำงานไม่ถูกต้อง ตรวจสอบว่าไม่มีบางสิ่งที่ไร้สาระอยู่ใน CFLAGS หรือ CPPFLAGS

การสร้างล้มเหลวด้วยข้อผิดพลาดเกี่ยวกับ "conflicting type for forkpty"

สำหรับการสร้างแบบคงที่ ให้ตรวจสอบว่ามีไลบรารี libc แบบคงที่พร้อมใช้งาน บน RHEL หรือ CentOS จำเป็นต้องมีแพ็คเกจ glibc-static

แพ็คเกจ AppImage

คำแนะนำและสคริปต์ในการสร้างแพ็คเกจ AppImage สำหรับ tmux มีให้จาก Nelson Enzo ที่นี่ นอกจากนี้ยังมีแพ็คเกจ AppImage ที่สร้างไว้ล่วงหน้าอีกด้วย

สคริปต์ Docker

มีสคริปต์ติดตั้ง Docker ที่นี่

แพ็คเกจ RPM สำหรับ Red Hat Enterprise Linux / CentOS

แพ็คเกจ tmux ที่มีจากคลังหลักมักจะล้าสมัย โดยเฉพาะในการสนับสนุนระยะยาว สามารถดาวน์โหลด RPM สำหรับเวอร์ชัน tmux ใหม่ได้จากที่นี่

ตัวอย่างการตั้งค่าคลังและติดตั้งบน RHEL8:

sudo yum install http://galaxy4.net/repo/galaxy4-release-8-current.noarch.rpm
sudo yum install tmux

หรือติดตั้ง RPM โดยตรงบน RHEL6:

sudo rpm -ivh http://galaxy4.net/repo/RHEL/6/x86_64/tmux-3.1b-2.el6.x86_64.rpm

วิธีการใช้คลังจะช่วยให้ได้รับการอัปเดตแพ็คเกจในอนาคตโดยอัตโนมัติ ดูหน้านี้สำหรับรายละเอียดเพิ่มเติม