「dnfアップグレード...」ファイルを削除

「dnfアップグレード...」ファイルを削除

私のアプリケーションは3つの異なるパッケージにあり、ファイルを作成し、インストールが期待どおりrpm.spec機能し、dnf removeパッケージを削除し、設定ファイルをクリーンアップし、必要に応じて依存関係をインポートしました。しかし、dnf upgradeこれは古いファイルを新しいファイルで上書きしますが(予想どおり)、私の設定ファイルも削除されます。私の理解は、dnf upgradeパッケージが削除された後にインストールされず、新しいファイルが古いファイルの上にインストールされることです。以下はトランザクションログですdnf

Running transaction
  Preparing        :                                                              1/1
  Running scriptlet: my-app-libs-0.1.0.0-0071.x86_64                              1/1
  Upgrading        : my-app-libs-0.1.0.0-0071.x86_64                              1/6
  Upgrading        : my-app-hooks-0.1.0.0-0071.x86_64                             2/6
  Upgrading        : my-app-0.1.0.0-0071.x86_64                                   3/6
  Running scriptlet: my-app-0.1.0.0-0071.x86_64                                   3/6
  Running scriptlet: my-app-0.1.0.0-0048.x86_64                                   4/6
  Cleanup          : my-app-0.1.0.0-0048.x86_64                                   4/6
  Running scriptlet: my-app-0.1.0.0-0048.x86_64                                   4/6
  Cleanup          : my-app-hooks-0.1.0.0-0048.x86_64                             5/6
  Cleanup          : my-app-libs-0.1.0.0-0048.x86_64                              6/6
  Running scriptlet: my-app-libs-0.1.0.0-0048.x86_64                              6/6
  Verifying        : my-app-libs-0.1.0.0-0071.x86_64                              1/6
  Verifying        : my-app-libs-0.1.0.0-0048.x86_64                              2/6
  Verifying        : my-app-hooks-0.1.0.0-0071.x86_64                             3/6
  Verifying        : my-app-hooks-0.1.0.0-0048.x86_64                             4/6
  Verifying        : my-app-0.1.0.0-0071.x86_64                                   5/6
  Verifying        : my-app-0.1.0.0-0048.x86_6                                    6/6

何か知りたい掃除する上記の手順が完了しています。そしてスクリプトの役割スクリプトの実行実際に電話しましたか?

答え1

インストール、アップグレード、およびアンインストール中にトリガーが呼び出されます。 「アップグレード」とは、実際に古いバージョンを削除してから新しいバージョンをインストールすることを意味します。トリガーには、$1アップグレードするかどうかを示すフラグ()があります。完全な説明は次の場所にあります。https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

仕様ファイルで以下を使用します。

%post
if [ $1 == 1 ] 
then
  # first time install, rather than upgrade
fi

%postun
if [ $1 == 0 ] 
then
  # actual uninstall, rather than upgrade
fi

関連情報