Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16188
  • 博文数量: 10
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-24 19:43
文章分类

全部博文(10)

文章存档

2016年(4)

2015年(6)

我的朋友

分类: 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编译,安装过程总结。

阅读(1244) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~