rpm说我的文件不存在,但是cat会很好地回显文件内容。为什么?

问题描述 投票:0回答:1

安装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

rpm
1个回答
0
投票

您缺少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上)

© www.soinside.com 2019 - 2024. All rights reserved.