spec
%prep 预处理脚本
- 预处理脚本,这个段是预处理段,通常用来执行一些
解开源程序包
的命令,为下一步的编译安装作准备。 - %prep和下面的%build,%install段一样,可以执行
RPM所定义的宏命令
(以%开头) - 还可以执行
SHELL命令
,命令可以有很多行,如我们常写的tar解包命令。
%setup
- 宏解压源代码
- /usr/bin/gzip -dc xxxx.tgz # 把源码包解压并放好
- /usr/bin/tar -xf -
- 通常是从/usr/src/asianux/SOURCES里的包解压到/usr/src/asianux/BUILD/%{name}-%{version}中
2. 参数
- %setup 不加任何选项,仅将软件包打开
-q
:q 参数给 %setup 宏。这会显著减少编译日志文件的输出,尤其是源代码包会解压出一堆文件的时候, 在安静模式下且最少输出-c
:%setup -c 解压缩之前先产生目录-n
:同时编译多个源码包,源码的tar包的名称与解压出来的目录不一致,此时,就需要使用-n参数指定一下例如:%setup -n newdir 将软件包解压到newdir目录-D
:#在解压之前禁止删除目录-T
:不使用default的解压缩操作。-b
:%setup -b num 将第num个source文件解压缩- %setup -q -n %{name}-%{version}:静默模式下 指定解压到新目录,名为%{name}-%{version}
%build 开始构建包
- 在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行
mark
的工作 - 定义编译软件包所要执行的命令, 这一节一般由多个make命令组成。
- 这些命令可以是 shell 命令,也可以是宏。
- 开始编译源码构建包,相当于configure以及make部分
%install 开始把软件安装到虚拟的根目录中
- /usr/src/asianux/BUILD/%{name}-%{version}目录中进行
make install
的操作,路径不对的话,则下面%file中寻找文件的时候就会失败 - 常见内容
- %makeinstall:make DESTDIR=$RPM_BUILD_ROOT install
- %install主要就是为了后面的%file服务的
%post rpm安装后执行的脚本
%preun rpm卸载前执行的脚本
%postun rpm卸载后执行的脚本
%preun %postun 的区别是什么呢?
前者在升级的时候会执行,后者在升级rpm包的时候不会执行
文章最后发布于: 2018-09-11 17:44:11
相关阅读
Android studio 提示 module not specified
看看你是不是少了settings.gradle? 如果少了这个文件点击运行左边的下拉箭头,点击 Edit Configurarions ,你会看到这样的 ↓↓↓↓
自己的网站,前一段时间由于linux服务器被挖矿病毒入侵了,所以又重新搭建了一个环境,php版本用的php1.8的,访问网站是可以访问的,但是今
一、导入aspectjweaver.jar包二、创建一个类,使在执行方法之前之后调用package com.ly.spring.aop.advice; public class AdviceR
java反射--PropertyDescriptor类:(属性描述器)、Intros
JAVA中反射机制(JavaBean的内省与BeanUtils库) 内省(Introspector) 是Java 语言对JavaBean类属性、事件的一种缺省处理方法。 Java
宝塔搭建项目时出现No input file specified现象
把之前码云上面的项目打包下载下来准备搭建到本地上重新熟悉熟悉,但是将代码解压到正确的文件夹下,并使用相关域名出现No input