0

そのため、RPM のバージョン「1」にシンボリック ディレクトリがあるという問題があります。「/foo」と呼びましょう。明確にするために、「/foo」はバージョン「1」の RPM で定義されています。バージョン "2" では、postinstall スクリプトでプログラムによって "/foo" を作成したいと考えています。しかし、RPM の仕様から「/foo」を削除すると、postinstall スクリプトが既に実行された後に「/foo」が消去されます。これを防ぐ方法はありますか?これは、RPM によって管理されなくなった場合でも、"/foo" を消去しないように RPM に指示することですか?

4

4 に答える 4

1

アップグレード操作中のことだと思います。その場合、RPM は古いファイルを適切にクリーンアップしています。登録されていないファイルをディレクトリにドロップすることを試みることができます ( 経由で%postinstall)。「echo > /foo/.keepdir」とかそういうこと。%filesその後、ファイルを認識せず、バージョン 1のセクションにリストされていないファイルを消去しないため、そのままにしておく可能性があります。

ただし、ディレクトリを作成して使用する場合は、パッケージで要求する必要があることに注意してください。そうすれば、誰かがやって来て試したときに/fooディレクトリrpm -q --whatprovides /fooがどこから来たのか、誰がそれを使用するのかがわかります。

于 2013-07-31T09:10:48.620 に答える
0

/foo なしで RPM バージョン 1.1 を作成し、1.1 にアップグレードしてから 2 にアップグレードできます。

于 2013-08-01T05:07:51.520 に答える