程序包编译安装:
        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. css盒模型简介

    如何了解盒模型 盒模型简介:盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系.css定义所有的元素都可以拥有像盒子一样的外形和平面空间. 盒模型的组成:内容区.补白/填充.边框.边 ...

  2. MacOS升级到Monterey后python SSL握手失败问题

    MacOS升级到Monterey 12.0.1后,忽然发现原来工作正常的python3请求华为restconf API报错失败,提示 ssl.SSLError: [SSL: SSLV3_ALERT_H ...

  3. Python 匿名函数用法和return语句

    匿名函数用法1.什么是匿名函数    函数定义过程中,没有给定名称函数,python中用lambda表达式创建匿名函数    lambda只是一个表达式,函数体比def简单    lambda主题是一 ...

  4. [bzoj1101]Zap

    1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 50001 4 int t,n,m,k,ans,mu[N],vis ...

  5. [bzoj1572]工作安排

    按照Di排序,从小到大枚举物品,考虑如果直接能选就选上,不能选就考虑替换之前价值最小的来选(显然一定是可行的,只需要在原来选价值最小的时候选这个就行了),这个东西用堆来维护即可 1 #include& ...

  6. 史上最俗的MODBUS介绍

    如今网购正深深地改变着人们的生活,以前买东西要逛商场,先找楼层导购,再逛到相应柜台,接着愉快购物,选好东西后经过一番讨价还价,最后付钱拿货走人,这些都是稀松平常的场景.可是,如果没有实际看见东西,只在 ...

  7. 【Tool】IDEA功能--SVN和Git

    IDEA功能--SVN和Git 2019-11-08  21:12:22  by冲冲 1.IDEA的SVN (1)提交项目代码到SVN服务器 ① 指定不用上传的目录 ② 设置项目上传的路径 SVN服务 ...

  8. electron另一种运行方式

    编写helloword 全局安装软件  npm install -g electron 快速编写html  html:5 完整代码和流程: 1.index.html  <!DOCTYPE htm ...

  9. [spring-core]作用域

    本文试图从原理上讲解Spring IoC容器的作用域机制,建议对着源码阅读,事半功倍. 0 引入问题 当我们谈到Spring作用域的时候,自然而然会想到如下作用域(来自spring-core官方文档) ...

  10. Codeforces 79D - Password(状压 dp+差分转化)

    Codeforces 题目传送门 & 洛谷题目传送门 一个远古场的 *2800,在现在看来大概 *2600 左右罢( 不过我写这篇题解的原因大概是因为这题教会了我一个套路罢( 首先注意到每次翻 ...