YUM源(rpm安装包)制作使用流程说明

YUM源(rpm安装包)制作使用流程说明

RPM,全称为Redhat Package Manager,是由Red Hat推出的包管理器,现在在各种发行版中普遍使用。

yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

rpm安装包的制作方式目前验证通过的有两种:

  1. 通过使用源码包的方式编译源码打包rpm,具体过程执行步骤1-2-3

  1. 通过使用可执行程序的方式打包rpm,具体过程执行步骤2-3

1.制作源码包

安装autoTools

autoTools 是系列工具,它包含了aclocal、autoscan、autoconf、autoheader、和automake这些工具,使用autoTools主要就是利用各个工具的脚本文件来生成最后的makefile文件。安装autoTools工具集,Centos下可以使用 yum install autoconf automake 在线安装。

源码包路径结构

ComLib/
├── comlib-1.0.tar.gz               #最终生成的工程源码包
├── configure.ac                    #手动处理的配置文件
├── main.cpp                        #源码文件
├── Makefile                        #configure命令生成的Makefile文件
└── Makefile.am                     #手动编辑的Makfile依赖文件

源码包生成流程预览

source code + autoscan ->  configure.scan(edit)  ->  configure.ac + aclocal  ->  aclocal.m4

configure.ac + aclocal.m4 + autoconf -> configure

autoheader ->  config.h.in + Makefile.am(edit) + automake  -> makefile.in

makefile.in + ./configure -> Makefile

make dist -> comlib-1.0.tar.gz

1、执行autosacn生成configure.scan,重命名为configure.ac并手动编辑相关项

进入源码目录(这里以ComService为例),执行autosacn,当前目录会生成configure.scan这个默认的配置文件,执行mv configure.scan configure.ac,修改AC_INIT内容,增加行AM_INIT_AUTOMAKE

configure.ac文件示例

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT([programSrc], [1.0], [BUG-REPORT-ADDRESS])  #程序版本信息
AM_INIT_AUTOMAKE        #手动添加此行
AC_CONFIG_SRCDIR([main.cpp])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CXX
AC_PROG_RANLIB      #手动添加此行

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

#注意下面的生成的makefile文件依赖于makefile.am文件,大小写敏感需要保持一致
AC_CONFIG_FILES(Makefile)
AC_OUTPUT

2、执行aclocal 命令

aclocal是一个perl 脚本程序。aclocal根据configure.ac文件的内容,自动生成aclocal.m4文件。

3、执行autoconf 命令

有了configure.ac和aclocal.m4 两个文件以后,我们就可以使用autoconf来产生configure文件了。 configure脚本能独立于autoconf运行,且在运行的过程中,不需要用户的干预。

4、执行autoheader命令

该命令生成config.h.in文件。该命令通常会从acconfig.h文件中复制用户附加的符号定义

5、vim编写makefile.am文件

顶层目录的makefile.am示例

AUTOMAKE_OPTIONS=foreign

/*子目录*/
SUBDIRS = media share share/http share/websocket share/rtmpstream share/naluAnalyzer src

/*需要打包的其他文件*/
EXTRA_DIST = conf/* doc/*

底层目录的makefile.am示例

AUTOMAKE_OPTIONS=foreign

/*目标程序名称*/
bin_PROGRAMS= ComService

/*头问件*/
noinst_HEADERS = \
AppGlobalFunction.h    RedisCache.h    RtmpPublisherServerApp.h \
MysqlManager.h    RedisPool.h     TimeToReboot.h  Version.h 

/*源问件*/
ComService_SOURCES = Main.cpp \
AppGlobalFunction.cpp  RedisCache.cpp  RtmpPublisherServerApp.cpp  
Mys
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值