|
rpm -ql bzip2 //获得安装包bzip2的文件列表。 rpm -qa //获得系统安装的所有rpm包的列表。这条命令和grep命令一起使用,可以快速找到系统中包含的某个rpm包,例如: rpm -qa | grep bzip2 2 RPM包建立过程 为了完成RPM包的建立过程,需要执行以下步骤: 执行Spec文件prep节的命令和宏。 检查文件列表的内容。 执行Spec文件build节的命令和宏。 执行Spec文件install节的命令和宏,同时也执行文件列表中的宏。 创建二进制包文件。 创建源码包。 为了执行打包的工作,RPM需要一系列目录完成建立的工作。正常的目录结构通常由一个顶级目录和五个子目录构成。这五个子目录分别是: SOURCES------包含原始的源文件、补丁和像标文件。 SPECS--------包含控制建立过程的spec文件。 BUILD--------包含源码解包和软件建立的目录。 RPMS---------包含建立过程创建的二进制包文件。 SRPMS--------包含建立过程创建的源码包文件。 除了上述这五个主要的目录外,在RPMS或SRPMS目录下通常还会有关于包目标平台的目录。例如,i386、i586、i686等代表与Intel兼容cpu的平台,noarch目录下的包代表可以在任何平台下执行。 2.1 SPEC文件 Spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。Spec文件包含建立一个rpm包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下。这个文件一般分为如下的几节: Preamle(序言) 序言包含用户请求包的信息时所显示的内容。它可以包含包的功能描述,包的软件版本,版权信息,所属的包组等。 Prep节 Prep节进行实际的打包准备工作,它是使用节前缀%prep表示的。一般而言,这一节的主要工作是检查标签语法是否正确,删除旧的软件源程序,对包含源 程序的tar文件进行解码。如果包含补丁(patch)文件,将补丁文件应用到解开的源码中。它一般包含%setup与%patch两个命 令。%setup用于将软件包打开,执行%patch可将补丁文件加入解开的源程序中。 %setup -n newdir---------将压缩的软件源程序在newdir目录下解开。 -c ---------------在解开源程序之前先创建目录。 -b num------------在包含多个源程序时,将第num个源程序解压缩。 -T----------------不使用缺省的解压缩操作。 例如: %setup -T -b 0 //解开第一个源程序文件。 %setup -c -n newdir //创建目录newdir,并在此目录之下解开源程序。 %patch %patchN----------这里N是数字,表示使用第N个补丁文件,等价于%patch -P N -p0--------------指定使用第一个补丁文件,-p1指定使用第二个补丁文件。 -s---------------在使用补丁时,不显示任何信息。 -b name----------在加入补丁文件之前,将源文件名上加入name。若为指定此参数,则缺省源文件加入.orig。 -T---------------将所有打补丁时产生的输出文件删除。 Build节 这一节主要用于编译源码,它是使用节前缀%build表示的。这一节一般由多个make命令组成。 Install节 这一节主要用于完成实际安装软件必须执行的命令,它是使用节前缀%install表示的。这一节一般是由make install指令构成,但是有时也会包含cp、mv、install等指令。 这一节还能指定在用户安装的系统上,包安装时运行的脚本。这样的脚本称为安装(卸载)脚本。它可以指定包安装前、包安装后、包除去前、包除去后的系统必须运行的外壳程序段。在用户安装的系统上,为了验证一个包是否已经成功安装的验证脚本也可由这一节指定。 Clean节 这一节所描述的内容表示在完成包建立的工作之后,自动执行此节下的脚本进行附加的清除工作,它是使用节前缀%clean表示的。一般而言,这一节的内容是简单地使用rm -rf $RPM_BUILD_ROOT命令,不需要指定此节的其它内容。 文件列表 这一节指定构成包的文件的列表,它是使用节前缀%files表示的。此外,它还包含一系列宏控制安装后的文件属性和配置信息。 (责任编辑:编程世界) |
