RPM:%postに生成されたファイルがアップグレード中に失われました。

RPM:%postに生成されたファイルがアップグレード中に失われました。

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

おすすめ記事