青蛙小白
目录

Ubuntu 上安装与更新 tmux

适用环境:Ubuntu 24.04(x86_64)。本文采用官方 release 源码编译,将 tmux 安装到用户目录 ~/.local,并保留 Ubuntu 自带的 /usr/bin/tmux 作为回退版本。

当前安装状态

以下是 2026-07-13 的环境快照:

用户安装路径:~/.local/bin/tmux
当前安装版本:tmux 3.7b
系统备用路径:/usr/bin/tmux
系统备用版本:tmux 3.4

因为 ~/.local/bin 位于 /usr/bin 之前,直接执行 tmux 时会使用用户安装的新版本。

首次安装编译依赖

依赖通常只需安装一次:

sudo apt-get update
sudo apt-get install -y \
  build-essential \
  bison \
  pkg-config \
  libevent-dev \
  libncurses-dev

查询官方最新版本

通过 GitHub 官方 API 查询,不要依赖可能滞后的搜索结果:

curl -fsSL https://api.github.com/repos/tmux/tmux/releases/latest \
  | grep -E '"tag_name"|"published_at"|"browser_download_url"|"digest"'

官方发布页面:https://github.com/tmux/tmux/releases/latest

以下示例使用 3.7b。升级到后续版本时,请同时替换版本号和官方 API 中给出的 SHA-256。

下载并校验源码

VERSION=3.7b
cd /tmp

curl -fLO \
  "https://github.com/tmux/tmux/releases/download/${VERSION}/tmux-${VERSION}.tar.gz"

tmux 3.7b 官方源码包的 SHA-256:

87f2e99e3b685973f2ca002ffd6ed7e51a5744f7009daae5a15670b6d532db96

执行校验:

echo '87f2e99e3b685973f2ca002ffd6ed7e51a5744f7009daae5a15670b6d532db96  tmux-3.7b.tar.gz' \
  | sha256sum -c -

只有看到以下结果后才继续:

tmux-3.7b.tar.gz: OK

编译和安装

VERSION=3.7b
cd /tmp
tar -xzf "tmux-${VERSION}.tar.gz"
cd "tmux-${VERSION}"

./configure --prefix="$HOME/.local"
make -j"$(nproc)"
./tmux -V
make install
hash -r

这里的 make install 不需要 sudo,因为目标目录属于当前用户。

安装后验证

确认默认路径和版本:

command -v tmux
tmux -V
type -a tmux

预期默认路径类似:

/home/<user>/.local/bin/tmux

检查动态库是否均能找到:

ldd "$HOME/.local/bin/tmux"

使用独立 socket 做冒烟测试,不影响正常 session:

tmux -L upgrade-test new-session -d -s smoke-test
tmux -L upgrade-test display-message -p '#{version} #{session_name} #{window_name}'
tmux -L upgrade-test list-panes -a -F '#{pane_current_command}'
tmux -L upgrade-test kill-server

后续更新

  1. 使用 GitHub 官方 API 查询最新 release。
  2. 从 release 的 assets 中确认下载地址和 sha256: 摘要。
  3. 下载源码包并校验 SHA-256。
  4. 使用相同的 --prefix="$HOME/.local" 编译并安装。
  5. 执行版本检查和隔离 socket 冒烟测试。

新版本会覆盖 ~/.local/bin/tmux 和对应 man page,但不会修改 /usr/bin/tmux

如果更新时已有 tmux server 在运行,旧 server 不会自动变成新版本。保存工作并退出全部旧 session 后执行:

tmux kill-server
tmux -V
tmux
tmux kill-server 会终止该 server 下的全部 session,执行前务必确认其中没有未保存的工作。

回退到 Ubuntu 自带版本

临时运行系统版本:

/usr/bin/tmux -V
/usr/bin/tmux

让系统版本重新成为默认版本:

mv "$HOME/.local/bin/tmux" "$HOME/.local/bin/tmux.disabled"
hash -r
command -v tmux
tmux -V

恢复用户安装版本:

mv "$HOME/.local/bin/tmux.disabled" "$HOME/.local/bin/tmux"
hash -r
tmux -V

清理构建文件

确认新版运行正常后,可以删除 /tmp 下的源码和压缩包:

VERSION=3.7b
rm -rf "/tmp/tmux-${VERSION}" "/tmp/tmux-${VERSION}.tar.gz"

如果是在其他目录构建,请相应调整路径,并在删除前再次核对。

参考资料

评论