软件包管理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

相关推荐

  • 计算机(服务器)的基础知识

    计算机(服务器)基础知识  计算机系统由硬件系统与软件系统两大部分组成 一、计算机(Computer)):又称电脑,是一种能自动接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 发展历史:       第一代计算机(1946-1957)…

    Linux干货 2017-02-15
  • python装饰器

    装饰器本质是一个装饰器函数,在不改变一个函数的函数体本身的情况下,实现函数体本身外其他的功能 1.实现一个装饰器 def  logger(fn):                         #装饰器函数必须只能传入一个参数,那就是被装饰函数     print(‘in’)     def wrapper(*args,**kwar…

    Linux干货 2017-10-23
  • #招聘福利#深圳云戈科技有限公司广州分公司/运维工程师/广州/招聘3人

    深圳云戈科技有限公司广州分公司/运维工程师/广州 招聘人数:3人 职位名称:运维工程师 岗位职责:负责大型数据处理系统、交易系统的维护工作。包括系统调优、数据库调优、系统版本升级、系统事件             处理、系统监控与巡检、数据分析与修复、实施应急方案、参数配置、系统扩容与部署、维护报告…

    Linux干货 2016-03-28
  • 持续交付的Mesos与Docker导入篇

    变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0、虚拟化、云计算、大数据、微架构、DevOps再到今天的容器Docker与Mesos。 Docker的出现方便了应用的测试、部署、与升级,其将各种应用程序和它们所依赖的运行环境打包成标准的Container/Image,进而发布到不同的平台上运行。Docker的轻量级、快…

    Linux干货 2016-07-10
  • N28 第三周【2】:用户和组管理

    用户和组管理 前言 Linux用户管理非常关键且重要,Linux的所有进程都是以不同的身份拥有不同的权限来运行和调度资源的。但是我们不用费劲心思去管理,因为系统将用户划分成为了两部分:无所不能的root用户和普通用户。同时呢,又将普通用户分为系统用户和登录用户。对于Linux,他会用UID去快速识别用户身份,对于我们,可以用用户名去识别。 接下来介绍一下用户…

    Linux干货 2017-12-19
  • Centos6搭建vsftpd手册

    1、开启防火墙ftp端口vi /etc/sysconfig/iptables     #编辑防火墙配置文件 1 -A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT(允许21端口通过防火墙) 2 -A INPUT -m st…

    Linux干货 2017-04-26