Linux编译安装

编译准备

提前做好如下准备:

  1. 下载gcc/gcc+/cmake等编译工具
  2. 检查并安装软件对应的开发库,如:zlib expat等;
  3. 以下常用库的说明:
    1. zlib
    2. expat
    3. 待补充
  4. 使用以下简单的术语:
    1. 二进制文件:编译后生成的可执行文件(bin)、库文件(lib)、资源文件(res)(包括图片、图标等);
    2. 配置文件:编译后生成的配置文件(etc),类似xxx.conf的文件,一般存放到/etc或等目录;

编译步骤

  1. 配置configure
    1. configure是一个脚本,根据当前的平台,已有编译器的类型,生成makefile文件,即编译文件;
    2. 通过configure -h(–help)查看相应的帮助;
    3. -V 查看版本
    4. –prefix=/path/to/destination 编译后的二进制文件(bin/lib/res)安装目录
    5. –sysconfigdir=/path/to/etc 编译后的配置文件(etc)目录;注意虽然一般有此配置项,但很多软件,尤其是库实际上并没有etc文件;
    6. –with-arp=/path/to/apr 这是指定apache portable run-time Libraries;根据网络需要可能会有其它特殊参数需要指定;此参数并非编译的通用参数。
    7. –with-expat=buildin 使用内置的expat库;也是对部分编译可能有用;
    8. Makefile是configure成功之后生成的文件
    9. Makefile.in是预选准备的Makefile模板
    10. –prefix等参数可能未写入Makefile文件,如:httpd的参数写入了config.nice文件;
    11. 部分软件可能是没有configure脚本的,此时只能使用自带的Makefile编译,如:Redis5;
  2. 编译 make
    1. make执行前先执行./configure;
    2. 遇到错误时,可以先尝试make clean再试;
    3. make clean是make命令的内置功能,无需Makefile中有相应的配置;
    4. make clean操作理论不删除Makefile,即不影响./configure的结
    5. 编译完成后,通过make test测试编译结果,正常时一般会显示All tests passed;注意:这并不一定是最后一行!!
    6. 根据Makefile文件的内容,不是所有的软件都有test指令,如apache httpd 2.4就没有;此时需要特别关注make的输出;
  3. 安装make install
    1. 删除make uninstall 注意,这并非标准操作,大多数软件可能没有此功能;

其它说明

  1. yum/apt-get等一般安装到/usr目录,即可执行文件位于/usr/bin目录;
  2. 通过本文方案自行编译的文件,默认安装到/usr/local目录,即可执行文件位于/usr/local/bin目录;
  3. /opt目录于用于自行下载的或通过./configure –prefix=/opt/xxxx指定的三方软件目录;
  4. ./configure脚本的用途是生成Makefile文件,其中可以包含多个指令,如:install uninstall
  5. make命令则相当于执行Makefile中所包含的指令。

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *