基本上,我希望我的构建过程能够做到这一点:
我对RPM还是很陌生,所以很抱歉如果我对下面的代码有误,但是在尝试构建或安装时会给我一些错误。
我试图从源代码目录运行脚本
我对预期的rpm流量应如何工作有些困惑。在测试中,我将在同一台计算机上进行构建和安装,但实际上它将在两台计算机上进行。
当我运行下面的代码时,它会将源文件的副本放入.rpm文件吗?我想知道为什么它不起作用。 (它说process.sh不存在)
Name: Test
Version: 1
Release: 1
Summary: Test
License: FIXME
%description
this is a test build
%prep
echo "BUILDROOT = $RPM_BUILD_ROOT"
mkdir -p -m777 $RPM_BUILD_ROOT/usr/local/bin/
cp /home/myuser/foo/util/* $RPM_BUILD_ROOT/usr/local/bin
cd $RPM_BUILD_ROOT/usr/local/bin/
./process.sh hosts.csv processed.csv
exit
%files
%attr(0777, root, root) /foo/processed.csv
您需要:
rpmdev-setuptree
SOURCES
Source
标签。这对于正确构建至关重要。因为这是在构建过程中引用构成构建文件的方式。例如
Source0: process.sh
Source1: util.tar.gz
util.tar.gz
可能是所有众多CSV文件的压缩包(我假设文件太多了,因此每个文件都单独拥有一个Source
条目是不可行的。
然后:
%prep
部分中,您将提取%{SOURCE1}
。%build
部分中,您可以将它们合并为一个文件%install
部分中,您将安装组合文件P.S。我知道对于初学者来说,在其他地方已经将某些内容复制到SOURCES
目录中时,听起来有些不必要的任务,但这仍然可以。