服务器安装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 依赖:
libeventncurses
如果系统没有,你也可以用同样方式本地安装依赖:
👉 方法(推荐顺序)
先装
libevent再装
ncurses最后再装 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.gzlibevent-*.tar.gz
如果系统自带 libevent 开发包,那也许能直接用;但从你现在的报错看,像是你已经在尝试本地编 libevent,只是被 OpenSSL 卡住了。
你现在最该试的命令
如果你当前就在 libevent 源码目录里,先直接跑:
./configure --prefix=$HOME/local/libevent --disable-openssl
如果这一步能过,再 make && make install。
常见下一步报错
你接下来最可能遇到的是两类:
tmux
configure找不到 libevent
这时基本就是PKG_CONFIG_PATH、CFLAGS、LDFLAGS没传对。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/ncurses 或 include/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”的完整命令。
评论
发表评论