rpmは私のファイルが存在しないと言いますが、猫はファイルの内容をうまくエコーします。どうして?

2020-05-23 rpm

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

Answers

これらのファイルについてrpmbuildに通知するSourceX:タグがありません。例:

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

/tmpインストールするPSは、通常、再起動時に消去されるため、意味がありません( tmpfsマウントされます)

Related