`
咖啡舞者
  • 浏览: 129244 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

RedHat补丁包下载与RPM包的制作

阅读更多

REDHAT AS4补丁SRPMS下载:http://ftp.redhat.com/pub/redhat/linux/updates/enterprise/4AS/en/os/SRPMS/

下载到的是源码包,使用rpm -vih  xx.rpm 后

在/usr/src/redhat/SPECS 下会有个 xx.spec

运行rpmbuild -bb xx.spec

就会在/usr/src/redhat/RPMS/i386(or i486 etc.)  目录下生成对应的RPM包。

=============================================================================

spec文件规范

能熟练掌握以上命令以及部分参数含义,管理日常的rpm软件包就不成问题了。然而随着Linux风靡全球,越来越多的开发者喜欢采用RPM格式来发布自己的软件包。那么RPM软件包是怎样<nobr oncontextmenu="return false;" onmousemove="kwM(2);" id="key2" onmouseover="kwE(event,2, this);" style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">制作</nobr>的呢?对大多数Linux开发工程师来说是比较陌生的。

其实,制作RPM软件包并不是一件复杂的工作,其中的关键在于编写SPEC软件包描述文件。要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC)。这个文件中包含了软件包的诸多<nobr oncontextmenu="return false;" onmousemove="kwM(1);" id="key1" onmouseover="kwE(event,1, this);" style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">信息</nobr>,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等等。

描述文件说明如下:

(1) 文件头

一般的spec文件头包含以下几个域:

Summary:

用一句话概括该软件包尽量多的信息。

Name:

软件包的名字,最终RPM软件包是用该名字与版本号,释出号及体系号来命名软件包的。

Version:

软件版本号。仅当软件包比以前有较大改变时才增加版本号。

Release:

软件包释出号。一般我们对该软件包做了一些小的补丁的时候就应该把释出号加1。

Vendor:

软件<nobr oncontextmenu="return false;" onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">开发</nobr>者的名字。

Copyright:

软件包所采用的版权规则。具体有:GPL(自由软件),BSD,MIT,Public Domain(公共域),Distributable(贡献),commercial(商业),Share(共享)等,一般的开发都写GPL。

Group:

软件包所属类别,具体类别有:

CODE:

 

<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>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硬件支持)

Source:

源程序软件包的名字。如 stardict-2.0.tar.gz。

%description:

软件包详细说明,可写在多个行上。

(2)%prep段

这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面的%build,%install段一样,除了可以执行RPM所定义的宏命令(以%开头)以外,还可以执行SHELL命令,命令可以有很多行,如我们常写的tar解包命令。

(3)build段

本段是建立段,所要执行的命令为生成软件包服务,如make 命令。

(4)%install段

本段是安装段,其中的命令在安装软件包时将执行,如make install命令。

(5)%files段

本段是文件段,用于定义软件包所包含的文件,分为三类--说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者及组别。

(6)%changelog段

本段是修改日志段。你可以将软件的每次修改记录到这里,保存到发布的软件包中,以便查询之用。每一个修改日志都有这样一种格式:第一行是:* 星期 月 日 年 修改人 电子信箱。其中:星期、月份均用英文形式的前3个字母,用<nobr oncontextmenu="return false;" onmousemove="kwM(0);" id="key0" onmouseover="kwE(event,0, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">中文</nobr>会报错。接下来的行写的是修改了什么地方,可写多行。一般以减号开始,便于后续的查阅。

4.打包

如果想发布rpm格式的源码包或者是二进制包,就要使用rpmbuild工具(rpm最新打包工具)。如果我们已经根据本地源码包的成功编译安装而写了spec文件(该文件要以.spec结束),那我们就可以建立一个打包环境,也就是目录树的建立,一般是在/usr/src/redhat/目录下建立5个目录。它门分别是BUILD、SOURCE、SPEC、SRPM、RPM。其中BUILD目录用来存放打包过程中的源文件,SOURCE用来存放打包是要用到的源文件和patch,SPEC用来存放spec文件,SRPM、RPM分别存放打包生成的rpm格式的源文件和二进制文件。当然我们可以根据需要来选用不同的参数打包文件,笔者总结如下3条。

1) 只生成二进制格式的rpm包

rpmbuild -bb xxx.spec

用此命令生成软件包,执行后<nobr oncontextmenu="return false;" onmousemove="kwM(6);" id="key4" onmouseover="kwE(event,6, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">屏幕</nobr>将显示如下信息:(每行开头为行号)

CODE:

 

<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>1 Executing: %prep
2 + umask 022
3 + cd /usr/src/dist/BUILD
4 + exit 0
5 Executing: %build
6 + umask 022
7 + cd /usr/src/dist/BUILD

生成的文件会在刚才建立的RPM目录下存在。

2)只生成src格式的rpm包

rpmbuild -bs xxx.spec

生成的文件会在刚才建立的SRPM目录下存在。

3) 只需要生成完整的源文件

rpmbuild -bp xxx.spec

源文件存在目录BUILD下。

读者朋友可能对这个命令不太明白,这个命令的作用就是把tar包解开然后把所有的补丁文件合并而生成一个完整的具最新功能的源文件。

4) 完全打包

rpmbuild -ba xxx.spec

产生以上3个过程分别生成的包。存放在相应的目录下。

软件包制作完成后可用rpm命令查询,看看效果。如果不满意的话可以再次修改软件包描述<nobr oncontextmenu="return false;" onmousemove="kwM(9);" id="key5" onmouseover="kwE(event,9, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">文件</nobr>,重新运行以上命令产生新的RPM软件包。

分享到:
评论

相关推荐

    redhat7-yum-rpm完整包.rar

    这个"redhat7-yum-rpm完整包.rar"是为RHEL 7或CentOS 7设计的一个离线安装包集合,它包含了通过YUM(Yellowdog Updater, Modified)进行软件管理所需的所有RPM(Red Hat Package Manager)包。RPM是一种用于安装、...

    RedHat Openssh漏洞补丁包

    RedHat Openssh漏洞补丁包是针对RedHat6版本中OpenSSH服务的一项重要安全更新。OpenSSH是一款在类Unix系统上广泛使用的网络服务,它提供了安全的远程登录和其他网络服务,如SFTP和SCP。然而,如同任何软件一样,...

    RedHat bash漏洞RPM包补丁文件

    CVE-2014-6271 、 CVE-2014-7169补丁文件。 官方文档 https://rhn.redhat.com/errata/RHSA-2014-1306.html#Red Hat Enterprise Linux Server (v. 6) 共包含 bash-4.1.2-15.el6_5.2.x86_64.rpm bash-debuginfo-4.1.2-...

    redhat6.5安装yum所需的rpm包

    7. `yum-updateonboot-1.1.30-41.el6.noarch.rpm`:当系统启动时,这个组件可以帮助检查并安装待处理的系统更新,确保系统始终保持最新的安全补丁和功能。 安装这些rpm包的步骤通常是这样的: 1. 打开终端。 2. ...

    Redhat 64位GCC的rpm安装包1

    在安装Redhat 64位GCC的RPM包时,首先需要确保系统已经安装了RPM包管理器,并且是最新版本。通常,这可以通过运行更新命令如 `yum update` 或 `dnf update` 来完成(取决于你的系统使用的是哪个包管理器)。接着,你...

    bash漏洞 redhat rpm升级包

    bash漏洞 redhat rpm升级包

    Redhat5.5安装Oracle11g的补丁包

    Redhat5.5安装Oracle11g的补丁包 32位的 compat-libstdc++-33-3.2.3-61.i386.rpm elfutils-libelf-devel-0.137-3.el5.i386.rpm elfutils-libelf-devel-static-0.137-3.el5.i386.rpm libaio-devel-0.3.106-5.i386.rpm...

    vsftpd-3.0.2 RedHat LINUX 5.4 可用RPM包

    【vsftpd-3.0.2 RedHat LINUX 5.4 可用RPM包】 在Linux系统中,RPM(Red Hat Package Manager)是一种软件包管理器,用于安装、升级、查询和卸载软件。这个压缩包包含了两个RPM文件,专为Red Hat Enterprise Linux ...

    RedHat5.8_安装Oracle10g需要的补丁包

    libaio-devel-0.3.106-5.x86_64.rpm compat-db-4.2.52-5.1.x86_64.rpm pdksh-5.2.14-37.el5.x86_64.rpm sysstat-7.0.2-11.el5.x86_64.rpm glibc-utils-2.5-81.x86_64.rpm

    redhat5.X、6.X BASH漏洞RPM补丁包(含教程)

    Red Hat Enterprise Linux (RHEL) 是一个广泛使用的商业Linux发行版,而"redhat5.X、6.X BASH漏洞RPM补丁包(含教程)"涉及到的是针对RHEL 5.x和6.x版本的一个关键安全更新,主要是解决著名的"Bash"漏洞,也被称为...

    redhat5.5 yum-*.rpm

    标题"redhat5.5 yum-*.rpm"暗示我们将讨论的是与Red Hat 5.5版本相关的`yum`软件包,这些包通常用于更新和安装系统软件。 `yum`是基于RPM(Red Hat Package Manager)的,它解决了依赖关系问题,使得用户可以方便地...

    VMware8-》redhat5-》Oracle9i补丁包

    安装环境:虚拟机VMware8-》redhat5-》...在上述的安装环境中安装数据库oracle所需的补丁包都是很有用的,这是我安装之后总结在一起的补丁包,如果总结一个一个的在网上找来下载未免太过麻烦,而且浪费很多的积分。

    RedHat 6下安装yum,提供rpm包下载链接

    `yum`基于`RPM`包管理系统,通过网络连接到软件仓库,使得用户可以方便地获取和安装软件,而无需手动下载和解决依赖关系。然而,RedHat 6默认可能并未预装`yum`,所以我们需要手动安装。 首先,我们需要下载`yum`...

    redhat php

    在RPM包管理系统中,这种形式通常表示发行版本的迭代。 **x86_64** 表明这是针对64位处理器的软件包,能够在支持AMD64或Intel EM64T架构的系统上运行。 **RHEL 6** 是Red Hat Enterprise Linux的第六个主要版本,...

    openssh8.8 rpm包 可直接安装

    1. **下载RPM包**:首先,你需要从官方网站或者其他可信源下载适用于你的CentOS版本的openssh8.8p1 RPM包。 2. **安装RPM包**:使用`rpm`命令进行安装,例如: ``` sudo rpm -Uvh openssh8.8p1.rpm ``` `-U`...

    离线安装NFS服务相关rpm包

    离线安装NFS服务,你需要确保获取了这些rpm包的离线副本,并且与你的CentOS版本兼容。你可以从官方镜像站点或者第三方源下载这些包。 安装过程如下: 1. **拷贝rpm包**:将下载的rpm包通过USB驱动器、网络共享或...

    oracle10g安装-redhat5.3补丁包

    这个“oracle10g安装-redhat5.3补丁包”显然是为在RHEL 5.3上安装和优化Oracle 10g数据库提供必要的补丁和工具。 1. **Oracle 10g安装**: 在RHEL 5.3上安装Oracle 10g通常涉及以下步骤: - **系统准备**:确保...

    Redhat Enterprice 5.4 安装oracle 9.2.0.4补丁和RPM包(一)

    compat-libcwait-2.1-1.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm gdk-pixbuf-0.22.0-25.el5.i386.rpm giflib-4.1.3-7.1.el5_3.1.i386.rpm glib-1.2.10-20.el5.i386.rpm gnome-libs-1.4.2-7.rhel5.i386.rpm gtk+...

    openssh7.9离线升级rpm包(含脚本)

    2. **下载RPM包**:在有网络的机器上,从官方网站或镜像站点下载OpenSSH 7.9p1的RPM包,以及所有必要的依赖包。这些包已经包含在提供的压缩文件中,解压后可以看到。 3. **转移RPM包**:将下载的RPM包通过SCP、FTP...

    redhat 下安装ora9i所需rpm 包

    2. **获取RPM包**:在描述中提到了"找到rpm9这个包下面",这意味着你需要先下载一系列的RPM包,这些包可能包含了Oracle 9i的所有组件。通常,这些包会包括服务器端、客户端、开发工具等不同部分。 3. **安装RPM包**...

Global site tag (gtag.js) - Google Analytics