如何创建或生成RPM包

如何创建或生成RPM包

简介 –

*“rpmbuild”工具用来建立两个…

1)〜用二进制包安装软件和支持脚本。它包含的文件,包括申请,连同任何其他信息,需要安装和清除它。
2)源码包〜包含源代码,补丁和规范文件的原始压缩的tar文件。

*什么是转&RPM软件包管理器?

RPM软件包管理器(转)是一个功能强大的命令行包管理系统能够安装,卸载,验证,查询和更新软件包。

RPM软件包包括一个存档文件和元数据用于安装和删除的档案文件。元数据包括辅助脚本,文件属性,以及有关包装的描述性信息。

*建立一个RPM软件包你需要指定三件事〜

1)来源的应用 – 在任何情况下,你不应该修改包建设过程中使用的来源。

2)补丁 – 转速使您能够自动应用补丁给他们。该补丁解决了问题,具体到目标系统。这可能包括改变makefile文件安装到适当的目录,或解决跨平台的应用程序冲突。创造适当的修补程序编译所需的环境。

3)规范文件 – 该规范文件是在RPM软件包建设进程的核心。它包含了RPM的要求建立包,并指示告诉转速怎样建设社会主义的信息。该规范文件也决定了哪些文件是一揽子的一部分,他们应该被安装。

**规格文件〜分为如下所示为8节

1)序言〜包含的信息将显示当用户请求对包的信息。这将包括包的功能描述,该软件的版本号等

b)筹备〜那里的建设方案实际工作开始。顾名思义,这一节是在有必要的准备工作之前作出实际的软件建设。一般来说,如果有什么需要做的来源之前,建设软件,它需要发生在准备一节。本节的内容是一个普通的shell脚本。然而,转速确实提供两个宏,使生活更轻松。一个宏可以解压缩tar文件,并到源目录cd。其他宏可以容易地应用补丁的解来源。

c)建立〜本节的一个shell脚本组成。它是用来执行任何命令,必须像一个真正编译的来源作出命令,或更复杂,如果在生成过程需要它。没有宏本节可用。

四)安装〜本节还包含一个shell脚本,安装部分是用来执行实际安装所需软件的命令。

五)安装和卸载脚本〜它包括脚本将运行,对用户的系统,在实际安装包或删除。转速可以执行脚本前/后安装/删除软件包。

六)验证脚本〜脚本在用户的系统上执行。这是转速时执行验证程序包的正确安装。

克)清洁组〜脚本,它可以清除后建立的东西了。此脚本是很少使用,因为转速通常做得很好的清洁工作最构建环境。

h)文件清单〜包含的文件列表,将组成包。另外,一些宏可以用来控制文件安装时的属性,以及用来表示哪些文件文档,其中包含配置信息。该文件清单是非常重要的。

*** RPM的要求,为构建环境〜

甲] RPM的需要设置的目录执行建设。虽然目录的位置和名称可以更改。默认布局如下 –

根@ arunsb:〜#编号:LS -升/ usr / src下/红帽/

drwxr – XR的- × 2根4096根2007年8月25日来源=“包含原始来源,修补程序和图标文件
drwxr – XR的- × 2根4096根2007年8月25日规格=“包含规范文件
drwxr – XR的- × 2根4096根2007年8月25日建立=“目录中的源解,与软件构建
drwxr – XR的,× 8根根4096 2008年5月28日从RPMS =“包含二进制软件包文件的生成过程中产生
drwxr – XR的- × 2根4096根2007年8月25日SRPMS =“包含源包文件创建的构建过程

根@ arunsb:〜#

乙]需要出口的转用几个全局变量 –

根@ arunsb:〜#出口RPM_BUILD_DIR = / usr / src下/红帽/建设/
根@ arunsb:〜#出口RPM_SOURCE_DIR = / usr / src下/红帽/来源/

步骤1]创建规范(规格)文件〜

root@arunsb:~# head -n 50  /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul

#RPM_BUILD_DIR    /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR    /usr/src/redhat/SOURCES/

%define MY_PREFIX    /usr/local/openlsm/

## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL

%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.

## Preparation Section-
%prep

rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}

## Build Section-
%build

cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make

## Install Section-
%install

cd ./openlsm-0.99-r45/
make install

## Files Section-
%files

/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#

*你如何创建文件列表?

创建文件列表手动过程。我所做的是我从我的手工安装前缀目录中的文件列表中找到命令,如下所示…

根@ arunsb:〜#找到/ usr /本地/ openlsm /型的F -或- D型

步骤2]开始生成〜

root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l  openlsm.spec
-rw-r–r– 1 root root 12938 Dec  2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#

root@arunsb:/usr/src/redhat/SPECS# rpmbuild   -ba  openlsm.spec

…。
… ..

检查包装的文件(补):/ usr / lib /转速/检查文件%(buildroot)
说:/ usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
说:/ usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
根@ arunsb:/ usr / src下/红帽/回声规格#$?
0

根@ arunsb:/ usr / src下/红帽/规格#编号:LS -升/ usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
刻录- R – R间- 1根根3206年12月2 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
根@ arunsb:/ usr / src下/红帽/规格#编号:LS -升/ usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
刻录- R – R间- 1根根3052868 12月2日17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
根@ arunsb:/ usr / src下/红帽/规格#

*源代码和二进制包创建!

**让我们看看发生在“/ usr / src下/红帽/”目录

根@ arunsb:/ usr / src目录/红帽#密码
/ usr / src目录/红帽
根@ arunsb:/ usr / src目录/红帽#提单
建立制造系统源规格SRPMS
根@ arunsb:/ usr / src目录/红帽#提单建设/
openlsm – 0.99 – r45“==源提取这里作为构建规范文件的说明部分,即”openlsm.spec“
根@ arunsb:/ usr / src目录/红帽#提单源/
openlsm – 0.99 – r45.tar.gz“==原’openlsm – 0.99 – r45.tar.gz’源文件复制到我
根@ arunsb:/ usr / src目录/红帽#提单制造系统/
速龙的I386的i486 i586 i686 noarch
根@ arunsb:/ usr / src目录/红帽#提单RPMS/i386 /
openlsm – 0.99 – r45.i386.rpm“==二进制rpm包创建!
根@ arunsb:/ usr / src目录/红帽#提单SRPMS /
openlsm – 0.99 – r45.src.rpm“==源rpm包创建!
根@ arunsb:/ usr / src目录/红帽#

第三步]现在安装的封装和测试它〜

根@ arunsb:/ usr / src目录/ Redhat的#处长RPMS/i386/openlsm-0.99-r45.i386.rpm /家庭/ arunsb /

根@ arunsb:/ usr / src目录/红帽#的CD /家庭/ arunsb /
根@ arunsb:〜#储蓄
openlsm – 0.99 – r45.i386.rpm
根@ arunsb:〜#转脑室内出血openlsm – 0.99 – r45.i386.rpm
准备… ########################################### [100%]
1:openlsm ########################################### [100%]
根@ arunsb:〜#执行ls / usr /本地/ openlsm /
拉登的contrib等包括lib sbin脚本分享功
根@ arunsb:〜#

**启动openlsm服务器〜

根@ arunsb:〜#/ usr /本地/ openlsm /的contrib / openlsm,红帽启动
*启动openlsm管理服务器:openlsm
。 [行]
根@ arunsb:〜#
根@ arunsb:〜#/ usr /本地/ openlsm /的contrib / openlsm,RedHat的地位
openlsm(的PID 21607)正在运行…
根@ arunsb:〜#

根@ arunsb:〜#转- Q表openlsm – 0.99 – r45
openlsm – 0.99 – r45
根@ arunsb:〜#

根@ arunsb:〜#转查询语言openlsm – 0.99 – r45
..

根@ arunsb:〜#转- qiv的openlsm – 0.99 – r45
名称:openlsm重定位:(不重定位)
版本:0.99供应商:IndianGNU.org&openlsm
发布:r45生成日期:星期三2009年12月2日下午5时50分54秒北京时间
安装日期:星期三2009年12月2日下午六时06分23秒北京时间生成主机:alongseveral – dr.eglbp.corp.yahoo.com
组:系统环境/守护程序源RPM:openlsm – 0.99 – r45.src.rpm
大小:14877918许可:GPL
签名:(无)
包装:IndianGNU.org(http://www.indiangnu.org)
网址:http://openlsm.sourceforge.net/
摘要:openlsm管理服务器
描述:
openlsm管理服务器是免费和开放源码的基于Web的Linux,Unix系统的控制面板。
根@ arunsb:〜#

**注意〜这篇文章中没有关于如何界定百万分之一,如何复制文件资料,手册页的默认位置,如何设置permision和所有权等我将在下篇文章的转速此议题。

**请参阅英文文章 〜 http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

关心,
Arun Bagul

Similar Posts:

Leave a Reply

Your email address will not be published. Required fields are marked *