我在我的 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 规范。