源码包编译安装

程序包编译安装:

     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

相关推荐

  • 文件编辑之神器Sed

    pattern space   //  文本中每行内容都会进入到pattern space中, 如果匹配到了,就会进入到右分支, 如果没有匹配到,则进入左分支。 hold space  //  就是已经被模式匹配到, 并且编辑后保存的内容就是hold space 中. 默认情况下,当没有被匹配之后,没有匹配到…

    Linux干货 2016-08-15
  • rsync+inotify实现文件同步

    一、前言 什么是rsync,remote synchronize远程同步简写。Linux系统上由rsync这个软件包提供。rsync有几个特点,镜像保存整个文件目录树或文件系统;有较高的数据传输效率;可以借助ssh实现安全数据传输;支持匿名传输等。rsync同步只是针对变化的文件进行传输,意味着其会在源和目标之间比较文件的异同。相对与scp来说,第一次传输两…

    Linux干货 2015-10-31
  • 马哥教育网络21期+第七周练习博客

    马哥教育网络21期+第七周练习博客 1、创建一个10G分区,并格式为ext4文件系统; 首先挂载一个新的硬盘使用fdisk /dev/sdb进入相应的磁盘空间划分一个10G的磁盘空间; Command (m for help): n Command action    …

    Linux干货 2016-08-22
  • 文本处理工具与正则表达式

    一、文本处理工具     1.文本查看命令           cat [OPTION]… [FILE]…         -n 显示行…

    Linux干货 2016-08-08
  • 第十周

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 1.POST 开机加电自检,对计算机的cpu,硬盘,内存等进行检测。 2.BIOS 对引导程序进行探测,并把控制权交给引导程序。 3.MBR Master bootloader record主引导程序.通常位于硬盘第一扇区/dev/hda(0,0)或/dev/sda(0,0). 此阶…

    Linux干货 2017-03-30
  • 分享 (History,Ls,感悟 )

    1.History 选项   -c: 清空命令历史   -d offset: 删除历史中指定的第offset个命令    n: 显示最近的n条历史   -a: 追加本次会话新执行的命令历史列表至历史文件   -n: 读历史文件中未读过的行到历史列表   -r: 读历史文件附加到历史列表 &…

    2017-07-15