6.3.3.2. トランザクションファイルトリガーごとに 1 の回実行
トランザクションごとに 1 回実行される ファイルトリガー:
- %transfiletriggerin
- %transfiletriggerun
- %transfiletriggerpostun
%transfiletriggerin
このファイルトリガーはトランザクション後に、このトリガーの接頭辞に一致する 1 つ以上のファイルを含むすべてのインストール済みパッケージに対して実行されます。このトランザクションにこのファイルトリガーを含むパッケージがあり、rpmdb にこのトリガーの接頭辞に一致するファイルがつ以上ある場合は、トランザクションの後にも実行されます。
%transfiletriggerun
このファイルトリガーは、以下の条件を満たすすべてのパッケージのトランザクションの前に 1 度だけ実行されます。
- このトランザクションでパッケージがアンインストールされます。
- パッケージには、このトリガーの接頭辞に一致する 1 つ以上のファイルが含まれています。
このトランザクションにこのファイルトリガーを含むパッケージがあり、rpmdb にこのトリガーの接頭辞に一致するファイルが 1 つ以上ある場合は、トランザクションの前にも実行されます。
%transfiletriggerpostun
このファイルトリガーは、トランザクション後に、このトリガーの接頭辞に一致する 1 つ以上のファイルを含むすべてのアンインストール済みパッケージに対して実行されます。
このトリガータイプでは、トリガーファイルのリストは利用できません。
そのため、ライブラリーを含む複数のパッケージをインストールまたはアンインストールすると、トランザクション全体の最後で ldconfig キャッシュが更新されます。これにより、キャッシュが各パッケージに対して個別に更新されていた RHEL 7 に比べて、パフォーマンスが大幅に改善されます。また、すべてのパッケージの SPEC ファイルで ldconfig と %postun を呼び出していたスクリプレットが必要ではなくなりました。