0

32 ビットと 64 ビットの Linux プラットフォーム用の複合パッケージがあります。

64 ビット システムでは、仕様ファイルの %files セクションに記載されているすべてのファイルがインストールされます (32 ビット ファイルと 64 ビット ファイルの両方)。32 ビット システムでも、spec ファイルの %files セクションに記載されているすべてのファイルがインストールされますが、64 ビット ファイルはインストール後に削除されます (削除用のコードを書きました)。

問題は、32 ビット マシンで、パッケージによってインストールされたファイルを表示するためにクエリを実行すると、パッケージ マネージャーがすべてのファイルを表示することです。そのため、32 ビット マシンで 64 ビット ファイルが表示されます (例: rpm -ql)。

32 ビット マシンで 64 ビット ファイルを削除する良い方法はありますか?

4

1 に答える 1

0

いいえ、簡単な方法はありません。RPM は、32 ビット マシンと 64 ビット マシンが別々のアーキテクチャとして扱われるように設計されていますが、それには正当な理由があります。2 つの RPM をビルドする必要があります。

セクション内にインストールしたばかりのファイルを自分で削除する%postと、RPM データベースにエラーが発生します。あなたが指摘したように、rpm -qlそこにあるファイルをリストします(DBによると、そこにあるはずです)。別の例として、rpm -VRPM の検証がすべて破られるようになりました。意図的に消去したファイルは、システムによって欠落していると見なされます。rpm -Va(すべてのパッケージを確認する) は、OS のアップグレードを試みる前に多くの人が行うことであり、ユーザーは RPM を再インストールする必要があると考えるでしょう。

于 2013-02-05T10:28:26.297 に答える