使用rpmbuild创建rpm包
2017-09-05 10:19
477 查看
文件目录介绍
根目录,下面介绍需要用到的文件夹/root/rpmbuild
目录介绍
SOURCE目录资源目录,存放需要打包的资源,如jar包,脚本,配置文件等
SPEC目录
打包脚本存放目录,如下图
RPMS目录
打成的rpm包存放目录
如下图
spec脚本介绍
%define summary your package description #软件包的内容概要 %define name YourPackageName #定义rpm包的包名 %define version 8.0 #定义rpm包的版本号,软件的实际版本号 %define release 170505 #定义rpm包的版本号(svn提交的版本号) %define arch noarch # 指编译的目标处理器架构 %define group SFY Summary: %{summary} #引用上面的定义,下同 Name: %{name} Version: %{version} Release: %{release} # 发布序列号 License: Commercial #软件授权方式,通常就是GPL Group: %{group} BuildRoot: %{_builddir} BuildArchitectures: %{arch} AutoReqProv: no Vendor: SFY AG Requires: unzip #需要依赖的rpm包,安装此rpm包需要依赖unzip的rpm包 Prefix: /opt #这个主要是为了解决今后安装rpm包时,并不一定把软件安装到rpm中打包的目录的情况。这样,必须在这里定义该标识,并在编写%install脚本的时候引用,才能实现rpm安装时重新指定位置的功能 Prefix: /var/opt #下面为主体 %prep #预处理脚本 %build #开始构建包 %install #开始把软件安装到虚拟的根目录中 # 下面的 $RPM_BUILD_ROOT 参数为必传参数,不然创建会失败 install -m 0755 -D /root/rpmbuild/SOURCES/ant_build/dom4j-1.6.1.jar $RPM_BUILD_ROOT/opt/sfy/jar/dom4j-1.6.1.jar #需要打进rpm包的jar包 install -m 0640 -D /root/rpmbuild/SOURCES/config/yourconfig.properties $RPM_BUILD_ROOT/var/sfy/config/yourconfig.properties #需要打进rpm包的配置文件 %clean #清理临时文件 %files #定义哪些文件或目录会放入rpm中 %defattr (-,root,root,-)# 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755,这里不能遗漏(指上面%install中所涉及的文件路径) /opt/sfy/config/jar %defattr (-,sfy-adm,sfy,-)#csi-adm, csi 为自定义的用户与用户组,及上面的 /var/sfy/config %description #描述 SFY TAS Connector package %pre #安装此rpm包前需要检验环境 if [[ ! -f ${RPM_INSTALL_PREFIX}/sfy/install.info ]] then echo "Could not find ${RPM_INSTALL_PREFIX}/sfy/install.info !" echo "Base packages has been installed somewhere else or the file has been removed!" exit 255 fi %post # Read installation info variables eval `grep -v \* /var/sfy/install.info` %preun %postun
脚本执行命令:
rpmbuild -bb scriptname.spec
注意事项
spec脚本需要转dos字符,不然会报错若引用的文件不存在也会报错
报错:
error: Installed (but unpackaged) file(s) found:
原因:在spec脚本的%defattr (-,root,root,-)中添加对应的路径
其他问题可参照连接
https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh-cn
相关文章推荐
- 使用rpmbuild创建rpm包的方法
- 使用rpm-build制作nginx的rpm包 推荐
- rpmbuild使用---创建nrpe,nagios-plugins软件包
- centos7下的rpmbuild初次使用~~~
- 系统上未找到用于创建 RPM 包的 RPM 工具 (rpmbuild)解决方法
- php使用http_build_query,parse_url,parse_str创建与解析url
- RHEL6.3使用rpmbuild方式升级内核
- 我的Android NDK之旅(一),不使用ndk-build命令来创建jni
- rpmbuild命令_Linux rpmbuild 命令用法详解:创建RPM的二进制软件包和源码软件包
- 第二十一章 SRPM 的使用 : rpmbuild
- rpmbuild命令使用
- 使用 Buildah 创建小体积的容器
- 使用ganymed-ssh2-build.jar来操作linux服务器(上传、下载文件,远程创建目录,远程删除文件等等)
- docker学习笔记3—使用Dockerfile与docker build命令创建一个nginx服务器镜像,并使用浏览器进行访问
- RHEL6.2下使用rpmbuild编译taobao-kernel手札
- 使用 Buildah 创建小体积的容器
- php使用http_build_query,parse_url,parse_str创建与解析url详解
- linux rpm 包制作 - 使用 rpmbuild
- 使用rpmbuild构建rpm安装包
- Android开发中使用Eclipse创建工程后提示The project cannot be built until build path errors are resolved问题的解决方法