源码包编译安装

程序包编译安装:

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

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

    

     源代码组织格式:

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

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

        java:maven

编译安装三步骤:

    ./configure:

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

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

    make

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

    make install

    开发工具:

         autoconf:生成configure脚本

         automake:生成makefile.in

    建议:安装前查看INSTALL,README

开源程序源代码的获取:

    官方自建站点:

         apache.org

         mariadb.org

        

    代码托管:

         SourceForge

         Github.com

         code.google.com

        

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

编译C源代码:

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

     开发工具:make,gcc等

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

          glibc:标准库

    通过"包组"提供开发组件

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

第一步:configure脚本

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

    

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

         选项分类:

             安装路径设定:

                 –prefix=/PATH/TO/SOMEFILE:指定默认安装位置

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

        

             Optional Features:可选特性

                 –disable-FEATURE

                 –enable-FEATURE[=ARG]

                

             Optional Packages:可选包

                 –with-PACKAGE[=ARG]

                 –without-PACKAGE

                

             第二步:make

            

             第三步:make install

    

安装后的配置:

     (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

    

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

(0)
zhai796898zhai796898
上一篇 2016-08-23 22:41
下一篇 2016-08-24 10:12

相关推荐

  • 加密通讯过程

    一次加密通讯的过程 1、client_hello   客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: 支持的最高TSL协议版本version,从低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 的版本 客户端支持的加密…

    Linux干货 2017-02-07
  • 7-28-文件管理

    1.stat命令和时间戳 详解 背景:                在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道   &n…

    Linux干货 2016-08-02
  • linux中for的用法

    关于linuxbash shell中的for语句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循环命令,今天就介绍一下关于for的一些用法。文中任何错误希望大佬们一一指出,不胜感激。 bashshell中提供了for命令,用于创建通过一系列值重复的循环,每次重复使用系列中的一个值执行一个定义的命令…

    2017-07-15
  • rpm与yum

    rpm包及yum 包查询 rpm -q –query  搭配别的选项可用来包查询 -a -f -p rpmfile:针对尚未安装的程序包文件做查询操作   -p 选项参数为文件名(一定要指定路径) 例子: rpm -qpl /media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm…

    Linux干货 2016-08-24
  • mysql慢查询日志进行按库切割重写文件然后分析

    需求: 把每天的慢查询日志进行按库切割 对每个库的慢查询日志进行分析 思路: 工具/功能 一般统计信息 高级统计信息 脚本 优势 mysqldumpslow 支持 不支持 perl mysql官方自带 mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强. mysql-explain-slow-log 支持 不支持 perl 无 my…

    Linux干货 2015-04-03
  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林  前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的角度回过头来…

    Linux干货 2015-02-26