rpm本地打包之spec文件(linux)

rpm本地打包之spec文件(linux)

rpm本地打包的回顾

  • Linux之rpm本地打包中分析了rpm的常用指令、rpmbuild的常用命令以及参数的配置说明,详细情况请进入链接详细查看。接下来重点是分析spec文件。

spec文件

  • 能够熟悉在以上链接中的操作命令以及配置参数的含义,管理日常的rpm软件包也就不成问题了。
  • 然而,随着linux操作系统越来越流行于世界各地,越来越多的开发者更喜欢采用RPM格式来发布自己的软件包。那么RPM软件包是怎么样制作的了?对于大多数的开发者来说还是比较陌生的。
  • 其实,制作RPM软件包并不是一件复杂的工作,其中最为关键在于编写SPEC软件包描述文件。要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等等。

  • 描述文件如下:

文件头:

  • 一般的spec文件头包含以下几个域:
Name:
  • 软件包的名字,最终RPM软件包是用该名字与版本号,释出号及体系号来命名软件包的。
Name(example):
Name:   python-django-horizon
Epoch:
  • 软件包的系列,也就是软件包的体系号,表示软件包的系列
Epoch(example):
Epoch:  1
Version:
  • 软件包的版本号。仅当软件包比以前有较大改变时才增加版本号。
Version(example):
Version:    4.0.2
Release:
  • 软件包释出号。一般我们对该软件包做一些小的补丁的时候就应该释出号出1。
Relase(example):
Release:    4.0.2

注意: 其中Epoch:Version:Release表示了rpm包的新旧,优先级依次降低,打出的rpm包也是以${package}-${Version}-${Release}命名

Summary:
  • 一句话概括该软件包尽量多的信息。
Summary(example):
Summary:    Django application for talking to Openstack
Group:
  • 软件包所属类别,具体类别有:
    • 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硬件支持)
Group(example):
Group:      Development/Libraries
License:
  • 软件包的发行许可证,也就是软件的授权方式,通常是GPL。
License(example)
# Code in horizon/horizon/utils taken from django which is BSD
License:    ASL 2.0 and BSD
URL:
  • rpm软件包的主页链接地址。
URL(example):
URL:        http://horizon.openstack.org/
Source:
  • 源程序软件包的名称。例如:horizon-9.0.1.tar.gz
    注意: Source[0-n]是rpm软件包打包时的源代码
Source(example):
Source0:    https://ta
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 中,RPM(Red Hat Package Manager)是一种常见的软件包管理工具,可以方便地安装、升级、卸载软件包。下面是使用 RPM 打包的基本步骤: 1. 准备打包文件 将需要打包文件放在同一个目录下,并确保目录结构正确。 2. 创建 spec 文件 spec 文件RPM 打包的核心文件,它包含了软件包的相关信息,如软件名称、版本号、依赖关系等。可以使用文本编辑器创建 spec 文件,命名为 software.spec,其中 software 为软件包名称。 3. 编写 spec 文件 spec 文件格式比较复杂,需要按照规范编写。以下是一个简单的示例: ``` Name: software Version: 1.0 Release: 1 Summary: A brief summary of the software License: GPL Group: Applications/Tools Source0: software.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-root %description A detailed description of the software. %prep %setup -q %build ./configure make %install make install DESTDIR=%{buildroot} %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) /usr/local/bin/software %doc README %changelog ``` 其中,Name、Version、Release、Summary、License、Group、Source0 等字段需要根据实际情况填写,%description、%files、%doc、%changelog 等字段可以根据需求添加或删除。 4. 执行 rpmbuild 命令 执行以下命令进行打包: ``` $ rpmbuild -bb software.spec ``` 其中,-bb 表示打包并构建二进制 RPM 包。如果一切顺利,RPM 包将生成在 /usr/src/redhat/RPMS 目录下。 以上是 RPM 打包的基本步骤,更多细节请参考 RPM 手册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值