rpmbuild命令
<p style="text-indent: 2em;">RPM(Redhat Package Manager)是用于Redhat、CentOS、Fedora等Linux 分发版(distribution)的常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。</p><p style="text-indent: 2em;"><span style="color: rgb(255, 0, 0);">rpmbuild</span>命令被用于创建rpm的二进制软件包和源码软件包,介绍如下:</p><p style="text-indent: 0em;">#rpmbuild</p><p style="text-indent: 2em;">-bp 只作准备 (解压与打补丁)</p><p style="text-indent: 2em;">-bc 准备并编译</p><p style="text-indent: 2em;">-bi 编译并安装</p><p style="text-indent: 2em;">-bl 检验文件是否齐全</p><p style="text-indent: 2em;">-ba 编译后做成*.rpm和src.rpm</p><p style="text-indent: 2em;">-bb 编译后做成*.rpm</p><p style="text-indent: 2em;">-bs 只做成*.src.rpm</p><p style="text-indent: 2em;">-tc -ti -ta -tb -ts 的功能类似,只是所需参数由spec文件变成tar包。</p><p style="text-indent: 2em;">如:<span style="color: rgb(255, 0, 0);">cd /usr/src/redhat/SPECS</span></p><p style="text-indent: 2em;"><span style="color: rgb(255, 0, 0);">rpmbuild -bp kernel-2.6.spec</span></p><p style="text-align:center"><span style="color: rgb(255, 0, 0);"><img src="/uploads/AilsonJack/2018.08.24/1535082049653886.jpg" onclick="preview_image('/uploads/AilsonJack/2018.08.24/1535082049653886.jpg')"/></span></p><p style="text-indent: 2em;">更具体的用法说明:<br/></p><p style="text-indent: 2em;">Build options with [ <specfile> | <tarball> | <source package> ]:</p><p style="text-indent: 2em;">*建立包的选项有:[从文件<<span style="color: rgb(255, 0, 0);">specfile</span>>建立 |从<<span style="color: rgb(255, 0, 0);">tarball</span>>包建立 |从<<span style="color: rgb(255, 0, 0);">source package</span>>包建立]</p><p class="artical_littlestyle1">1、从文件<specfile>建立</p><p style="text-align: left; text-indent: 0em;">-bp build through %prep (unpack sources and apply patches) from <specfile></p><p style="text-align: left; text-indent: 0em;"> *-bp 从<specfile>文件的%prep段开始建立(解开源码包并打补丁)</p><p style="text-indent: 0em;">-bc build through %build (%prep, then compile) from <specfile></p><p style="text-indent: 0em;"> *-bc 从<specfile>文件的%build</p><p style="text-indent: 0em;">-bi build through %install (%prep, %build, then install) from <specfile></p><p style="text-indent: 0em;">-bl verify %files section from <specfile></p><p style="text-indent: 0em;"> *检查<specfile>文件的%files段</p><p style="text-indent: 0em;">-ba build source and binary packages from <specfile></p><p style="text-indent: 0em;"> *建立源码和二进制包</p><p style="text-indent: 0em;">-bb build binary package only from <specfile></p><p style="text-indent: 0em;"> *只建立二进制包</p><p style="text-indent: 0em;">-bs build source package only from <specfile></p><p style="text-indent: 0em;"> *只建立源码包<br/></p><p class="artical_littlestyle2">2、从 <tarball>包建立</p><p style="text-indent: 0em;">-tp build through %prep (unpack sources and apply patches) from <tarball><br/>-tc build through %build (%prep, then compile) from <tarball><br/>-ti build through %install (%prep, %build, then install) from <tarball><br/>-ta build source and binary packages from <tarball><br/> *建立源码和二进制包<br/>-tb build binary package only from <tarball><br/> *只建立二进制包<br/>-ts build source package only from <tarball><br/> *只建立源码包</p><p class="artical_littlestyle3">3、从 <source package>包建立</p><p style="text-indent: 0em;">-rebuild build binary package from <source package><br/> *建立二进制包<br/>-recompile build through %install (%prep, %build, then install) from <source package><br/></p><p class="artical_littlestyle4">4、rpmbuild的其他使用项</p><p style="text-indent: 0em;">-buildroot=DIRECTORY override build root<br/> *确定以root目录建立包<br/>-clean remove build tree when done<br/> *完成打包后清除BUILD下的文件目录<br/>-nobuild do not execute any stages of the build<br/> *不进行BUILD的阶段<br/>-nodeps do not verify build dependencies<br/> *不检查建立包时的关联文件<br/>-nodirtokens generate package header(s) compatible with (legacy) rpm packaging<br/>-rmsource remove sources when done<br/> *完成打包后清除sources<br/>-rmspec remove specfile when done<br/> *完成打包后清除specfile<br/>-short-circuit skip straight to specified stage (only for c,i)<br/> *跳过<br/>-target=CPU-VENDOR-OS override target platform<br/> *确定包的最终使用平台<br/><span style="color: rgb(0, 112, 192);">Common options for all rpm modes(所有rpm都可使用的选项):</span></p><p style="text-indent: 0em;">-D, -define='MACRO'EXPR' define MACRO with value EXPR<br/> *预定义<br/>-E, -eval='EXPR' print macro expansion of EXPR<br/> *显示大量EXPR扩展信息<br/>-macros=<FILE:…> read <FILE:…> instead of default file(s)<br/> *读<FILE:…>文件代替默认文件<br/>-nodigest don’t verify package digest(s)<br/> *不检查包的说明信息<br/>-nosignature don’t verify package signature(s)<br/> *不检查包的签名信息<br/>-rcfile=<FILE:…> read <FILE:…> instead of default file(s)<br/> *读<FILE:…>文件代替默认文件<br/>-r, -root=ROOT use ROOT as top level directory (default: “/”)<br/> *使ROOT为最高级别的路径<br/>-querytags display known query tags<br/> *显示已知的有疑问的地方<br/>-showrc display final rpmrc and macro configuration<br/> *显示最终的配置信息<br/>-quiet provide less detailed output<br/> *提供少量的信息<br/>-v, -verbose provide more detailed output<br/> *提供大量的详细的信息<br/>-version print the version of rpm being used<br/> *显示rpm包的版本<br/></p>
你可能也喜欢:
暂无评论,要不要来个沙发
发表评论
JLink V9掉固件修复(灯不亮) 3Zephyr笔记2 - 在STM32F429上运行HelloWorld 2计算NandFlash要传入的行地址和列地址 1Linux MMC子系统 - 6.eMMC 5.1工作模式-设备识别模式 0Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式 0Linux MMC子系统 - 4.eMMC 5.1常用命令说明(2) 0
标签云
Linux嵌入式实用技巧ARM内核学习问题集合CC++编程语言阅读笔记汇编Linux内核完全注释Windows驱动开发计算机基础ARM11ARMv7-ASTM32IDESublimeLinux内核学习eMMCMMC子系统Ubuntu操作系统OfficeVMWareAPUEgccRTOS中断漫游世界随笔感悟开发工具软件应用编程VsCodearmccarmclang编译器ZephyrSPIJLink网卡驱动安装各种芯片库函数NFSμCOS内核sambaFlashUnix命令与脚本输入法Linux内核设计与实现gitRIFFWAVJATGFTPar8161安装centos有线上网μCGUI字库工程建立右键菜单网络文件系统Firefox百度NTFS文件系统CodeBlocksCentOS数据结构算法PhotoShop51KeilQTUltraEditscanfglibc宏定义UIDGID优先级娱乐天地SourceInsight磁盘扇区总线I2CPDFBComparePythonI2SFPUMakefileSWDCPUARP软件推荐FileZilla