程序包管理之编译安装

1、程序包编译安装流程:


src格式的源码包可以根据CPU的平台灵活编译安装使用

     testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;

从源代码到被使用的过程:

     源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行

     源代码组织格式:

          多文件:文件中的代码之间,很可能存在跨文件的依赖关系;

     项目管理器(代码管理工具):能够根据配置文件实现自动完成大多复杂步骤

          C、C++: make (configure --> Makefile.in --> makefile)

          java: maven


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2、C代码编译安装三步骤:

    (1) ./configure

          (a) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;

          (b) 检查依赖到的外部环境;

    (2) make

          根据makefile文件,构建应用程序;

    (3) make install

          将生成的可执行文件或者生成的库拷贝到相应的目录

开发工具:

     autoconf: 生成configure脚本

     automake:生成Makefile.in文件

     建议:安装前查看INSTALL,README


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


3、开源程序源代码的获取:

     (1) 官方自建站点:

          apache.org (ASF)

          mariadb.org

          ...

     (2) 代码托管站点:

          SourceForge

          Github.com

          code.google.com

          ...


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


4、编译安装源代码:

编译器:

     c/c++: gcc (GNU C Complier)

编译C源代码:

     前提:提供开发工具及开发环境

          开发工具:make, gcc等

          开发环境:开发库,头文件

               glibc:标准库

          通过“包组”提供开发组件

               CentOS 6: "Development Tools", "Server Platform Development", ...

               CentOS 7:"Development Tools"

     第一步:configure脚本

          选项:指定安装位置、指定启用的特性

          --help: 获取其支持使用的选项

               选项分类:

                    安装路径设定:

                         --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

                         --sysconfdir=/PATH/TO/SOMEWHERE:指定配置文件安装位置;

                    System types:指定编译时的系统类型,实现交叉编译(例如在x86_64平台上编译可以在PowerPC平台上运行的程序)

                    Optional Features: 可选特性

                         --disable-FEATURE 禁用指定特性

                         --enable-FEATURE[=ARG] 启用指定特性

                    Optional Packages: 可选包(依赖到的其他程序包)

                         --with-PACKAGE[=ARG] 必须使用指定的程序包

                         --without-PACKAGE 不使用指定的程序包

     第二步:make

     第三步:make install


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


5、安装后的配置

     (1) 导出二进制程序目录至PATH环境变量中;(不指定环境变量则只能使用绝对路径了)

          编辑文件/etc/profile.d/NAME.sh

               export PATH=/PATH/TO/BIN:$PATH

     (2) 导出库文件路径

          编辑/etc/ld.so.conf.d/NAME.conf

               添加新的库文件所在目录至此文件中;

          让系统重新生成缓存:

               ldconfig [-v]

     (3) 导出头文件

          基于链接的方式实现:

               ln -sv

     (4) 导出帮助手册

          编辑/etc/man.config文件

               添加一个MANPATH


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


示例:CentOS 6


1、安装编译环境gcc工具spacer.gif

wKiom1aDZkOCUOM3AAA5FHNBBhE068.png

wKiom1aDZkOQQjYsAAAVovCxq34079.png


2、查看是否提供了gcc工具

wKioL1aDZnDj6ohCAAAk1ifmP1M833.png


3、下载源码包,解包释放出源代码文件

wKiom1aDZmfiGHB4AABVnqzyDzc848.png


4、可以查看INSTALL的安装说明

wKioL1aDZpSS4-bTAAA0dzbr0so884.png


5、可以使用configure --help获取configure的使用帮助

wKioL1aDZqDSC0joAABMRAyS4Yw856.png


6、安装CentOS6的开发包组,提供开发组件

wKiom1aDZp-ADo1lAAAIIAtMA_0119.png

wKiom1aDZp-yZ1cCAAAJFOSszoQ830.png


7、执行configure脚本指定默认安装位置以及配置文件的位置 

wKioL1aDZtPy2JtVAAAKWm4JDSk952.png


8、执行make,根据makefile文件,构建应用程序

wKioL1aDZuXBwKILAAAGxAmsThY934.png


9、执行make install,将生成的可执行文件或者生成的库拷贝到相应的目录

wKiom1aDZtXCjdwLAAAHJrvjSOA181.png


10、安装完成就可以在安装目录下看到生成的对应的目录了

wKioL1aDZwLQ2eIMAAASFxYFxYw888.png


11、执行bin目录下的apachectl脚本,启动httpd服务

wKiom1aDZvSyXBnNAAAvP5DxmKY157.png


12、查看80端口是否处于监听状态,是则表示服务已启动

wKioL1aDZx2xvgD7AAAMAi9zRPI530.png

wKiom1aDZwHzD183AAAlbWfRLNM805.png

spacer.gif

你可能感兴趣的:(编译源码包)