spec 语法

%prep 预处理脚本

  1. 预处理脚本,这个段是预处理段,通常用来执行一些的命令,为下一步的编译安装作准备。
  2. %prep和下面的%build,%install段一样,可以执行(以%开头)
  3. 还可以执行,命令可以有很多行,如我们常写的tar解包命令。

%setup

  1. 宏解压源代码
  2. /usr/bin/gzip -dc xxxx.tgz # 把源码包解压并放好
  3. /usr/bin/tar -xf –
  4. 通常是从/usr/src/asianux/SOURCES里的包解压到/usr/src/asianux/BUILD/%{name}-%{version}中

2. 参数

  1. %setup 不加任何选项,仅将软件包打开
  2. :q 参数给 %setup 宏。这会显著减少编译日志文件的输出,尤其是源代码包会解压出一堆文件的时候, 在安静模式下且最少输出
  3. :%setup -c 解压缩之前先产生目录
  4. :同时编译多个源码包,源码的tar包的名称与解压出来的目录不一致,此时,就需要使用-n参数指定一下例如:%setup -n newdir 将软件包解压到newdir目录
  5. :#在解压之前禁止删除目录
  6. :不使用default的解压缩操作。
  7. :%setup -b num 将第num个source文件解压缩
  8. %setup -q -n %{name}-%{version}:静默模式下 指定解压到新目录,名为%{name}-%{version}

%build 开始构建包

  1. 在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行的工作
  2. 定义编译软件包所要执行的命令, 这一节一般由多个make命令组成。
  3. 这些命令可以是 shell 命令,也可以是宏。
  4. 开始编译源码构建包,相当于configure以及make部分

%install 开始把软件安装到虚拟的根目录中

  1. /usr/src/asianux/BUILD/%{name}-%{version}目录中进行的操作,路径不对的话,则下面%file中寻找文件的时候就会失败
  2. 常见内容
    1. %makeinstall:make DESTDIR=$RPM_BUILD_ROOT install
  3. %install主要就是为了后面的%file服务的

%post rpm安装后执行的脚本

%preun rpm卸载前执行的脚本

%postun rpm卸载后执行的脚本

%preun %postun 的区别是什么呢br> 前者在升级的时候会执行,后者在升级rpm包的时候不会执行

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月7日
下一篇 2018年8月7日

相关推荐