zoukankan      html  css  js  c++  java
  • 【RPM包的制作】

     Name

    软件包的名称,后面可使用%{name}的方式引用

    Name:          <software name>

     Version

    软件包的名称,后面可使用%{name}的方式引用软件包版本号,后面可使用%{version}引用。

    Version:          <software version>

      %build阶段

     宏%setup

     这个宏解压源代码,将当前目录改为源代码解压之后产生的目录。这个宏还有一些选项可以用。例如,在解压后,%setup 宏假设产生的目录是%{name}-%{version}, 如果 tar 打包中的目录不是这样命名的,可以用 -n 选项来指定要切换到的目录。例如:%setup -n%{name}-April2003Rel

    • %setup-q---------将 tar 命令的繁复输出关闭
    • %setup -nnewdir---------将压缩的软件源程序在newdir目录下解开。
    • %setup -c---------------在解开源程序之前先创建目录。
    • %setup -bnum------------在包含多个源程序时,将第num个源程序解压缩。
    • %setup -T----------------不使用缺省的解压缩操作。

    文件%files

    定义软件包所包含的文件,分为三类:说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者及组别。这里会在虚拟根目录下进行,千万不要写绝对路径,而应用宏或变量表示相对路径。 如果描述为目录,表示目录中除%exclude外的所有文件。%defattr (-,root,root) 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755

     概括

    1. rpmbuild目录

    默认位置  宏代码 名称 用途
    ~/rpmbuild/SPECS %_specdir Spec 文件目录 保存 RPM 包配置(.spec)文件
    ~/rpmbuild/SOURCES %_sourcedir 源代码目录 保存源码包(如 .tar 包)和所有 patch 补丁
    ~/rpmbuild/BUILD %_builddir 构建目录 源码包被解压至此,并在该目录的子目录完成编译
    ~/rpmbuild/BUILDROOT %_buildrootdir 最终安装目录 保存 %install 阶段安装的文件
    ~/rpmbuild/RPMS %_rpmdir 标准 RPM 包目录 生成/保存二进制 RPM 包
    ~/rpmbuild/SRPMS %_srcrpmdir 源代码 RPM 包目录 生成/保存源码 RPM 包(SRPM)

    2. spec文件阶段

    阶段 读取的目录 写入的目录 具体动作
    %prep %_sourcedir %_builddir 读取位于 %_sourcedir 目录的源代码和 patch 。之后,解压源代码至 %_builddir 的子目录并应用所有 patch。
    %build      
    %install      
    %check      
    bin      
    src      

     参考资料

    1. 如何制作一个标准的 RPM 包

    2. RPM打包原理、示例、详解及备查

    2.

  • 相关阅读:
    c#线程带参数
    svn自动update到指定目录
    204. 计数质数
    178. 分数排名
    387. 字符串中的第一个唯一字符
    374. 猜数字大小
    371. 两整数之和
    350. 两个数组的交集 II
    326. 3的幂
    219. 存在重复元素 II
  • 原文地址:https://www.cnblogs.com/sunbines/p/14619406.html
Copyright © 2011-2022 走看看