5

RPM を介して配布される製品があります。SUSE SLES10 SP1 RPM と RedHat 5.5 RPM の両方を作成します。この 2 つには違いがあり、RedHat マシンに SUSE RPM をインストールすると (多くの場合不思議なことに) 正しく動作しません。逆の場合も同様です。

RedHay RPM が SUSE システムにインストールされないようにする方法と、その逆の方法はありますか? 私はこれについてグーグルで検索し、 http://www.rpm.org/max-rpm/ch-rpm-multi.htmlを見つけましたが、ここでのすべての制約は、コマンドからの出力に基づいているようでuname、 RedHat または Suse を実行している。OSはLinuxで、アーキテクチャは同じです。

/etc/issue ファイルで「Red Hat」または「SUSE」を検索できるインストール スクリプトにチェックを追加するアイデアがありますが、これよりも優れたオプションがあることを本当に望んでいます。

4

3 に答える 3

1

具体的には RedHat を検出するだけなので、という名前のファイルの存在を探します/etc/redhat-release。そこにある場合は、RedHat の特定のバージョンにインストールしています。

于 2011-10-01T00:50:43.477 に答える
0

Redhat 固有のパッケージに依存関係を置くことができます (ただし、SuSE がバージョンを提供する場合があります)。

サポートされている OS について、%pre で /etc/redhat-release (または lsb-release など) をチェックすることもできます。

インストール前のチェックは、%post ではなく %pre で行います。そうしないと、パッケージが既にインストールされた後にチェックが行われるためです (%post は実際には有用に失敗することはありません)。

于 2011-10-01T07:04:13.883 に答える
0

また、spec ファイルで %{rhel} マクロが定義されているかどうかを確認できます。

于 2013-06-25T20:16:53.310 に答える