내 .spec
파일에서 디렉토리를 생성하고 스테이지에서 파일을 터치합니다 %post
.
%post
mkdir -p %{sharedstatedir}/my_app
touch %{sharedstatedir}/my_app/my_app_file.txt
그러나 dnf upgrade my_app
/var/lib/my_app
해당 내용은 삭제되며 다시 생성되지 않습니다. %{sharedstatedir}/my_app
패키지 의 일부를 만들어 섹션에 추가할 수 있을 것 같은데 , 파일을 다시 만드는 것과 %{sharedstatedir}/my_app/my_app_file.txt
같은 다른 방법이 있나요 ? my_app_file.txt 내용이 없어져도 상관없으며 임시저장소로 사용됩니다.%files
%post
답변1
설치 개체를 선언하는 빈 파일을 추가할 수 있습니다.%config
업데이트를 수행하기 전에 디스크에서 변경되는 경우 해당 내용이 변경되지 않고 유지되도록 하는 속성입니다.
하지만 솔직히 말해서 변경 가능한 공유 상태 파일(/var/lib에 저장됨)을 생성하기 %config
위해 명령을 남용하거나 코드를 실행하지 마십시오 .%post
알아채다적어도 당신이 그것을 사용할 때는 %config
. 임시파일이 존재하지 않을 경우, 소프트웨어 자체에서 임시파일을 생성해야 합니다! 따라서 %file
디렉토리를 생성한 %{sharedstatedir}/my_app
다음 파일이 존재하지 않으면 소프트웨어를 패치하여 파일을 생성하십시오. 이상적으로는 관리자가 파일을 더 빠르거나 덜 안정적인 저장소에 배치하도록 선택할 수 있도록 파일 경로를 구성할 수 있어야 합니다.