源码包编译安装

程序包编译安装:

     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
下一篇 2016-08-24

相关推荐

  • nginx基础模块

    目录: nginx基础模块: 1.ngx_http_access_module模块: 2.ngx_http_auth_basic_module模块 3.ngx_http_stub_status_module模块 4.ngx_http_log_module模块 5.ngx_http_gzip_module: 6.ngx_http_ssl_module模块: 7…

    Linux干货 2017-08-08
  • 源码安装

    1.连接教室yum源: [root@localhost ~]#lftp 10.1.0.1 2.进入httpd目录下: [root@localhost ~]#lftp10.1.0.1:/pub/Sources/sources/httpd> ls 3.下载安装包: [root@localhost ~]#lftp10.1.0.1:/pub/Sources/s…

    Linux干货 2016-09-19
  • puppet配置详解

    主程序: facter-2.4.6-1.el7.x86_64.rpm puppet-3.8.7-1.el7.noarch.rpm #agent主机上用的包 puppet-server-3.8.7-1.el7.noarch.rpm 注:yum仓库中不是最新版的,可能会有些差别,最好到ftp上下载最新版的 配置文件:    &nbs…

    Linux干货 2017-08-08
  • 第三周 磁盘文件系统进阶

    文件系统的使用:     首先要“挂载”:mount 命令和umount命令     根文件系统这完的其他文件系统要想能够访问, 都必须通过“关联”至根文件上的某个目录来实现,次关联操作即为“挂载”;此目录几位“挂载点”;     挂载点:mount-point,用于做为另一个文件系统的访问入口; …

    Linux干货 2016-11-22
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07
  • Linux之DNS服务

    DNS服务 DNS: Domain Name Service,协议(C/S, 53/udp, 53/tcp)应用层协议 BIND:BekerleyInternatName Domain, ISC (www.isc.org) 本地名称解析配置文件:hosts     /etc/hosts   &nbs…

    Linux干货 2016-10-05