远程服务器中编译安装tmux

在工作当中,公司出于安全考虑,部署的远程Linux服务器总有一些限制(没网,Shell指令有限),而且员工作为普通用户,无法安装软件到除用户目录以外的目录。当我们需要下载安装一些常用工具时,因为没网,所以无法使用apt-get等下载指令,只能先在本地PC下载软件源码,然后传入服务器进行编译安装。本文以tmux为例说明服务器中编译安装软件的流程。

安装路径:~/lib/software/tmux

Download

tmux的下载地址 : https://github.com/tmux/tmux/releases/download/2.5/tmux-2.5.tar.gz

依赖库libeventhttps://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz

下载后的文件通过一定方式(scp,共享服务,...)可以传入服务器中。

Move files (optional)

在服务器中执行以下指令,将文件放入~/lib文件夹。

cd
mkdir lib
cp sharedir.git/*.tar.gz lib/

Edit .profile

编辑.profile,添加全局变量SWDIR(存放用户手动编译安装的软件);更新依赖库LD_LIBRARY_PATH和环境变量PATH,分别添加tmux的依赖路径和安装路径。

$ vim ~/.profile
# ...
export SWDIR=/home/<username>/lib/software
export LD_LIBRARY_PATH=$LD_LIBRARY:$SWDIR/libevent/lib

PATH=$PATH:${SWDIR}/tmux/:${SWDIR}/tmux/bin/

Complie libevent

配置好环境变量后,首先编译tmux的依赖库libevent

cd ~/lib
tar -xvzf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./autogen.sh
./configure --prefix=$SWDIR/libevent && make
make install

说明:默认安装路径是没有访问权限的,所以需要使用--prefix选项手动指定安装路径至用户目录中的某个文件夹。

Complie tmux

cd ~/lib
tar -xvzf tmux-2.5.tar.gz
cd tmux-2.5
./configure --prefix=$SWDIR/tmux CFLAGS="-I$SWDIR/libevent/include" LDFLAGS="-L$SWDIR/libevent/lib" && make
make install

说明:CFLAGSLDFLAGS用于指定编译tmux所需的依赖库文件。

至此,tmux便安装完成了。在shell中输入tmux即可启动,通过man tmux可以查看帮助文档。