Linux程序包编译安装

一、源代码简介(文件中的代码之间,很可能存在跨文件依赖关系)

源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。

二、源代码的编译过程

由于程序源代码到可被计算机识别并运行的指令是需要多步骤处理的:程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接。

这里以C,C++为例做为说明。程序员写完C,C++源代码后需要把源代码进行预处理,即通过预处理器把源代码分割或处理成为特定的符号用来支持宏调用。预处理后进一步通过编译器(gcc)编译为目标代码(object code),它由接近于机器语言的代码组成。目标代码通过编译器编译后才能生成可供CPU识别的机器代码、机器指令。由于C,C++在编写中大量调用了库文件,所以在编译后需要把源代码中使用到的库做好链接。形成能够依赖于共享库独立运行代码。

LINUX包的二进制应用程序一般包含(二进制文件、库文件、配置文件、帮助文件)。且在LINUX中二进制应用程序的组成部分为:

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

、程序包编译安装的需求

在某些情况下,比如某个程序已经更新了新版本,但是因为官方或其他组织还没有编译成RPM包,而我们此时需要用到此新版本程序的功能,或者当官方提供的RPM包中因为集成了太多我们不需要的功能或缺少某些功能时。此时我们就需要考虑自己通过源代码编译安装成可供LINUX识别的二进制安装包。

但是要把源代码变成可执行的二进制文件需要以下过程:程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接。想到这里我们又不由自主的奔溃了。而且因为程序在开发中一般是使用模块开发的,所以文件中的代码之间,很可能存在跨文件依赖关系。所以为了方便用户能够自主编译源代码。所以有了项目管理器(make)。

、编译安装三步骤

C、C++: make (configure --> Makefile.in --> makefile)

C代码编译安装三步骤:

前提:提供开发工具及开发环境

开发工具:make, gcc等

开发环境:开发库,头文件

glibc:标准库

Centos 5,6,7通过“包组”提供开发组件

CentOS 6: "Development Tools", "Server Platform Development",

①、./configure:

(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;

(2) 检查依赖到的外部环境,如果此时依赖的外部环境没有配置,会导致报错。第一步报错会导致make不能执行

选项:指定安装位置、指定启用的特性

    --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:

根据makefile文件,构建应用程序;

③、make install

把二进制文件、库文件、配置文件、帮助文件复制到对应的目录中

注意事项:

configure和Makefile.in是程序员通过两个工具生成并提供给我们使用的

开发工具:

autoconf: 生成configure脚本

automake:生成Makefile.in

建议:安装前查看INSTALL,README

开源程序源代码的获取:

官方自建站点:

apache.org (ASF)

mariadb.org

...

代码托管:

SourceForge

Github.com

code.google.com

时间: 2024-09-30 15:37:23

Linux程序包编译安装的相关文章

CentOS程序包管理器rpm、yum以及程序包编译安装详解

一.程序包管理器RPM和Yum简介 程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,可以更方便地实现程序包的安装.升级.卸载和查询等管理操作. rpm软件包管理器(RPM Package Manager):rpm包存在依赖关系,依赖关系复杂,安装时间很长,虽然可以忽略依赖关系,但是可能会导致程序包安装后无法正常使用. yum程序包管理器( Yellow dog Updater, Modified):yum是基于RPM包管理,自动解决程序包间的依赖关系.根据配置文件的资源地

rpm和yum的使用,程序包编译安装以及编译apache过程中出现的问题

一.rpm包管理 用法: rpm [选项...] 查询/验证软件包选项: -a, --all                        查询/验证所有软件包 -f, --file                       查询/验证文件属于的软件包 -g, --group                      查询/验证组中的软件包 -p, --package                    查询/验证一个软件包 --pkgid                          

程序包编译安装

一.几个概念 1.开放源码 程序代码,人类可能读懂的程序语言,但是计算机不能识别和执行: 2.编译程序 将程序代码翻译成计算机可以识别的语言: 3.二进程程序 经过编译程序翻译后得到的可以被执行的程序文件. 二.编译源程序的步骤 1.configure 检测程序,并生成makefile文件,其检测的内容如下: 是否有适合的编译程序: 是否有本软件所需的函数库或其他需要的相关软件: 操作系统平台是否支持些软件: 内核的头定义文件是否存在. configure脚本的使用: 1)获取帮助 ./conf

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

Linux学习之建立yum源、yum命令的使用及rpm包编译安装

一.什么是Yum Yum的全称为 Yellowdog Update Modifier,其主要目的是为了解决RPM包安装时的依赖关系的问题.yum只是一个用于软件安装的前端工具,其主要的服务对象还是RPM软件包. 二.yum配置客户端         1.主配置文件(中心配置文件):/etc/yum.conf.              通常不需要进行修改,保持其默认配置即可.         2.提供repo配置文件,指明仓库访问路径及各种属性信息.              在目录/etc/y

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

Linux程序包管理与初识磁盘

Linux 程序包管理 API:Application Binary Interface(应用程序的二进制接口) ABI:APPlication Program Inertface(应用程序的开发接口) Windows : exe,msi Windows与Linux不兼容 ELF:(Executale and Linkable Format):可执行可连接格式,linux运行格式 PE:(Portable  Executable)可移植可执格式Windows运行格式 库级别的虚拟化: 要想在Wi