RPM + 构建 RPM 以创建 KIT

RPM + 构建 RPM 以创建 KIT

我在我的 Linux 机器 RedHat-Linux-OS-5.3 下创建了一些脚本

以下脚本的主目录是 /root/dir

脚本如下:

/root/dir/rfg.sh
/root/dir/ener.pl
/root/dir/wnr.sh

/lib 下有一些 lib 文件,如下所示

/lib/lib1.so    
/lib/lib2.so
/lib/lib3.so

我的问题是我想创建包含我的脚本和我的 lib 文件的 RPM!

例如

在我执行(rpm 安装)之后:

rpm -i SOME_RPM.rpm

所有脚本都将在 /root/dir 目录下创建(包括目录创建)

我的所有 lib 文件都将在 /lib 目录下创建

请指教如何创建这个 RPM,希望它是一步一步的(因为我读了一些关于 RPM 构建包的文档,很难理解它们

答案1

最基本的一点是,您需要 rpmbuild 工具,并且需要编写 spec 文件。我有以下脚本,它采用 spec 文件和树,就像安装在目标机器上一样:

#!/bin/bash

set -e

SPECFILE=$1
shift
SOURCEDIR=$1

BASEDIR=/usr/src/rpm/BUILD
[ -e ${BASEDIR} ] || BASEDIR=/usr/src/redhat/BUILD

BASENAME=$(grep -E '^Name:' $SPECFILE | awk '{ print $2 }')
VERSION=$(grep -E '^Version:' $SPECFILE | awk '{ print $2 }')
RELEASE=$(grep -E '^Release:' $SPECFILE | awk '{ print $2 }')
BUILDROOT=${BASEDIR}/${BASENAME}-${VERSION}-${RELEASE}

rm -rf ${BUILDROOT}
cp -r ${SOURCEDIR} ${BUILDROOT}

export SOURCEDIR BUILDROOT

rpmbuild --buildroot=${BUILDROOT} -bb $SPECFILE

有关 spec 文件的详细信息,请参阅 RPM spec 规范。

相关内容