软件包管理2

四、程序包编译

    程序包编译安装:

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

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

    源代码组织格式:

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

        C、 C++: make (项目管理器, configure –>

            Makefile.in –> makefile)

        java: maven

    编译安装

    C代码编译安装三步骤:

        ./configure:

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

            检查依赖到的外部环境

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

        make install:复制文件到相应路径

    开发工具:

        autoconf: 生成configure脚本

        automake:生成Makefile.in

    注意:安装前查看INSTALL, README

    开源程序源代码的获取:

        官方自建站点:

            apache.org (ASF)

            mariadb.org

            …

        代码托管:

            SourceForge.net

            Github.com

            code.google.com

        c/c++编译器: gcc (GNU C Complier)

    编译C源代码:

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

            开发工具: make, gcc等

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

                glibc:标准库

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

            CentOS 6: 

                Development Tools

                Server Platform Development

            CentOS 7:

                Development Tools

                Development and Creative Workstation

    第一步: configure脚本

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

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

        选项分类:

        安装路径设定:

            –prefix=/PATH: 指定默认安装位置,默认为/usr/local/

            –sysconfdir=/PATH:配置文件安装位置

            System types:支持交叉编译

        Optional Features: 可选特性

            –disable-FEATURE

            –enable-FEATURE[=ARG]

        Optional Packages: 可选包,

            –with-PACKAGE[=ARG],依赖包

            –without-PACKAGE,禁用依赖关系

    第二步: make

    第三步: make install

    安装后的配置:

    二进制程序目录导入至PATH环境变量中;

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

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

    导入库文件路径

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

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

        让系统重新生成缓存:

            ldconfig [-v]

    导入头文件

        基于链接的方式实现:

            ln -sv

    导入帮助手册

        编辑/etc/man.config|man_db.conf文件

            添加一个MANPATH

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/40611

(0)
上一篇 2016-08-27 16:39
下一篇 2016-08-28 14:41

相关推荐

  • 第二周作业

    第二周

    Linux干货 2017-12-11
  • BIND(Berkeley Internet Name Domain) is an implementation of the DNS(Domain Name System) (Blob 12)

    正向解析区域、反向解析区域;主/从;子域;基本安全控制;

    2017-11-29
  • N25_第一周

    计算机组成 计算机通常由硬件和软件组成1.硬件 CPU CPU通常由控制器和运算器组成。控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。运算器:是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 存储 存储器的功能是存储程序、…

    Linux干货 2016-12-03
  • linux中find命令的那些事

         概述:在介绍find这个强大的文件查找命令前,我们先介绍两个较简单的文件查找命令whereis和locate命令,通常我们都是先使用whereis或者是locate检查,如果真的找不到了,才用find来查找,因为whereis和locate是利用数据库来查找数据的,速度相当快,节约时间,缺点就是有可…

    Linux干货 2016-08-18
  • DNS服务器之理论基础

    一、什么是DNS     DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。     在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识…

    Linux干货 2015-04-29
  • Nginx:

    来自为知笔记(Wiz)

    Linux干货 2016-10-26