我们在Linux上利用 rpmbuild 构建 rpm 安装包时,通过命令rpm --showrc 查看实现代码,另外直接通过 rpm --eval "%{macro}"来查看具体对应路径。

比如我们要查看%{_bindir}的路径,就可以使用命令rpm --eval "%{ _bindir}"来查看,另外,所有的宏都可以在/usr/lib/rpm/macros里找到。

# yum -y install rpm-build

# yum info  rpm-build

# vim /usr/lib/rpm/macros

这是一个全局RPM配置文件, 这里所做的所有更改都将 在rpm包升级后会丢失。

你应该将系统配置添加到/etc/rpm/macros,将用户配置添加到〜/.rpmmacros。

宏对应路径一览表:

Macros mimicking autoconf variables

注意:在Fedora 10(和EPEL)之前的版本,%{_ initddir}不存在, 相反地你应该使用已弃用的%{_ initrddir}宏。

RPM directory macros

Some other macros

查看具体某个宏的值

# rpm  --help

# rpm --eval     "%{_builddir}"

# rpm  -E    "%{_builddir}"

RPM SPEC中的 %{?dist}  怎么理解?

# cat /usr/share/doc/rpm-4.11.3/conditionalbuilds

源代码通常在启用或禁用可选功能的情况下构建,使用rpm打包源代码时,可以使用各种功能选择,添加到spec文件,并将生成一个包

使用该功能集编译的二进制文件,这种机制很好对于具有小功能集的包,但不能很好地工作,对于大型,复杂的软件包,如Linux内核和/或

Pine邮件具有大量的功能,作为给定功能集可能不会为每个人“工作”。

参考

Fedora Project Wiki Packaging:RPMMacros

https://fedoraproject.org/wiki/Packaging:RPMMacros?rd=Packaging/RPMMacros#Valid_RPM_Macros

spec文件和spec宏

http://blog.chinaunix.net/uid-12078489-id-2960249.html

Dist Tag Guidelines

https://docs.fedoraproject.org/en-US/packaging-guidelines/DistTag

https://fedoraproject.org/wiki/Packaging:DistTag

linux编译时开启宏,【spec】Linux上编译安装的spec文件中的常用路径以及宏变量相关推荐

  1. Linux 编译时查找错误字符,编译Linux内核时出现“fatal error: linux/netfilter/xt_dscp: No such file or directory”...

    编译Linux内核时出现"fatal error: linux/netfilter/xt_dscp: No such file or directory".下面开始查找原因. 第一 ...

  2. zypper 删除mysql_如何在 Linux 上安装/卸载一个文件中列出的软件包?

    原标题:如何在 Linux 上安装/卸载一个文件中列出的软件包? 我们可以手动去安装这些软件但是这将花费大量的时间.你可以手动安装一俩个服务器,但是试想如果你有大概十个服务器呢.在这种情况下你无法手动 ...

  3. 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

    文章目录 一.编译时元编程引入 二.声明需要编译时处理的类 三.分析 Groovy 类的 AST 语法树 一.编译时元编程引入 在之前的 " [Groovy]MOP 元对象协议与元编程 &q ...

  4. 在配置spring-boot的yml文件中的项目路径时出现横划线表明已过时

    在配置spring-boot的yml文件中的项目路径时出现横划线表明已过时 换成server.servlet.context-path 即可

  5. 【踩坑日记 · 嵌入式 Linux】在香橙派 Zero 2 上编译安装 CH340 驱动(OrangePi Zero 2)

    前言 最近想尝试在 Linux 下编写和烧录 51 单片机程序,需要用到 CH340 模块,但是香橙派 Zero 2 没有预装它的驱动,所以需要下载 CH340 驱动的源码手动编译安装.在这里记录一下 ...

  6. 在linux里复制文件命令_如何在Linux上使用“安装”命令复制文件

    在linux里复制文件命令 Fatmawati Achmad Zaenuri/Shutterstock.com Fatmawati Achmad Zaenuri / Shutterstock.com ...

  7. linux关机时循环输出脚本,Linux关机时执行指定脚本功能实现

    1.关机时执行某个脚本的具体思路 (1)在文件夹/etc/init.d/下创建关机时需要执行的脚本file_name: (2)分别在文件夹/etc/rc0.d/和/etc/rc6.d/下创建该该脚本文 ...

  8. linux查看是否开启审计功能,linux审计功能auditd

    安全防护是首先要考虑的问题.为了避免别人盗取我们的数据,我们需要时刻关注它.安全防护包括很多东西, 我们知道auditd 的审计工具.这个工具在大多数Linux操作系统中是默认安装的.那么auditd ...

  9. linux 读取zip文件内容,如何从linux服务器上的大(30Gb)zip文件中提取文件

    1)从大型zip文件中提取 我想从linux服务器上的大型zip文件(30Gb)中提取文件.有足够的可用磁盘空间. 我试过jar xf dataset.zip.但是,按钮已满,出现错误,无法提取所有文 ...

最新文章

  1. linux环境insight安装与使用
  2. H5-代码的执行顺序影响着系统的性能:(position)
  3. 简单谈谈Docker镜像的使用方法_docker
  4. 浅谈块级元素和内联元素的嵌套规则
  5. c程序语言习题解答对编程有帮助吗,给C语言编程初学者的10个学习建议,助你学习事半功倍,不要错过...
  6. Pokemon Go将在日本发布 网络安全公司呼吁防范虚假软件
  7. [HAOI2015]树上染色
  8. js定义到执行(转)
  9. php 微信转发朋友圈,php微信分享到朋友圈、QQ、朋友、微博
  10. Elasticsearch(三)
  11. 电商管理系统的作用?好用的电商管理系统有哪些特点?
  12. 一篇文章教会你使用word域代码(seq field code )
  13. HP惠普笔记本Microsoft ACPI Compliant System未知设备的解决办法
  14. 【快鸽支付】个人免签支付_个人二维码支付_个人固码收款_个人支付接口_个人支付宝收款_个人微信收款_个人QQ支付收款
  15. linux mmc驱动框架,Linux mmc framework2:基本组件之mmc
  16. pyecharts官网
  17. 教你如何使用免费的来电提醒
  18. 著名小提琴老师林耀基老师去世
  19. 每日一记:zabbix日志报错cannot process item fra[usable,pct] trap: item type 15 cannot be used with traps
  20. Apache Traffic Server 简介

热门文章

  1. IntelliJ IDEA 2018.2.2及以下版本破解方法
  2. centOS 安装及部署 SVN
  3. ROS学习笔记一(ROS的catkin工作空间)
  4. 批处理Delims的基本知识
  5. 如何观察JS的事件队列的执行划分
  6. cf D. Dima and Hares
  7. 装完Win8后推荐进行的优化
  8. Chaos网络库(三)- 主循环及异步消息的实现
  9. VC编译选项 /EHa 异常处理
  10. sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id