当前位置:   article > 正文

RPMS杂谈(二)rpmuild打包入门知识_rpmbeuild教程

rpmbeuild教程

一    学习RPMS制作rpm包目的

  1. 核心: 熟悉'spec'-->'配置文件'的语法
  2. 备注: 所有'能安装的软件包'都可以尝试下

二    友情提示

  1. 备注: 一般'*.src.rpm''自带'spec文件,大多数'直接安装'即可,部分需要'修改后'编译安装
  2. 主要: '*.tar.gz'之类的源代码分发包'制作rpm包'
  3. 最终: 扩充自己的'yum源'

三    基础环境安装

  1. yum -y install rpm-build rpm-devel rpmdevtools
  2. 1: '初始化相应的目录'
  3. rpmdev-setuptree
  4. 1) rpmdev-setuptree 程序将创建 ~/rpmbuild 目录,以及一系列'预设的子目录'(如 SPECS 和 BUILD),你将使用它们作为'打包目录',一般是5个
  5. 2) 另外,还会创建 ~/.rpmmacros 文件,它用于'设置各种选项'
  6. 不需要: 'rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS}'
  7. 2: '生成一个spec模板' -->'核心: 编译'
  8. rpmdev-newspec nginx -->'nginx.spec'
  9. ############# 分割线 #############
  10. 补充:编译的时候'对版本有要求'的-->'比如gcc'
  11. 后续:rpmbuild命令

查看'rpm版本'-->因为rpmbuild的原因,所以rpm版本'最低'要与rumbuild保持一致

关于rpmbuild版本的问题 

四    spec参考

Fedora spec官方文档

Centos官网制作rpm包

  1. (1) 重建源RPM
  2. (2) 您真的'需要重建吗'
  3. (3) 在'哪里获取'SRPM软件包

五    进入主题

macros'翻译'  --> '宏,巨大'

(1)原理

  1. (1) RPM打包的时候需要'编译源码'
  2. (2) 还需要把编译好的'配置文件(conf)、二进制命令文件(bin或sbin)、库函数之类(lib)的文件'按照安装好的样子放到'合适的位置'
  3. (3) 还要根据需要'对RPM的包进行测试',这些都需要先有一个"工作空间"
  4. rpmbuild命令使用一套'标准化'的工作空间

(2)大体框架

  1. '宏变量''默认位置' --> '对应关系'
  2. 目录名('包含s') --> 宏代码('%_+目录名去S+然后小写+dir')
  3. SPECS %_specdir
  4. 目录名('不包含s') --> 宏代码('%_+目录名小写+dir')
  5. BUILD %_builddir

  1. 说明: 'BUILDROOT初始化'的时候'不存在',所以初始子目录'只有5个'
  2. 宏理解: ​ '映射关系'

需求1:查询宏变量的含义 

'精准查找'宏变量 --> rpm --eval %{...}

需求2:改变rpmbuild建立的目录

man rpmbuild  -->'加载顺序'

后记:'后者'这4个文件都是rpmrc相关的内容,rpmrc主要是用来定义一些'跟平台特型相关的一些选项'

  1. '改变次默认位置',可以修改配置文件:~/.rpmmacros中'变量_topdir对应的值' -->'实际是覆盖'
  2. %_topdir /mnt/rpmbuild

测试

制作rpm包用到的宏变量

'/usr/lib/rpm/macros'文件中定义所有

自己一些宏出处

  1. spec中'Release的出处'
  2. Release: 1%{?dist}

  1. vim /usr/lib/rpm/rpmrc
  2. (1)'rpm软件包'最终形式
  3. 569 %_build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
  4. (2)rpm --eval %{u2p}
  5. '/'
  6. 再次提醒:有什么'不懂的宏'直接利用'上述命令查询即可'
'并行编译':充分利用cpu  -->make的'时候'

x86_64架构'编译参数'

补充

标准  -->  '系统定义的'

 

 

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

闽ICP备14008679号