服务器安装tmux

 你完全可以在普通用户权限下安装 tmux-3.4,不需要 root 👍。核心思路是:把 tmux 编译并安装到你自己的 home 目录

我一步一步给你讲清楚👇


✅ 一、解压源码包

tar -xzf tmux-3.4.tar.gz
cd tmux-3.4

✅ 二、准备安装目录(关键!)

比如安装到你自己的目录:

mkdir -p $HOME/local/tmux

✅ 三、配置(指定安装路径)

./configure --prefix=$HOME/local/tmux

👉 这一步的意思是:
把 tmux 安装到你自己的目录,而不是系统目录 /usr/bin


⚠️ 四、如果报错(常见依赖问题)

tmux 依赖:

  • libevent

  • ncurses

如果系统没有,你也可以用同样方式本地安装依赖

👉 方法(推荐顺序)

  1. 先装 libevent

  2. 再装 ncurses

  3. 最后再装 tmux

例如:

./configure --prefix=$HOME/local/libevent
make && make install

然后 tmux 编译时加上路径:

./configure \
  --prefix=$HOME/local/tmux \
  CFLAGS="-I$HOME/local/include" \
  LDFLAGS="-L$HOME/local/lib"

✅ 五、编译 & 安装

make -j$(nproc)
make install

✅ 六、配置环境变量(非常重要)

把 tmux 加到 PATH:

echo 'export PATH=$HOME/local/tmux/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

✅ 七、验证安装

tmux -V

如果看到:

tmux 3.4

说明成功 🎉


🚀 一句话总结

👉 普通用户安装核心就是:

  • --prefix 指到 home 目录

  • 必要时手动编译依赖

  • 配置 PATH


💡 额外技巧(更简单的方法)

如果你嫌编译麻烦,可以试:

1️⃣ 用 conda(如果有)

conda install -c conda-forge tmux

2️⃣ 用 Linuxbrew(无需 root)

👉 Homebrew(Linux 版也叫 brew)


如果你愿意,可以把你 ./configure 报错贴出来,我可以帮你一步步解决依赖问题 👍


这个报错大概率不是 tmux 自己的 configure,而是你在编 libevent 时遇到的:libevent 检测不到 OpenSSL,所以失败了;而 libevent 的构建文档里明确支持 --disable-openssl。tmux 官方安装说明也提到,遇到可选依赖时可以显式关闭,比如 --disable-utf8proc,并且如果你把软件装到用户目录,Linux 下可能还需要设置 LD_LIBRARY_PATH。(GitHub)

你这种“普通用户 + 不能补系统库”的场景,最稳妥的办法是:

直接走无 OpenSSL 的本地编译

1)先编 libevent,关闭 openssl

假设你手里也有 libevent 的源码包:

tar -xzf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable

mkdir -p $HOME/local/libevent

./configure \
  --prefix=$HOME/local/libevent \
  --disable-openssl

make -j$(nproc)
make install

--disable-openssl 是 libevent 支持的构建选项。(GitHub)


2)再编 tmux,指向你自己的 libevent

回到 tmux-3.4 源码目录:

cd ~/tmux-3.4

mkdir -p $HOME/local/tmux

./configure \
  --prefix=$HOME/local/tmux \
  CFLAGS="-I$HOME/local/libevent/include" \
  LDFLAGS="-L$HOME/local/libevent/lib" \
  PKG_CONFIG_PATH="$HOME/local/libevent/lib/pkgconfig" \
  --disable-utf8proc

然后:

make -j$(nproc)
make install

tmux 官方安装页提到,utf8proc 也可以显式关闭:--disable-utf8proc。(GitHub)


3)设置运行环境

因为你不是装到系统目录,tmux 官方也提醒过:在 Linux 上从 ~/local 之类目录运行时,可能需要设置 LD_LIBRARY_PATH,否则程序启动时找不到你自己装的动态库。(GitHub)

把下面几行加到 ~/.bashrc

export PATH="$HOME/local/tmux/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/local/libevent/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$HOME/local/libevent/lib/pkgconfig:$PKG_CONFIG_PATH"

生效:

source ~/.bashrc

验证:

tmux -V

如果你没有 libevent 源码包

那 tmux 还是装不了,因为 tmux 依赖 libevent。你至少需要:

  • tmux-3.4.tar.gz

  • libevent-*.tar.gz

如果系统自带 libevent 开发包,那也许能直接用;但从你现在的报错看,像是你已经在尝试本地编 libevent,只是被 OpenSSL 卡住了。


你现在最该试的命令

如果你当前就在 libevent 源码目录里,先直接跑:

./configure --prefix=$HOME/local/libevent --disable-openssl

如果这一步能过,再 make && make install


常见下一步报错

你接下来最可能遇到的是两类:

  1. tmux configure 找不到 libevent
    这时基本就是 PKG_CONFIG_PATHCFLAGSLDFLAGS 没传对。

  2. tmux 能编过但运行时报共享库找不到
    这时加上:

    export LD_LIBRARY_PATH="$HOME/local/libevent/lib:$LD_LIBRARY_PATH"
    

把你现在编的那个目录里执行的完整命令,和新的报错前 30 行贴给我,我可以直接按你的机器环境给你改成一套能跑的命令。


这个不能靠“修改一下把 curses 跳过”来解决,因为 tmux 本身就依赖 curses/ncurses 终端库;tmux 官方安装说明给的是“本地安装 libevent 和 ncurses 到 ~/local”这条路,而不是禁用 curses。ncurses 官方安装文档也支持用 --prefix 安装到你自己的目录。(GitHub)

你现在直接这样做就行。

1)先本地编 ncurses

假设你有 ncurses-6.x.tar.gz 源码包:

tar -xzf ncurses-6.4.tar.gz
cd ncurses-6.4

mkdir -p $HOME/local/ncurses

./configure \
  --prefix=$HOME/local/ncurses \
  --with-shared \
  --with-termlib \
  --enable-pc-files \
  --without-debug

make -j$(nproc)
make install

这里的关键是:

  • --prefix=$HOME/local/ncurses:装到你自己目录

  • --with-shared:生成动态库,后面 tmux 更容易链接

  • --enable-pc-files:生成 pkg-config 用的 .pc 文件,方便 configure 找到

  • --with-termlib:把 terminfo 相关库拆出来,和很多系统习惯更兼容

这些都属于 ncurses 官方 configure 支持的安装方式。(Invisible Island)


2)再编 tmux,显式指向 libevent 和 ncurses

你前面应该已经把 libevent 装到 $HOME/local/libevent 了。现在进 tmux-3.4 目录:

cd ~/tmux-3.4

mkdir -p $HOME/local/tmux

export PKG_CONFIG_PATH="$HOME/local/libevent/lib/pkgconfig:$HOME/local/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"
export CFLAGS="-I$HOME/local/libevent/include -I$HOME/local/ncurses/include"
export LDFLAGS="-L$HOME/local/libevent/lib -L$HOME/local/ncurses/lib"
export LD_LIBRARY_PATH="$HOME/local/libevent/lib:$HOME/local/ncurses/lib:$LD_LIBRARY_PATH"

./configure \
  --prefix=$HOME/local/tmux \
  --disable-utf8proc

make -j$(nproc)
make install

tmux 官方文档明确提到可以本地安装依赖到 ~/local,并且在 Linux 上如果装到用户目录,运行时通常需要设置 LD_LIBRARY_PATH;如果没有 utf8proc,也可以加 --disable-utf8proc。(GitHub)


3)把运行环境写进 ~/.bashrc

echo 'export PATH="$HOME/local/tmux/bin:$PATH"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="$HOME/local/libevent/lib:$HOME/local/ncurses/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc
echo 'export PKG_CONFIG_PATH="$HOME/local/libevent/lib/pkgconfig:$HOME/local/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc

source ~/.bashrc

验证:

tmux -V

你最可能遇到的一个坑

有些机器上,tmux configure 还是可能报找不到 curses,即使你已经装了 ncurses。这通常是因为头文件路径不对,尤其是头文件在 include/ncursesinclude/ncursesw 下面。

这时改成:

export CFLAGS="-I$HOME/local/libevent/include -I$HOME/local/ncurses/include -I$HOME/local/ncurses/include/ncurses"

如果还不行,再试:

export CPPFLAGS="-I$HOME/local/ncurses/include -I$HOME/local/ncurses/include/ncurses"

然后重新跑 ./configure


最短可执行方案

如果你只想看最短命令,按这个顺序打:

# 1. ncurses
tar -xzf ncurses-6.4.tar.gz
cd ncurses-6.4
./configure --prefix=$HOME/local/ncurses --with-shared --with-termlib --enable-pc-files --without-debug
make -j$(nproc)
make install

# 2. tmux
cd ~/tmux-3.4
export PKG_CONFIG_PATH="$HOME/local/libevent/lib/pkgconfig:$HOME/local/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"
export CFLAGS="-I$HOME/local/libevent/include -I$HOME/local/ncurses/include"
export LDFLAGS="-L$HOME/local/libevent/lib -L$HOME/local/ncurses/lib"
export LD_LIBRARY_PATH="$HOME/local/libevent/lib:$HOME/local/ncurses/lib:$LD_LIBRARY_PATH"

./configure --prefix=$HOME/local/tmux --disable-utf8proc
make -j$(nproc)
make install

如果你手里没有 ncurses 源码包,我也可以直接给你一套“普通用户下载 + 编译 + 安装 tmux”的完整命令。

评论

此博客中的热门博文

使用自己的github加速源

申请证书

wsl安装cuda

解决v2rayN的延迟是-1的问题

量化指标计算

wsl虚拟机释放文件

git从本地删除代码,同时同步仓库删除代码;创建信分支并切换到该分支;获取所有的远程分支

解决linux如何安装BBRplus,以及安装BBRplus版加速失败的问题

创建软连接