Rpmlint "use-tmp-in-%postun" 오류

Rpmlint "use-tmp-in-%postun" 오류

rpmlint 출력:

E: use-tmp-in-%postun

사양 파일:

%postun
rm -r /var/aci /tmp/aci_tmp 2> /dev/null

또한 패키지를 삭제할 수도 없습니다.

이 패키지를 제거한 후 또는 제거하기 전에 /tmp에서 디렉토리를 어떻게 삭제할 수 있습니까?

답변1

가능하다면 항상 %post스크립팅을 피하십시오 %postun. 넌 그걸 할 수 있어아치파일 또는 폴더는 패키지에 속합니다.

예를 들어 /var/aci폴더이고 /tmp/aci_tmp파일이라고 가정해 보겠습니다. 그런 다음 다음을 수행할 수 있습니다.

%install
mkdir -p $PPM_BUILD_ROOT/var/aci

%files
/var/aci
%ghost /var/aci/* # not sure this is necessary...
%ghost /tmp/aci_tmp

%ghost지침의 의미는 다음과 같습니다. 이 파일/폴더가 나타나면 그것은 내 것입니다. 이는 또한 패키지를 제거하면 제거된다는 의미이기도 합니다.

답변2

/tmp이는 일반적으로 tmpfs로 마운트되기 때문입니다 . 패키지에 무언가를 넣으면 재부팅 시 지워집니다.

오류를 무시하고 있기 때문에 귀하의 경우에는 괜찮을 것입니다.

tmpfiles.d(5)를 사용하는 것이 좋습니다. 즉, 파일을 생성/etc/tmpfiles.d/aci.conf

다음 줄 중 일부(파일이나 디렉터리를 만드는지 확실하지 않음):

   #Type Path                                     Mode User Group Age         Argument
   f     /file/to/create                          mode user group -           content
   F     /file/to/create-or-truncate              mode user group -           content
   w     /file/to/write-to                        -    -    -     -           content
   d     /directory/to/create-and-cleanup         mode user group cleanup-age -
   D     /directory/to/create-and-remove          mode user group cleanup-age -

관련 정보