安装rpm软件包后,运行一个简单的bash脚本时遇到很多麻烦。它一直告诉我我的文件不存在。但是,当我从脚本本身内部使用cat时,可以很好地读取文件。我很困惑。
Name: Test
Version: 1
Release: 1
Summary: Test
License: FIXME
%description
this is a test build
%install
echo "Got Here"
mkdir -m 777 %{buildroot}/tmp/
cp -a ${RPM_SOURCE_DIR}/process.sh %{buildroot}/tmp/process.sh
cp -a ${RPM_SOURCE_DIR}/hosts.csv %{buildroot}/tmp/hosts.csv
%post
echo "Running Scripts..."
cd /home/myuser/rpmbuild/SOURCES/
cat process.sh hosts.csv
echo "Done"
%files
/tmp/process.sh
/tmp/hosts.csv
此行读取文件的内容就好了: cat process.sh hosts.csv
您缺少SourceX:
标签,这些标签告诉rpmbuild
这些文件,例如:
Source0: process.sh
Source1: hosts.csv
#...
%install
%{__install} -m755 %SOURCE0 \
$RPM_BUILD_ROOT/path/for/process.sh
%{__install} -m0644 %SOURCE1 \
$RPM_BUILD_ROOT/path/for/hosts.csv
%files
/path/for/process.sh
/path/for/hosts.csv
P.S。安装到/tmp
没有意义,因为通常在重新启动后清除(安装在tmpfs
上)