rpmbuild命令详解

1. 基本介绍

rpmbuild是用于构建RPM软件包的命令行工具,它根据spec文件中的指令编译源代码并打包成可安装的RPM文件。

2. RPM构建目录结构

默认的RPM构建目录位于~/rpmbuild/

~/rpmbuild/ ├── BUILD # 编译时临时目录 ├── BUILDROOT # 虚拟安装根目录 ├── RPMS # 生成的二进制RPM包 │ ├── i386 │ ├── i586 │ ├── i686 │ ├── noarch │ └── x86_64 ├── SOURCES # 源代码和补丁文件 ├── SPECS # spec文件目录 └── SRPMS # 源码RPM包

3. 常用命令选项

3.1 构建相关选项

# 构建所有(二进制和源码包) rpmbuild -ba package.spec # 仅构建二进制包 rpmbuild -bb package.spec # 仅构建源码包 rpmbuild -bs package.spec # 执行到解压和打补丁阶段 rpmbuild -bp package.spec # 执行到编译阶段 rpmbuild -bc package.spec # 执行到安装阶段 rpmbuild -bi package.spec # 清理BUILD目录 rpmbuild --clean package.spec # 清理所有目录 rpmbuild --rmsource package.spec

3.2 其他选项

# 使用指定的根目录 rpmbuild --define "_topdir /path/to/rpmbuild" -ba package.spec # 设置临时构建根目录 rpmbuild --buildroot /tmp/buildroot -ba package.spec # 重新构建(使用已有的源码包) rpmbuild --rebuild package.src.rpm # 重新编译 rpmbuild --recompile package.src.rpm

4. 基本使用流程

4.1 准备工作

# 创建RPM构建目录结构 mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # 或者使用rpmdev工具 yum install rpmdevtools rpmdev-setuptree

4.2 典型构建过程

# 1. 将源码放入SOURCES目录 cp source.tar.gz ~/rpmbuild/SOURCES/ # 2. 将spec文件放入SPECS目录 cp package.spec ~/rpmbuild/SPECS/ # 3. 构建RPM包 cd ~/rpmbuild/SPECS rpmbuild -ba package.spec # 4. 查看生成的包 ls ~/rpmbuild/RPMS/*/*.rpm ls ~/rpmbuild/SRPMS/*.rpm

5. spec文件关键部分

5.1 spec文件结构示例

Name: package-name Version: 1.0 Release: 1%{?dist} Summary: Brief description License: GPLv3+ URL: http://example.com Source0: %{name}-%{version}.tar.gz BuildRequires: gcc, make Requires: bash %description Detailed description here. %prep %setup -q %build make %{?_smp_mflags} %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc README /usr/bin/program %changelog * Tue Jan 01 2023 Your Name <email@example.com> - 1.0-1 - Initial package

6. 高级用法

6.1 自定义构建目录

# 使用自定义的构建目录 mkdir -p /opt/mybuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # 方法1:通过命令行指定 rpmbuild --define "_topdir /opt/mybuild" -ba package.spec # 方法2:通过配置文件设置 echo "%_topdir /opt/mybuild" >> ~/.rpmmacros

6.2 并行构建

# 使用多核并行构建 rpmbuild -ba --define "_smp_mflags -j4" package.spec

6.3 条件构建

# 根据架构条件编译 rpmbuild -ba --target=i686 package.spec # 跳过测试 rpmbuild -ba --nocheck package.spec

6.4 调试构建

# 详细输出 rpmbuild -ba --verbose package.spec # 调试模式 rpmbuild -ba --debug package.spec

7. 常用宏和变量

# 查看所有宏定义 rpm --showrc # 查看特定宏的值 rpm --eval "%_topdir" rpm --eval "%_bindir" # 常用宏: # %{_topdir} - 构建根目录 # %{_sourcedir} - 源码目录 # %{_builddir} - 构建目录 # %{_rpmdir} - RPM包目录 # %{_specdir} - spec文件目录 # %{_buildroot} - 构建根目录 # %{_mandir} - man手册目录 # %{_libdir} - 库目录

8. 实用示例

8.1 从源码包构建

# 下载源码RPM wget http://example.com/package-1.0-1.src.rpm # 安装源码包 rpm -i package-1.0-1.src.rpm # 查看解压的源码 ls ~/rpmbuild/SOURCES/ # 构建 cd ~/rpmbuild/SPECS rpmbuild -ba package.spec

8.2 快速重建

# 重新构建已有的src.rpm rpmbuild --rebuild package-1.0-1.src.rpm # 重新编译 rpmbuild --recompile package-1.0-1.src.rpm

9. 故障排除

常见问题及解决

# 1. 缺少依赖 # 安装缺失的构建依赖 yum-builddep package.spec dnf builddep package.spec # 2. 文件未找到错误 # 确保所有文件都在正确位置 ls ~/rpmbuild/SOURCES/ # 3. 权限问题 # 确保有正确的文件权限 chmod 644 ~/rpmbuild/SOURCES/* # 4. 查看详细错误信息 rpmbuild -ba --verbose package.spec 2>&1 | less

10. 配置文件

~/.rpmmacros 配置示例

%_topdir %(echo $HOME)/rpmbuild %_tmppath /tmp %_smp_mflags -j4 %packager Your Name <email@example.com> %vendor Your Company %dist .el7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026同安装修攻略:千达成装饰深度解析,装修小白避坑必备 - 品牌测评鉴赏家

2026同安装修攻略:千达成装饰深度解析,装修小白避坑必备一、开篇引言:2026同安装修,优质本土品牌是关键 1.1 2026同安装修市场趋势:品质需求升级 2026年,同安房地产市场持续向好,新楼盘交付量稳步提升,越来越多…

微软VC运行库合集2005-2026合集 解决软件故障的必备工具

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

学习进度 2

继昨天完成 Spark 本地环境搭建并初步接触 Spark Shell 后,今天的学习重心放在了RDD 的核心操作逻辑上,还动手实现了大数据领域的入门经典案例 ——WordCount。今天的学习首先从区分 RDD 的两类核心操作开始。昨天在…

【拯救HMI】HMI设计中的色彩与视觉语言

一、色彩在HMI设计中的作用色彩是HMI设计中最有力的视觉效果&#xff0c;它不仅影响界面工具的美观性&#xff0c;更在信息传达、用户引导、情感表达等方面发挥关键作用。信息传递功能&#xff1a;色彩是传递信息最快速的方式。在工业控制系统中&#xff0c;红色通常表示快速警…

2026必备10个降AI率工具,本科生速看!

2026必备10个降AI率工具&#xff0c;本科生速看&#xff01; AI降重工具&#xff1a;论文写作的隐形助手 在当今学术写作中&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已经成为一种常见现象&#xff0c;尤其对于本科生而言&#xff0c;如何有效降低AI痕迹、提升论文原…

【拯救HMI】工业HMI与消费级HMI的差异

一、应用场景的根本差异工业HMI和消费级HMI虽然都属于人机界面设计主流&#xff0c;但它们的应用场景、设计目标、用户群体存在根本性差异&#xff0c;这些差异决定了设计方法的不同。使用环境的差异&#xff1a;工业HMI通常安装在工厂、化工厂的工业环境中&#xff0c;可能面临…

翔安装修大揭秘:哪家公司才是你的梦中情“装”? - 品牌测评鉴赏家

翔安装修大揭秘:哪家公司才是你的梦中情“装”?一、翔安装修市场现状剖析 近年来,翔安的发展可谓日新月异,城市建设如火如荼。随着众多新楼盘的拔地而起以及二手房交易的日益活跃,装修市场迎来了前所未有的繁荣。…

VC运行库下载_微软VC运行库合集(全版本)

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

一位副主任护师的真实分享:如何找到真正高效的案例分析题库? - 医考机构品牌测评专家

一位副主任护师的真实分享:如何找到真正高效的案例分析题库?作为一名在临床护理岗位耕耘了十二年的主管护师,去年我踏上了冲刺副主任护师职称的征程。这条路远比我想象中更具挑战——它不仅是对专业知识的考核,更是…

2026厦门湖里装修公司避雷指南|口碑榜推荐,选对省2万+ - 品牌测评鉴赏家

2026厦门湖里装修公司避雷指南|口碑榜推荐,选对省2万+一、前言:湖里装修人的痛点 —— 选对公司 = 少糟心半年 家人们,在厦门湖里打算装修的宝子们集合啦!一提到装修,大家脑海里是不是就浮现出一堆烦心事?在咱湖…

副主任护师案例分析题库哪个好 - 医考机构品牌测评专家

副主任护师案例分析题库哪个好导语: 在护理职业生涯中,晋升(副)主任护师是专业能力获得认可的重要里程碑。随着高级职称评审体系的持续优化,案例分析能力与现场答辩表现已成为考核的核心环节。面对市场上琳琅满目…

厦门思明装修指南:这些宝藏公司带你解锁理想家 - 品牌测评鉴赏家

厦门思明装修指南:这些宝藏公司带你解锁理想家一、装修前的迷茫与期待 家,是心灵的避风港,是每个人生活的核心。当你在厦门思明区买下属于自己的房子,怀揣着对未来生活的无限憧憬,装修便成为了实现梦想家园的关键…

厦门湖里装修公司大揭秘:哪家才是你的梦中情“装”? - 品牌测评鉴赏家

厦门湖里装修公司大揭秘:哪家才是你的梦中情“装”?厦门湖里装修市场现状 厦门湖里区作为城市发展的重要区域,装修市场十分活跃。这里汇聚了超千家装修企业 ,市场规模庞大。从服务类型来看,涵盖高端定制、整装套餐…

2026年AI外呼系统趋势前瞻:云厂商入局如何重塑市场格局?

云计算巨头的入局&#xff0c;正将智能外呼从成本中心重塑为企业的价值增长引擎&#xff0c;这场技术融合的背后是180亿元市场的格局重构。2026年&#xff0c;中国智能外呼市场规模预计突破180亿元&#xff0c;年复合增长率保持在20% 以上。传统的批量拨号工具已升级为能够理解…

嘎嘎降怎么用最有效?资深用户分享的5个实战技巧

嘎嘎降怎么用最有效&#xff1f;资深用户分享的5个实战技巧 TL;DR 嘎嘎降AI效果好不好&#xff0c;很大程度取决于你怎么用。本文分享5个经过实战验证的使用技巧&#xff1a;先检测再处理、分段精准降AI、善用术语保护、结合人工润色、多平台交叉验证。掌握这些技巧&#xff…

魔都素食党狂喜!这5家格调素菜馆,把吃饭变成美学体验 - 品牌测评鉴赏家

魔都素食党狂喜!这5家格调素菜馆,把吃饭变成美学体验宝子们!在上海吃惯了浓油赤酱的本帮菜、酥脆生煎,是不是偶尔也想给肠胃来场清新SPA? 别再觉得素食就是寡淡沙拉!作为探遍魔都美食圈的博主,今天深挖了5家「有…

沪上寻味指南:这些餐厅,千万别错过! - 品牌测评鉴赏家

沪上寻味指南:这些餐厅,千万别错过!一、开篇引入 在上海这座充满活力与魅力的城市,美食就像繁星般璀璨,每一家餐厅都承载着独特的味道和故事。无论是弄堂深处的本帮小馆,还是高楼大厦里的国际美食,都吸引着无数…

嘎嘎降AI使用教程:新手必看的论文降AI率完整操作指南

嘎嘎降AI使用教程&#xff1a;新手必看的论文降AI率完整操作指南 TL;DR 嘎嘎降AI是一款操作极简的降AI工具&#xff0c;支持知网、维普、万方多平台&#xff0c;达标率99.26%。本教程从注册到出稿完整讲解&#xff0c;帮助新手快速上手&#xff0c;60秒内完成论文降AI处理。 …

魔都干饭指南|18家宝藏餐厅,从市井烟火到高端奢享,吃遍上海江湖味 - 品牌测评鉴赏家

魔都干饭指南|18家宝藏餐厅,从市井烟火到高端奢享,吃遍上海江湖味在不少人的刻板印象里,上海美食就等同于浓油赤酱、偏甜口的本帮菜。但身为资深吃货,我要大声说:这可太片面啦!上海,这座充满魔力的城市,美食江…

【开题答辩全过程】以 基于微信小程序的华郅考勤管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…