<ijse blog />

无root权限下安装tmux

公司的一台RedHat服务器,是普通用户权限,也不在sudoer列表中,不能使用apt-get,因此好多软件安装一般都要联系运维,比较麻烦;而一般软件安装要么是apt-get方式,要么是需要源码编译安装,文档中大多是以具备root权限为前提的。

其实,所需root权限无非是为了向某些目录写入文件,如/bin, /usr/lib等等,编译安装时,./configure命令添加--prefix参数,可以将文件全部重指定到有权限的用户home目录下,用这种方法可以安装大部分软件,如nginx, php, nodejs。

安装tmux时,所依赖的libevent库服务器上没有,于是又去下载libevent源码,然后安装完毕,当再次./configure tmux源码时,仍然报libevent not found。经过google查到,仍需要额外指定一些参数,详细如下:(假设我把libevent安装到了~/prog/libevent/文件夹下)

$> LIBEVENT_PATH=/home/webadmin/prog/libevent
$> ./configure --prefix=/home/webadmin/prog/tmux CFLAGS="-I$LIBEVENT_PATH/include" LDFLAGS="-L$LIBEVENT_PATH/lib"

如上,便可以成功 configure , make && make install

但执行tmux时仍然会报找不到libevent, 这时候需要修改一个环境变量,将libevent的路径添加进去。

$> export LD_LIBRARY_PATH="$LIBEVENT_PATH/lib/:$LD_LIBRARY_PATH"

然后tmux便可以成功执行了~

PS: 在编译libevent时,configure命令添加 --disable-shared 也可以解决这个问题。


一般为了tmux可以随时调用,我会在.bashrc文件中添加以上环境变量的配置,及创建一个tmux的命令别名,这样不必每次重新配置和使用全路径执行程序了。