源代码编译

CentOS程序包管理器之编译安装

为什么要进行源代码编译安装?

1.对应的程序包并不能直接获取到;

2.已经编译好的二进制中,尚不包含我们所需要的功能;

3.已经编译好的二进制中,包含的功能太多,我们并不需要;

源代码包有两种:

由程序员直接打包的源代码:name-VERSION.tar.gz

由第三方利用rpm工具制作的rpm源代码包:name-VERIONS-release.src.rpm

/usr/src/name-VERIONS

源代码的组织形式:

1.多文件组成

2.文件中的代码之间,甚至是不同文件的代码段之间都可能存在依赖关系;

源代码的项目管理工具:

C/C++项目管理工具:make

Java项目管理工具:maven

源代码 --> 预处理(预处理器,cpp) --> 编译(编译器,gcc) --> 汇编(汇编器) --> 链接(链接器) --> 用于执行操作的二进制文件

针对于每个需要编译的源代码文件,都可能会有一个或多个被他依赖的文件或他所依赖的文件,这样的信息会被保存到一个配置文件中;这个配置文件会告诉我们:

1.调用哪个预处理器,如何进行预处理;

2.调用哪个编译器,如何进行编译;

3.文件的编译顺序等等;

这类文件一般是makefile,这样的makefile文件并不是事先存在的,也不是对所有用户的需求都一视同仁的;

程序员可以使用专用的工具,来对于所有的源代码文件进行内容分析和抽取,构建出makefile文件,所有的makefile文件都有一个统一的模版——Makefile.in

用户可以根据自己的需要,自行构建makefile文件,从而实现能够满足自己需求的编译过程

帮助用户生成makefile文件的通常是一个名为configure的脚本文件;

开发工具:

autoconf:帮助用户生成configure脚本

automake:帮助用户生成Makefile.in的模版文件

建议:任何的源代码包,在解压缩之后,都会提供INSTALL或README的文档文件,我们在编译操作之前,最好先查阅此类文件的内容, 以确定编译过程;

开源程序的源代码的获取方式:

1.官方自建的站点:

apache.org(ASF)

mariadb.org

...

2.代码的托管站点

SourceForge

Github

code.google.com

需要使用编译器:gcc (GNU C Complier)

开发环境的安装:

CentOS7:

1.yum groups install "开发工具"

yum groups install "Development Tools"

CentOS6:

yum groupinstall "Development Tools" "Server Platform Development"

"Desktop Platform Development"

2.yum install make automake autoconf gcc glibc qt ncurses

通常来讲,Linux系统中的编译安装程序的三大步骤:

1.configure [options...]

2.make

3.make install

第一步:

./configure [options...] [VAR=VALUE]...

常用选项分类:

1.安装路径的设定:

--prefix=/PATH/TO/SOMEWHERE

指定默认的程序安装路径,如果不给该选项,默认路径/usr/local/

--sysconfdir=DIR

指定配置文件的安装路径

2.系统类型:

3.可选特性:

--disable-FEATURE

在编译过程中禁用某种特性或功能

--enable-FEATURE[=ARG]

在编译过程中启用某个特性或功能

4.可选程序包:

--with-PACKAGE[=ARG]

在编译过程中,选择使用额外的程序包

--without-PACKAGE

在编译过程中,不使用额外的程序包

第二步:

make

第三步:

make install

编译收尾工作:

/usr/local/apache2里面会包含bin, sbin, etc, lib, lib64, include, man, ...

1.导出二进制文件:

创建一个文件: /etc/profile.d/httpd.sh

export PATH=/usr/local/apache2/bin:/usr/local/apache2/sbin:$PATH

2.导出库文件:

创建一个文件:/etc/ld.so.conf.d/httpd.conf

/usr/local/apache2/lib64

ldconfig [-v]

3.导出头文件:

在/usr/include目录中,为编译安装的软件创建头文件的符号链接:

ln -sv /usr/local/apache2/include /usr/include/httpd

4.导出帮助文件:

CentOS6: /etc/man.config

新添加一行:MANPATH=/usr/local/apache2/man

CentOS7: /etc/man_db.conf

新添加一行:MANPATH_MAP=/usr/local/apache2/bin /usr/local/apache2/man

时间: 2024-10-29 10:45:57

源代码编译的相关文章

Ubuntu通过源代码编译安装Octave 4.0

本教程/笔记,意在指导在Ubuntu及其它Linux系统上怎样通过源代码安装Octave. Octave简单介绍 Octave是GNU旗下取代matlab的数学工具软件,语法与matlab高度兼容.而且支持一些独有的更清晰更符合Linux社区习惯的语法. 尽管在一些详细工具包和部分特性.效率上不如matlab.可是对于一般用户,它是matlab的一个有效的合法的免费的替代工具. 3.8版本号之前官方没有GUI界面,这无疑是它在普及方面的一个重大阻碍,让想使用GUI,必须下载第三方的工具(如qto

源代码编译MYSQL5.6 环境下的MHA+KEEPALIVED的安装和维护

前    言 摘   要 MHA 是当 master 出现故障,挑选一个 slave 作为新的 master 并构建成新的 主从架构的管理工具.从 master 出现故障到构建成新的主从架构时间是 10-30 秒.在 master 出现故障时可能会出现 slave 同步的数据不一致的现象,此工具 可以自动应用差异的中继日志到其他 slave 上保证数据的一致性. 一.Mha 优点 1.M aster crash 时可以快速的进行故障切换. 9-12 秒内可以检测到 master 故障, 7-10

3. Gradle源代码编译以及源代码分析

一. Gradle简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置.---来源于百度 对于自己而言,作为一个Android程序员,我自己使用就是用它来编译android程序,以前用ant,现在用gradle. 但是个人觉得在android studio gradle属性又多又乱,不知道总共有哪些属性:同时对于框架,自己也不喜欢黑盒使用它,总觉得心里没

Jenkins 源代码编译

最近一直想写一个关于 Jenkins 管理的 InelliJ 插件,但是尝试很多次总是在登录认证上面失败,各种办法都不起作用,而且官方的文档含糊不清,就动起了从源代码编译在开发环境中进行调试. 废话少说,下面开始说明 Jenkins 的编译过程. 环境准备 首先,JDK 环境是必须的了,而且要设置好 JAVA_HOME 环境变量,因为 Maven 会使用到,我这里使用的是最新的 Java 8 1.8.0_112. 然后需要的就是 Maven 了,我这里使用的是 3.3.9 由于要使用 Git 来

Storm-0.9.2-incubating源代码编译打包

近期遇到一些同学询问Storm-0.9.2-incubating源代码编译打包的问题,现将编译步骤说明例如以下: 1.凝视掉project各pom文件里关于maven插件(maven-gpg-plugin)的内容,目的是规避错误: 当然,该错误也能够忽略,即能够不进行上述凝视操作 2.在project根文件夹下运行maven命令: mvn clean compile package -P dist -Dmaven.test.skip=true 3.进入文件夹:storm-dist/binary,

3DSlicer源代码编译过程vs2008+windows xp [转]

一 下载QT源代码编译 1.  简述   在 Windows2000/xp/vista 下,安装 VS2008, QT 4.7.2 :并在 VS2008上建立 QT 的集成开发环境,利用 VS2008 开发环境开发,调试 QT 程序:2. 所需程序   VS2008以及VS2008Sp1                                  //  VS2008 的安装程序:   qt-everywhere-opensource-src-4.7.4.tar.gz          /

Nginx+Php-fpm+MySQL+Redis源代码编译安装指南

说明:本教程主要包括以下三个部分: 1.      源代码编译安装Nginx 2.      源代码编译安装php以及mysql.redis扩展模块 3.      配置虚拟主机 文中所涉及安装包程序均提供下载链接,欢迎使用 运行环境以及前置条件:Ubuntu 12.04 LTS 已安装g++编译环境 所有源程序路径位于:[email protected]:/home/shihai/Desktop/Nginx文件夹下,如下图所示: 程序安装路径位于:/usr/local文件夹下 第一部分:安装N

Linux DNS源代码编译安装(五)

DNS源代码的编译安装. 官方bind下载地址:www.isc.org这里我们编译的是bind-9.9.5.tar.gz版本 1.编译环境  Desktop Platform Development  Development tools  Server Platform Development 2.展开安装包查看编译命令 首先我们应该先看下服务器时间,[[email protected] ~]# tar xf bind-9.9.5.tar.gz -----展开安装包[[email protect

blender源代码编译

blender源码路径(svn):https://svn.blender.org/svnroot/bf-blender/trunk/blender/ 依赖外部Lib(svn):https://svn.blender.org/svnroot/bf-blender/trunk/lib/ 注意:svn只托管了2.69版本的代码,最新的blender代码已采用git托管了,如果要获取最新的blender代码,请从git上拉去 blender(git):https://developer.blender.