知识库 : 使用rpmbuild 重新打包 hue-hbase RPM包

Edit Document

使用rpmbuild 重新打包 hue-hbase RPM包

目录

使用 rpmbuild 重新打包 hue-hbase RPM

一、 RPM 包的分类

二、 RPMBUILD 默认目录

三、重新打包 hue-hbase (例子)

 

一、 RPM 包的分类

RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。

linux软件包分为两大类:

(1)二进制类包,包括rpm安装包(一般分为i386和x86等几种)

(2)源码类包,源码包和开发包应该归位此类(.src.rpm)。

有时候为了方便源码包的安装,和我们自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,当有了源码包就可以直接编译得到二进制安装包和其他任意包。spec file是制作rpm包最核心的部分,rpm包的制作就是根据spec file来实现的。

 

二、 RPMBUILD 默认目录

在centos 下,rpm包的默认制作路径在/root/下,这其中包含了6个目录(要求全部大写)

 

         BUILD      源代码解压以后放的位置,只需提供BUILD目录,具体里面放什么,不用我们管,所以真正的制作车间是BUILD目录

         RPMS       制作完成后的rpm包存放目录,为特定平台指定子目录

         SOURCES     收集的源文件,源材料,补丁文件等存放位置        

         SPECS       存放spec文件,作为制作rpm包的领岗文件,以   rpm名.spec

         SRPMS       src格式的rpm包位置   ,既然是src格式的包,就没有平台的概念了                      

         BuiltRoot   假根,使用install临时安装到这个目录,把这个目录当作根来用的,所以在这个目录下的目录文件,才是真正的目录文件。当打包完成后,在清理阶段,这个目录将被删除

 

三、重新打包 hue-hbase (例子)

1.环境安装这里不再阐述,下载原rpm包( hue-hbase-3.5.0+cdh5.0.4+387-1.cdh5.0.4.p0.11.el6.x86_64.rpm

2. 解压,然后将修改的文件替换(这里修改了hue中hbase显示的js相关文件),创建 hue-hbase-3.5.0+cdh5.0.4+387 目录、将所有解压后(包含替换)放入该目录中,最后打包成hue-hbase tar包

 

3. 将tar包移入SOUCE目录下

4. 编写hue-hbase.spec文件

###   1.The   introduction   section

Name:hue-hbase       #   软件包名称

Version:3.5.0+cdh5.0.4+387    #   版本号,(不能使用 -

Release:        1.cdh5.0.4.p0.11%{?dist}   #   release 号,对应下面的 changelog ,如 hue-hbase-3.5.0+cdh5.0.4+387-1.cdh5.0.4.p0.11.el6.x86_64.rpm  

Summary:Hue hbase build   #   简要描述信息,

 

Group:  Yonyou UDH

License:no

URL:    http://www.yonyou.com

Source0:%{name}-%{version}.tar.gz   #   source 主要是引用一下自己定义好的脚本,配置文件之类的内容。

BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

 

Vendor: Apache

Packager:AE

 

BuildArch:x86_64

 

#BuildRequires:     #   依赖的包,需要 yum 安装 ,这里无

 

%description

###     2.The   Prep   section   准备阶段 , 主要就是把源码包解压到 build 目录下,设置一下环境变量,并 cd 进去

%prep

%setup –q     #   这个宏的作用静默模式解压并 cd  

###     3.The   Build   Section   编译制作阶段,这一节主要用于编译源码

%build

 

#%define __debug_install_post %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}" %{nil}

###     4.Install   section     这一节主要用于完成实际安装软件必须执行的命令,可包含 4 种类型脚本

%install

rm -rf $RPM_BUILD_ROOT

mkdir -p $RPM_BUILD_ROOT/usr/lib/hue/apps

cp -a * $RPM_BUILD_ROOT/usr/lib/hue/apps/

###     5.clean   section   清理段 ,clean 的主要作用就是删除 BUILD

%clean

[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"

rm -rf $RPM_BUILD_DIR/%{name}-%{version}

 

%post

 

%postun

rm -rf /usr/lib/hue/apps/hbase

###     6.file   section   文件列表段,这个阶段是把前面已经编译好的内容要打包了

%files

/usr/lib/hue/apps/hbase/*

%defattr(-,root,root,-)

%doc

###     7.chagelog   section     日志改变段,   这一段主要描述软件的开发记录

%changelog

 

 

5. 制作RPM包

rpmbuild   -bb   hue-hbase.spec   制作二进制包

 

Attachments:

使用rpmbuild 重新打包 hue-hbase RPM包.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)