当我们需要自己制作yum仓库的时候,第一步应该是准备rpm包。一般rpm包的来源有两种办法:1、通过别人的镜像拉取rpm包 ;2、自己通过源码包来制作rpm包;下面来讲怎么通过源码包自定义RPM包。
目录
一、自定义RPM包的制作流程
- 在linux服务器上可以直接自定义RPM包
- 自定义RPM包的流程如下
二、自定义RPM包的具体操作
自定义RPM包的时候,未编译的中间件源码包制作方法与不需要编译的中间件包制作的方法不一样。
1、需要编译的中间件的rpm包制作方法
1、安装centos开发环境集成包及中间件的依赖包
yum groupinstall "Development Tools"
yum install pcre-devel
yum install openssl openssl-devel
2、创建app目录
mkdir /app
3、自定义工作目录
vi app/.rpmmacros
%_topdir /app/rpmbuild ##目录可以自定义
mkdir /app/rpmbuild
4、创建rpmbuild所需要的目录mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
│ └── tengine-1.5.0.tar.gz
├── SPECS
│ └── tengine.spec
├── SRPMS
└── tmp
目录解析
**目录解析**
BUILD 源代码解压后的存放目录
RPMS 制作完成后的RPM包存放目录,里面有与平台相关的子目录
SOURCES 收集的源材料,补丁的存放位置
SPECS SPEC文件存放目录
SRMPS 存放SRMPS生成的目录
5、将源码包放在SOURCES目录下
cp /源码包路径 /app/rpmbuild/SOURCE
6、配置SPECS下的配置文件
vi tengine.spec
### 0.define section #自定义宏段,这个不是必须的
### %define nginx_user nginx #这是我们自定义了一个宏,名字为nginx_user值为nginx,%{nginx_user}引用
### 1.The introduction section #介绍区域段
Name: tengine #名字为tar包的名字
Version: 1.4.2 #版本号,一定要与tar包的一致哦
Release: 1%{
?dist} #释出号,也就是第几次制作rpm
Summary: tengine from TaoBao #软件包简介,最好不要超过50字符
Group: System Environment/Daemons #组名,可以通过less /usr/share/doc/rpm-4.8.0/GROUPS 选择合适组
License: GPLv2 #许可,GPL还是BSD等
URL: http://laoguang.blog.51cto.com #可以写一个网址
Packager: Laoguang <ibuler@qq.com>
Vendor: TaoBao.com
Source0: %{
name}-%{
version}.tar.gz
#定义用到的source,也就是你收集的,可以用宏来表示,也可以直接写名字,上面定义的内容都可以像上面那样引用
#patch0: a.patch #如果需要补丁,依次写
BuildRoot: %_topdir/BUILDROOT
#这个是软件make install 的测试安装目录,也就是测试中的根,我们不用默认的,我们自定义,
#我们可以来观察生成了哪此文件,方便写file区域
BuildRequires: gcc,make #制作过程中用到的软件包
Requires: pcre,pcre-devel,openssl,chkconfig #软件运行需要的软件包,也可以指定最低版本如 bash >= 1.1.1
%description