マイ.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
ファイルが存在しない場合は、ソフトウェアにパッチを適用してファイルを生成します。理想的には、管理者がファイルをより高速または信頼性の低いストレージに配置することを選択できるようにファイルパスを設定できる必要があります。