ceph集群 Centos7下RPM包制作说明
时间:2015-10-17 01:03 来源:linux.it.net.cn 作者:IT
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 查看配置文件内容
参考文献:
(责任编辑:IT)
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文件解释如下
安装前处理%prep
编译处理%build
测试处理%check
安装阶段%install
清理阶段%clean
文件列表%file
改动日志%changelog
脚本段Scriptlets
rpmbuild用法编译选项
参考文献:(责任编辑:IT) |