参考资料
- Linux在当前(指定)用户下安装软件
- Ubuntu 源码编译安装tmux指定版本于用户目录
- 无root权限下解决编译时的依赖问题
下载源码及依赖
tmux源码地址:https://github.com/tmux/tmux 依赖(Dependencies) - libevent 2.x源码地址:https://github.com/libevent/libevent - ncurses 源码地址:https://invisible-mirror.net/archives/ncurses/ 使用wget下载源码的示例命令如下:
1 2 3
| wget https://github.com/tmux/tmux/releases/download/3.1b/tmux-3.1b.tar.gz wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz wget https://invisible-mirror.net/archives/ncurses/ncurses-6.0.tar.gz
|
编译
参考资料2编译即可. 编译常见三部曲为./configure --prefix=$HOME/usr && make && make install
,其中./configure
设置尤为重要. 因为无root权限,所以需要使用prefix
选项改变安装位置
- 安装依赖libevent
1 2 3 4 5
| tar -zxvf libevent-2.1.11-stable.tar.gz cd libevent-2.1.11-stable ./configure --prefix=$HOME/.local --disable-shared make make install
|
- 安装依赖ncurses
1 2 3 4 5
| tar -zxvf ncurses-6.0.tar.gz cd ncurses-6.0 ./configure --prefix=$HOME/.local make make install
|
编译过程会出现错误,参考资料2解决即可. 大约是在104行,去除104行后面的注释。即:删除/* generated */
- 安装tmux
1 2
| tar -zxvf tmux-3.1b.tar.gz cd tmux-3.1b
|
tmux依赖于libevent和ncurses,需设置编译选项 编译有关的环境变量
1 2 3 4 5 6 7 8 9 10 11 12
| # 编译器 CC 指定C编译器(compiler command)路径 CXX 指定C++编译器 # 编译器选项 CFLAGS 用于C编译器的选项 CXXFLAGS 用于C++编译器的选项 LDFLAGS 链接相关选项,如果你有自定义的函数库(lib dir),即可以用 -L<lib dir>指定 # 预编译器 CXXCPP C++ 预处理器(preprocessor) CPP C 预处理器(preprocessor) # 预编译器选项 CPPFLAGS C/C++预处理器选项, 如果你自定义的头文件,可以用-I<include dir>
|
tmux的编译选项设置可参考资料2和资料3
1 2 3 4
| cd tmux-3.1b ./configure CFLAGS="-I$HOME/.local/include -I$HOME/.local/include/ncurses" LDFLAGS="-L$HOME/.local/lib -L$HOME/.local/include/ncurses -L$HOME/.local/include" CPPFLAGS="-I$HOME/.local/include -I$HOME/.local/include/ncurses" LDFLAGS="-static -L$HOME/.local/include -L$HOME/.local/include/ncurses -L$HOME/.local/lib" make cp tmux $HOME/.local/bin
|
- 添加环境变量
1 2 3
| # 用vim修改.bashrc,在文件中添加一行export PATH="$HOME/.local/bin:$PATH",保证每次都有效 export PATH="$HOME/.local/bin:$PATH" source ~/.bashrc
|
这样就完成了tmux的编译安装,下一篇博文将介绍如何使用tmux.