程序包编译安装:
        testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
 
        源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行
 
        源代码组织格式:
            多文件:文件中的代码之间,很可能存在跨文件依赖关系;
 
            C、C++: make (configure --> Makefile.in --> makefile)
            java: maven
 
 
            C代码编译安装三步骤:
                ./configure:
                    (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
                    (2) 检查依赖到的外部环境;
                make:
                    根据makefile文件,构建应用程序;
                make install
 
            开发工具:
                autoconf: 生成configure脚本
                automake:生成Makefile.in
 
            建议:安装前查看INSTALL,README
 
        开源程序源代码的获取:
            官方自建站点:
                apache.org (ASF)
                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/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
                            --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;
 
                        System types:
 
                        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
 
    练习:
        1、yum的配置和使用;包括yum repository的创建;
        2、编译安装apache 2.2; 启动此服务;

【Linux】【Services】【Package】编译安装的更多相关文章

  1. 在Linux Mint13下编译安装mono运行时

    最近一直想体验下mono在web开发上到底进展到什么程度,挑战一下它对web开发的极限.因为asp.net mvc本身依赖windows平台的东西不太多,所以这些assembly移植到mono/lin ...

  2. linux 7z 命令编译安装,mac安装p7zip

    linux 7z 命令编译安装 7zip是一个开源的压缩软件  7z格式是压缩率最高的格式 服务器备份 数据几个g 要是tar压缩下载的话 时间太长  7zip压缩出来体积很小 首先安装 我这是 ce ...

  3. Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...

  4. linux上的编译安装

    计算机运行的程序都是二进制的代码,那么我们所用的编程语言都是自然语言中的字符,那么就需要有一种机制来将这些转化成二进制代码,那么根据转化机制不一样,编程语言(软件 产生的源头)分两大类 解释型 编译型 ...

  5. linux源码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...

  6. Linux下memcache编译安装与基本使用

    memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libto ...

  7. 如何在linux平台上编译安装zlib软件(公司部分线上机器缺少zlib不能安装supervisor)

    文章在Centos  6.5 linux平台上演示一下如何进行编译安装zlib软件,并配置相关的选项加载使用.示范从下载到安装并配置进行使用过程一系列整套讲解,希望可以给网友考虑使用,谢谢.   工具 ...

  8. Linux源码编译安装程序

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  9. Linux源码编译安装MySQL5.7

    目录[-] 一.环境准备: 二.升级系统: 三.做一些准备工作(以下Linux命令均在su到root用户操作): 四.开始编译安装mysql-5.7.9: 一.环境准备: 我尝试过以下环境都是能成功的 ...

  10. Linux内核的编译安装

    前言 Linux内核是Linux操作2347系统的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性.内核主要功能包括进程管理.内存管理.文件管理.设备管理.网络管理等.Linux内 ...

随机推荐

  1. liteIDE配置环境变量

    1.下载安装go https://www.cnblogs.com/Jack-cx/p/9878213.html 2.下载ide https://www.golangtc.com/download/li ...

  2. 暑假算法练习Day2

    第二天啦!大家一起冲冲冲!! 1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用 ...

  3. 我罗斯方块第二次作业(Player类)

    我罗斯方块第二次作业 我的任务 完成player类的编写 player类的测试 我的计划 类的设计: Player类作为一个玩家类,需要处理和玩家有关的所有信息,以及维护玩家的游戏页面map.关于玩家 ...

  4. 如何修改visual-studio的sln文件和project工程名

    关于VS的 .sln 文件和 .suo 文件 *.sln:(Visual Studio.Solution) 通过为环境提供对项目.项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中.比如是 ...

  5. SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(3)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续上一节针对我们的重试进行测试 验证针对可重试的方法响应超时异常重试正确 我们可以通 ...

  6. 详解电子表格中的json数据:序列化与反序列化

    从XML到JSON 当下应用开发常见的B/S架构之下,我们会遇到很多需要进行前后端数据传输的场景.而在这个传输的过程中,数据通过何种格式传输.方式是否迅速便捷.书写方式是否简单易学,都成为了程序员在开 ...

  7. MySQl安装图形界面

    对于mysql的图形界面有很多个:1.MySQL GUI Tools MySQL GUI Tools是一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数 ...

  8. [cf559E]Gerald and Path

    将所有线段的端点(即$a_{i}$和$a_{i}\pm l_{i}$)离散,并按照$a_{i}$从小到大排序 定义$f_{i,,j}$表示前$i$条线段在位置$j$之前最多能覆盖的长度(默认覆盖到$j ...

  9. [hdu7022]Jsljgame

    先考虑$x=y$的情况,此时即是一个平等博弈,因此考虑$sg$函数 具体的,有$sg(n)=\begin{cases}0&(n=0)\\mex(\{sg(n-i)\mid 1\le i\le ...

  10. [cf1392I]Kevin and Grid

    令$v$为点数(有公共点的格子中存在红/蓝色).$e$为边数(有公共边的格子中存在红/蓝色).$f$为以此法(即仅考虑这些点和边)所分割出的区域数(包括外面).$s$为连通块个数,将欧拉定理简单扩展, ...