分类: LINUX
2015-12-04 14:24:53
需要在rhel6.3上安装tmux。不知道自己当初安装linux的时候怎么选得,发现系统里面缺少很多编程工具和库,导致花费了近乎2个小时才安装成功。
安装成功以后,总结一下,其实很简单。可是在编译安装过程中由于缺少一些库,导致编译不停报错。而一些错误提示,没有明显的指出是什么问题,网上搜索关键字,出来一大堆结果,要在其中挨个寻找。为了以后再有类似的工作能够顺利一点,也不要发怵,特此总结。
一,整体安装过程
1)在chinaunix上下载以下几个库并且安装:
ncurses, pkgconf, autoconf,automake,m4。
我还安装了libtool,但不能确定是不是必须。
安装过程也很简单,全部configure,make,make install 三步曲。
值得注意的是,有文章指出,一定按照m4,autoconf,automake的顺序来装这三个库
2)编译安装libevent,tmux
二、安装过程遇到问题的解决
1,在tmux目录下,sh autogen.sh来生成configure
出现错误提示:aclocal找不到。百度后知道需要安装autoconf,automake,m4。
2,安装后重新执行sh autogen.sh,报错
configure.ac:100: error: possibly undefined macro: AC_SEARCH_LIBS
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/bin/autoconf failed with exit status: 1不理它,再次执行sh autogen.sh,会生成configure
这个错误信息的意思是:缺少一个.m4文件,这个文件应该包含了AC_SEARCH_LIBS的定义。但是我们不知道这个m4文件是哪个,是什么相关的。
那就暂时先执行configure,会报错,提示:
syntax error near unexpected token `newline’ PKG_CHECK_MODULES(
百度这句话,出来的结果有一种说,是换行符不同导致的,说替换换行符就可以了。照做后不行。
实际上,这句话就是提示了,我们少了一个pkg方面的m4文件——是的,这就是要安装pkgconf。实际上找到这个原因占用了我这次工作的大部分时间。
3,安装pkgconf
会在/usr/local/share/aclocal 下生成一个pkg.m4,因为我前面编译安装的是aclocal1.2,所以要将pkg.m4复制到/usr/local/share/aclocal-1.2下,实际上,为了不出其它问题,我将aclocal下的其它m4文件也复制过来了。
4,继续,会提示缺少curses,安装ncurses库
5,剩下的就简单了:
tmux编译通过。
#报错 tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
sudo cp /tmp/libevent/lib/libevent-2.0.so.5 /usr/lib
重新执行,还是报错。
sudo cp /tmp/libevent/lib/libevent-2.0.so.5 /usr/lib64
(服务器是64位。。。。。)
现在可以了。
如果提示 ncurses not found 就执行 yum -y install ncurses-devel 就OK
直接使用tmux命令需要将环境变量加入到.bashrc
即 在~/.baserc 文件中加入 PATH=/usr/local/tmux/bin:$PATH
三、总结:
有用的几个帖子:
1. Linux GNU C语言项目组织工具 autotools 使用 http://my.oschina.net/congqian/blog/84385
这个帖子描述了autotools工具的大致工作过程,并解释了错误2.2
2、LIBTOOL is undefined问题的解决方法
这个帖子指出:aclocal是个扫描程序, 负责扫描configure.ac中所有的宏定义并展开,aclocal是去默认安装目录 /usr/share/aclocal下面搜索所有的.m4文件找所定义的宏,并给出解决办法。
3、possibly undefined macro: AM_CONFIG_HEADER If this token and others are legitimate, please use m4_pa http://blog.csdn.net/ldl22847/article/details/8576673
这个帖子指出对应的错误是需要安装libtools
4、关于报错“syntax error near unexpected token `”和回车换行 http://blog.csdn.net/windless0530/article/details/6077654
5、ArchLinux上搭建Twitter Storm平台 http://blog.csdn.net/detective_xin/article/details/8120408
就是这篇帖子明确指出:PKG_CHECK_MODULES 是定义在pkg.m4文件,出现这个问题的原因是automake没法定位到pkg.m4。
感谢作者,而且帖子的排版也非常漂亮和有条理,非常值得学习。
6、Thrift官方安装手册(译) http://blog.csdn.net/qq910894904/article/details/41132779
同样指出:pkg.m4由pkg-config 工具生成.如果你的目录/usr/share/aclocal下没有pkg.m4文件,说明你可能没有安装pkg-config
7、redhat tmux 安装与配置 http://249wangmang.blog.163.com/blog/static/526307652013715114153859/
不错的tmux编译,安装过程总结。