软件包管理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)
DYWDYW
上一篇 2016-08-27
下一篇 2016-08-28

相关推荐

  • 磁盘管理、文件系统、挂载

    磁盘管理 一磁盘分区 磁盘分区有两种方式:MBR和GPT MBR:1)按照柱面进行分区;分区不超过2T 2)关于0磁道0扇区的前512bytes;其中的446bytes为boot loader;中间的64bytes装有分区表;2bytes为55AA 3)可分4个分区;3个主分区+1扩展(N个逻辑分区)扩展分区最多一个。 GPT分区:1)GUID patiti…

    Linux干货 2016-08-29
  • M22 使用光盘修复Centos实验初探

    实验目的: 服务器由于文件丢失等原因造成无法启动,可以使用光盘引导启动服务器,然后对服务器进行修复。 实验环境: VMware12安装Centos6.8虚拟机 Centos6.8的光盘镜像 实验原理: 手动删除虚拟机上的rpm程序文件,使用光盘镜像恢复安装rpm程序。 实验过程: 1、     执行命令删除rpm程序,…

    2017-03-06
  • ☞Linux进程管理与性能分析

    Linux进程管理与性能分析 概述 系统维护的一个重要工作就是监控Linux系统的运行状态是否正常,分析系统资源的使用情况,进而对系统进行优化,提高其性能。在实际环境中,系统稳定性尤为重要,可以说系统的稳定性关系到企业的存亡。因此,第一时间掌握CPU、Memory、IO、Network的等系统资源的状态则可以在系统出现问题时及时解决,把损失降到最低。&nbs…

    Linux干货 2016-09-11
  • Linux systemd管理

                                                      &nbsp…

    系统运维 2016-09-28
  • N25 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; 3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; 4、添加用户bash, testbash, basher, nol…

    Linux干货 2017-01-08