您的位置:首页 > 运维架构 > Linux

ceph集群 Centos7下RPM包制作说明

2014-12-05 20:26 399 查看


Centos RPM包制作说明

准备打包环境

1、centos系统下使用如下命令安装rpmbuild

#yum install rpmbuild

2、rpmbuild的工作目录如下,

~/rpmbuild

~/rpmbuild/SOURCES

~/rpmbuild/SPECS

~/rpmbuild/BUILD

~/rpmbuild/RPMS

~/rpmbuild/SRPMS

3、如果你的用户目录主目录下没有类似目录结构,你可以通过一个工具软件来自动配置和生成,如下:

#yum install rpmdevtools

下了运行自动配置命令自动生成如上目录,并配置一些必要操作。

#rpmdev-setuptree

rpmdev-setuptree命令默认将再当前用户主目录下创建一个RPM构建根目录结构,

说明:如果需要改变次默认位置,可以修改配置文件:~/.rpmmacros中变量_topdir对应的值即可。

一般rpmbuild会在当前用户的主目录下自动建立如上目录结构,如果在你对应用户的构建目录中没有自动建立如上目录,你可以通过手动方式建立。上面目录的使用是这样分配的,SOURCES放置打包资源,包括源码打包文件和补丁文件等;SPECS目录放置SPEC文档;BUILD打包过程中的工作目录;RPMS目录存放生成的二进制包,RPM包根据硬件平台不同分类,i386表示生成i386结构的包将存放在该目录下;SRPMS目录存放生成的源码包。

制作rpm包:

1、把对应的源码进行tar包制作,然后拷贝到~/rpmbuild/SOURCES目录下。

2、把spec文件拷贝到~/rpmbuild/SPECS

3、在~/rpmbuild/SPECS下执行rpmbuild
–ba *.spec ,如果没有Error则会在目录~/rpmbuild/RPMS下生成所需要的rpm包

注:

   1.1)如果出现依赖错误,直接安装需要的包就可以

   1.2)关于源码包tar包的名字需要根据spec文件进行命名

关于spec文件解释如下

Name软件名称

Version软件版本

Release软件分支

Summary一句话介绍

Group软件所属组

License软件产权

URL软件主页

Source源码位置

PatchPatch位置

BuildArch编译架构

BuildRoot安装目录,重要

BuildRequires编译依赖包

Requires安装依赖包

%description详细的介绍信息

%define用来定义和修改macro变量,macro变量用%{macro}来引用

安装前处理%prep

%setup便捷的解压macro

%patch便捷的打patch工具

编译处理%build

%build通常是./configure && make

测试处理%check

%check通常是make test

安装阶段%install

%install特别注意这个阶段是将编译好的软件安装到\$BUILDROOT下,通常是make DESTDIR=%{buildroot} install

清理阶段%clean

%clean主要进程一些安装后的清理工作,比如清理BUILD目录下的临时文件

文件列表%file

此段主要设置安装到系统上的文件和目录的属性,注意所有安装到系统上的文件都要在此段声明,否则制作就不成功。

%defattr(,, , )用来定义默认属性

%config(noreplace)用来制定配置,升级是不会被覆盖

%attr(mode,user, group)
单独指定属性

%doc指定文件为帮助文档

改动日志%changelog

有特定格式来指定文件变动信息

脚本段Scriptlets

%pre和%post用于安装前后指定的脚本

%preun和%postun用于卸载前后执行的脚本

%pretrans和%posttrans用于一个事务前后的操作

rpmbuild用法

编译选项

-ba 构建二进制和源码包
-bb 构建二进制包
-bp 执行到%prep段
-bc 执行到%build段
-bi 执行到%install段
-bl 通过%file进行列表检查
-bs 构建源码包
--sign 给软件包签名
--rebuild 编译源码包并安装

--showrc 查看配置文件内容

参考文献:

http://blog.chinaunix.net/uid-23069658-id-3944462.html

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: