当前位置:   article > 正文

centos7使用rpmbuild制作rpm包_centos7 rpmbuild

centos7 rpmbuild

本文作为我实验的一个总结文档,可能实现的功能比较简单,适合于想要简单入门使用的,希望对朋友们有所帮助

下载rpmbuild程序包

  1. 所用系统 centos7.6
  2. yum install rpm-build #安装程序包
  3. 如果你所要打包的程序需要 gcc make等编译工具,还需要安装这些应用

注意:需要使用普通用户操作

准备工作目录

  1. 在普通用户的家目录下建工作目录
  2. mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}

各目录作用

  • SPEC文件目录        保存 RPM 包配置(.spec)文件
  • SOURCES         源代码目录,保存源码包(如 .tar 包)和所有 patch 补丁
  • BUILD        构建目录,源码包被解压至此,并在该目录的子目录完成编译
  • BUILDROOT    最终安装目录,保存 %install 阶段安装的文件,打包好后此目录相关内容会自动删除
  • RPMS    标准 RPM 包目录,生成/保存二进制 RPM 包
  • SRPMS    源代码 RPM 包目录,生成/保存源码 RPM 包(SRPM)
     

需要打包的文件

  1. /data/hello.sh #需要打包的文件
  2. vim /data/hello.sh
  3. #!/bin/bash
  4. hello word

编写SPEC文件

  1. vim /home/rpmbuild/SPEC/xxx.spec #内容如下
  2. Name: li #制作好后rpm包名
  3. Version: 0.0.1 #rpm包版本
  4. Release: 1.el7 #release基于该版本的软件包的发行版本号,由软件打包商设置,保持不变就行
  5. Summary: ceshi #简单介绍
  6. License: GPL #开源协议
  7. Group: Applications/System #不知道是啥,保持不变
  8. Vendor: ning #作者
  9. Buildarch: noarch #系统架构,保持不变
  10. %description
  11. %prep
  12. %build
  13. %pre
  14. %post
  15. %preun
  16. %postun
  17. %files
  18. /data/hello.sh #/data是安装rpm程序时文件所在位置,这是一个虚拟位置,就是如果你想自己制作的包安装好后在/data目录下,那这里就这样写/data,如果想要在/root下就写/root/hello.sh
  19. /usr/local/bin/hello #如上
  20. %changelog

各参数说明:

  • Name 标签就是软件名,Version 标签为版本号,而 Release 是发布编号。
  • Summary 标签是简要说明,英文的话第一个字母应大写,以避免 rpmlint 工具(打包检查工具)警告。
  • License 标签说明软件包的协议版本,审查软件的 License 状态是打包者的职责,这可以通过检查源码或 LICENSE 文件,或与作者沟通来完成。
  • Group 标签过去用于按照 /usr/share/doc/rpm-/GROUPS 分类软件包。目前该标记已丢弃,vim的模板还有这一条,删掉即可,不过添加该标记也不会有任何影响。 
  • %changelog 标签应包含每个 Release 所做的更改日志,尤其应包含上游的安全/漏洞补丁的说明。Changelog 日志可使用 rpm --changelog -q <packagename> 查询,通过查询可得知已安装的软件是否包含指定漏洞和安全补丁。%changelog 条目应包含版本字符串,以避免 rpmlint 工具警告。
  • 多行的部分,如 %changelog 或 %description 由指令下一行开始,空行结束。
  • 一些不需要的行 (如 BuildRequires 和 Requires) 可使用 ‘#’ 注释。
  • %prep、%build、%install、%file暂时用默认的,未做任何修改。

需要打包的文件所放位置

  1. [ningmeng@lemon]$tree /home/rpmbuild/BUILDROOT/
  2. /home/rpmbuild/BUILDROOT/
  3. └── li-0.0.1-1.el7.x86_64 #必须建一个你程序名的一个目录
  4. ├── data
  5. │   └── hello.sh
  6. └── usr
  7. └── local
  8. └── bin
  9. └── hello -> /data/hello.sh #在这个目录里创建软连接连接到/data/hello.sh

构建RPM包

  1. cd /home/rpmbuild/SPECS
  2. rpmbuild -bb xxx.spec

最后所构建的rpm包在/home/ningmeng/rpmbuild/RPMS/noarch目录下

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/468968
推荐阅读
相关标签
  

闽ICP备14008679号