linux 使用rpm |
您所在的位置:网站首页 › rpmbuild-bb命令可以生成*srcrpm包 › linux 使用rpm |
安装构建工具
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 |