软件包管理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 16:39
下一篇 2016-08-28 14:41

相关推荐

  • 学习札记:用户管理,权限管理和ACL欢乐”斗地主”

    补充:touch /etc/nologin 启动系统维护功能,其他用户不能登陆,除了管理员,可以自定义内容,在普通用户登陆的时候可以看到相关维护提示,解除维护模式的话,必须要删除该文件,另外可以创建/run/nologin达到相同的效果(仅限于CentOS 7), 用户属性修改 usermod [OPTION] login -u UID: 新UID -g G…

    Linux干货 2016-08-04
  • sed用法预习总结

    SED用法sed:Stream EDitor    行编辑器 sed:模式空间     默认不编辑原文件,仅对模式空间的数据做处理,将处理后的结果输出至屏幕 sed [options] 'AdressCommand' file…   &n…

    Linux干货 2016-08-10
  • 马哥教育网络班20期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel/ /home/tuser1 chmod o-rwx /home/tuser1/.* 2、编辑/etc/group文件,添加组hadoop。 e…

    Linux干货 2016-06-26
  • 逻辑卷小结

    逻辑卷 逻辑卷:把不同大小的物理设备,抽象成一个完整的文件系统,方便对物理设备的管理与应用。 其基本步骤为: 1.将指定的设备设置为物理卷     物理卷是指定大小的固定得物理区域 2.用一个或者多个物理卷创建一个卷组 3.创建逻辑卷     在物理卷上创建的逻辑卷由物理区域组成…

    Linux干货 2016-09-01
  • 群集简介和LVS_nat模式配置

    群集简介: 群集(或集群)和称呼来自于英文单词cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋,但无论哪种群集,都至少包括两台节点服务器。而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集…

    Linux干货 2017-02-13
  • 软链接和硬链接的区别

          什么是链接文件? 使用windows的朋友们应该会经常接触到快捷方式吧!它也就是能让我们快速的打开一个目标应用程序,文件,或者文件夹来使我们的操作更加快捷。那么下面我们就来简单聊聊linux上的“链接文件”吧!            &n…

    Linux干货 2016-10-19