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 -