今天在软件包编译时,需要给其制作patch修改部分问题。根据相关diff指令制作patch,并在本地使用patch命令验证均成功,下面实战进入spec编写。


将相关SOURCE放入指定目录,根据以往经验,在source字段加入自己的patch,随后在%prep阶段添加%patch -p1 (这里p1是因为解压source0后会自动cd进入第一级目录,所以忽略)。

所有准备工作已经完成,开始编译。

这时,发现在%prep阶段报错,提示生成了一个.rej文件,这是patch打失败的一个表现。根据网上相关的资料,我对比了.rej和我自己制作的.patch,发现并没有任何区别。但是为什么会提示报错呢,而且编译过程在prep这一阶段给到的日志比较少,没有什么可以参考的有价值信息,于是我开始从头看prep阶段,果然,上来第一个字段就是%autosetup。


%autosetup字段会自动为你解压缩前面列出来的source,同时,也会自动执行你前面所列出的patch。这就导致了我的patch已经执行成功,但是我又执行了一遍,所以会报错。

所以,如果在prep阶段使用了%autosetup,就不需要你再使用%patch去一个一个打patch了;如果你解压源码包source0使用的是%setup字段,那么后续的patch,则需要你通过%patch去一个一个执行


再次记录一下,autosetup后的-n参数,并不是把tar解压成指定的名字,而是在包名与解压后的目录名不一致的情况下,重新指定目录名方便CD进去,而不会修改目录名。

[RPM打包学习-SPEC文件]——%patch相关问题相关推荐

  1. RPM打包与SPEC文件

    制作RPM软件包并不是一件复杂的工作,其中的关键在于编写SPEC软件包描述文件.要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC). 这个文件中包含了软件包的诸多信息,如软件包的名字.版本 ...

  2. RPM打包原理spec

    概述 RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软 ...

  3. linux qt make文件或目录,rpm,linux_为Qt程序制作rpm包的spec文件里的路径问题,rpm,linux,qt,rpmbuild,spec - phpStudy...

    为Qt程序制作rpm包的spec文件里的路径问题 我对Qt和rpm都不怎么熟悉,所以在为Qt程序制作rpm包的时候被路径问题纠结到了. Qt的.pro文件的相关部分是这么写的,其中AppName是我的 ...

  4. RPM包rpmbuild SPEC文件深度说明

    关键字 spec脚本包括很多关键字,主要有: 引用 Name: 软件包的名称,后面可使用%{name}的方式引用 Summary: 软件包的内容概要 Version: 软件的实际版本号,例如:1.0. ...

  5. RPM安装包-Spec文件參数具体解释与演示样例分析

    spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件參数 spec文件包括建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个 ...

  6. RPM打包之spec示例

    示例来源于rpmbuild官网:https://rpmbuildtut.wordpress.com/development-packages/ vpython 的一个依赖包,gtkglarea,的sp ...

  7. spec linux,linux – 在RPM包中SPEC文件中1%{?dist}的含义是什么?

    1%{?dist}是什么意思? 这是什么意思? 我没有在任何地方找到这个意思 Name: hello Version: 2.8 Release: 1%{?dist} Summary: The &quo ...

  8. 学习htc文件的相关中文资料

    HTML Component(HTC)  http://www.blueidea.com/tech/web/2003/1227.asp http://www.7dn.cn/Article_Show.a ...

  9. 提取原rpm包里的SPEC文件及重新打包

    一.概要 目的是要修改原rsyslog rpm包的systemd rsyslog.service文件,添加一行"ExecStartPre=/bin/bash -c "/usr/bi ...

最新文章

  1. 驳“中国的网页设计为什么这么烂?”
  2. opencv相机标定
  3. 如何创建你的第一个Python元类?
  4. 深入理解spark两种调度模式:FIFO,FAIR模式
  5. Mysql半双工主从复制
  6. ubuntu 18.04安装jdk8和eclipse
  7. java bitset 扩展_将java BitSet保存到DB
  8. Struts2项目中的JSP如何访问Session对象
  9. Kafka的高性能原理
  10. java中虚拟机命令:jstack使用方法
  11. android 自定义权限弹窗_Android-开源通用弹窗的封装CommonPopupWindow(总得向别人学点什么)...
  12. Rust —— 一门没有GC的语言
  13. 5分钟正则表达式,了解一下!
  14. python爬虫怎么写多线程_Python爬虫4.1 — threading(多线程)用法教程
  15. python pandas series_Python Pandas 系列Series
  16. etl调度工具 Taskctl 变量概述
  17. 高仿京东分类页面实现
  18. php钱汇算成美元,PHP to USD
  19. 适合初学者使用的Mac绘图软件推荐
  20. python绘制旭日图

热门文章

  1. c语言学习笔记之分段函数
  2. Python的安装及应用
  3. 登录计算机系统用英语怎么说,登录用英语怎么说
  4. VS2022创建Windows服务程序
  5. 记录linux 生成crash dump文件步骤
  6. android 开发实例 底部导航栏(1)
  7. 通过GitHub网站发布网页
  8. python-Matplotlib(2D绘图)
  9. 收藏 一文熟悉视频目标跟踪技术
  10. 何必心中无码,AI让你眼见为实