linux 使用rpm

您所在的位置:网站首页 rpmbuild-bb命令可以生成*srcrpm包 linux 使用rpm

linux 使用rpm

2024-07-09 09:33| 来源: 网络整理| 查看: 265

安装构建工具 yum install -y rpm-build rpmdevtools

rpm-build 包是主要使用的工具包

rpmdevtools 包可以快速生成构建环境,一般构建路径在家目录~/rpmbuild下

rpmdev-setuptree

目录结构如下图,初始是没有BUILDROOT的。

目录功能:

BUILD                 编译rpm包的临时目录      BUILDROOT      编译后生成的软件临时安装目录 RPMS                 最终生成的可安装rpm包的所在目录 SOURCES         所有源代码和补丁文件的存放目录 SPECS               存放SPEC文件的目录(重要) SRPMS              软件最终的rpm源码格式存放路径

准备源码包

准备源码包,并将源码包存放在~/rpmbuild/SOURCES目录下

编写spec脚本

spec脚本存放目录为~/rpmbuild/SPECS。

编写时建议使用vim ,因为vim可以自动生成一些提示。

软件包制作时建议使用标准的分组,标准分组如下:

  Amusements/Games (娱乐/游戏)   Amusements/Graphics(娱乐/图形)   Applications/Archiving (应用/文档)   Applications/Communications(应用/通讯)   Applications/Databases (应用/数据库)   Applications/Editors (应用/编辑器)   Applications/Emulators (应用/仿真器)   Applications/Engineering (应用/工程)   Applications/File (应用/文件)   Applications/Internet (应用/因特网)   Applications/Multimedia(应用/多媒体)   Applications/Productivity (应用/产品)   Applications/Publishing(应用/印刷)   Applications/System(应用/系统)   Applications/Text (应用/文本)   Development/Debuggers (开发/调试器)   Development/Languages (开发/语言)   Development/Libraries (开发/函数库)   Development/System (开发/系统)   Development/Tools (开发/工具)   Documentation (文档)   System Environment/Base(系统环境/基础)   System Environment/Daemons (系统环境/守护)   System Environment/Kernel (系统环境/内核)   System Environment/Libraries (系统环境/函数库)   System Environment/Shells (系统环境/接口)   User Interface/Desktops(用户界面/桌面)   User Interface/X (用户界面/X窗口)   User Interface/X Hardware Support (用户界面/X硬件支持)

当有多个资源需要打包时Sourcean按照顺序排列,例如:

Source0 AAAA.tar Source1 BBBB.tar Source2 CCCC.conf

 

各个参数的提示可以参考【圣地亚哥】博客:https://www.jianshu.com/p/691189360ede

spec文件中的宏变量 %{_topdir} %{getenv:HOME}/rpmbuild %{_builddir} %{_topdir}/BUILD %{_rpmdir} %{_topdir}/RPMS %{_sourcedir} %{_topdir}/SOURCES %{_specdir} %{_topdir}/SPECS %{_srcrpmdir} %{_topdir}/SRPMS %{_buildrootdir} %{_topdir}/BUILDROOT #这几个是常用的宏变量,当遇到其他的时可以使用以下命令查询 rpmbuild -E %{command} 示例 Name: yasm Version: 1.3.0 Release: 1%{?dist} Summary: yasm Group: Development/Tools License: GPLv2 URL: http://yasm.tortall.net/ Source0: %{name}-%{version}.tar.gz BuildRequires: gcc,make #Requires: %description Yasm installer. %prep # 解压安装包,解压后的文件在%{_builddir},即BUILDS tar -zxf %{_sourcedir}/%{name}-%{version}.tar.gz %build cd %{name}-%{version} ./configure --prefix=/usr/local/%{name}-%{version} --bindir=/usr/local/bin make %install cd %{_builddir}/%{name}-%{version} # 清理BUILDROOT下可能存在的临时安装目录 rm -rf %{buildroot} make install DESTDIR=%{buildroot} %clean # 安装后的清理工作,清理BUILDS目录下的解压文件和BUILDROOT下可能存在的临时安装目录 rm -rf %{_builddir}/%{name}-%{version} rm -rf %{buildroot} %postun # 卸载软件后的清理工作 rm -rf /usr/local/%{name}-%{version} rm -rf /usr/local/bin/vsyasm rm -rf /usr/local/bin/yasm rm -rf /usr/local/bin/ytasm %files # 在制作安装包是files可以先不用写,直接执行rpmbuild,执行到最后回报错提示分发包,将提示结果复制到这里即可 /usr/local/bin/vsyasm /usr/local/bin/yasm /usr/local/bin/ytasm /usr/local/yasm-1.3.0/include/libyasm-stdint.h /usr/local/yasm-1.3.0/include/libyasm.h /usr/local/yasm-1.3.0/include/libyasm/arch.h /usr/local/yasm-1.3.0/include/libyasm/assocdat.h /usr/local/yasm-1.3.0/include/libyasm/bitvect.h /usr/local/yasm-1.3.0/include/libyasm/bytecode.h /usr/local/yasm-1.3.0/include/libyasm/compat-queue.h /usr/local/yasm-1.3.0/include/libyasm/coretype.h /usr/local/yasm-1.3.0/include/libyasm/dbgfmt.h /usr/local/yasm-1.3.0/include/libyasm/errwarn.h /usr/local/yasm-1.3.0/include/libyasm/expr.h /usr/local/yasm-1.3.0/include/libyasm/file.h /usr/local/yasm-1.3.0/include/libyasm/floatnum.h /usr/local/yasm-1.3.0/include/libyasm/hamt.h /usr/local/yasm-1.3.0/include/libyasm/insn.h /usr/local/yasm-1.3.0/include/libyasm/intnum.h /usr/local/yasm-1.3.0/include/libyasm/inttree.h /usr/local/yasm-1.3.0/include/libyasm/linemap.h /usr/local/yasm-1.3.0/include/libyasm/listfmt.h /usr/local/yasm-1.3.0/include/libyasm/md5.h /usr/local/yasm-1.3.0/include/libyasm/module.h /usr/local/yasm-1.3.0/include/libyasm/objfmt.h /usr/local/yasm-1.3.0/include/libyasm/parser.h /usr/local/yasm-1.3.0/include/libyasm/phash.h /usr/local/yasm-1.3.0/include/libyasm/preproc.h /usr/local/yasm-1.3.0/include/libyasm/section.h /usr/local/yasm-1.3.0/include/libyasm/symrec.h /usr/local/yasm-1.3.0/include/libyasm/valparam.h /usr/local/yasm-1.3.0/include/libyasm/value.h /usr/local/yasm-1.3.0/lib/libyasm.a /usr/local/yasm-1.3.0/share/man/man1/yasm.1 /usr/local/yasm-1.3.0/share/man/man7/yasm_arch.7 /usr/local/yasm-1.3.0/share/man/man7/yasm_dbgfmts.7 /usr/local/yasm-1.3.0/share/man/man7/yasm_objfmts.7 /usr/local/yasm-1.3.0/share/man/man7/yasm_parsers.7

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3