3

YUM/RPM を介して複数のバージョンを相互に踏みつけずに並べてインストールできるように RPM を設計する「正しい」方法があれば、それは何ですか? ライブラリの場合、正しい答えは soname に関連しているようですが、soname、symlink、および RPM がどのように相互作用するかについての良い情報は見つかりません。実行可能ファイルとプレーンファイルを並べて配置するために、どのように名前を付けて配置する必要があるかわかりません。実行可能ファイルに関する限り、新しいバージョンを PATH に配置するのが正しい動作のようですが、新しい RPM がアンインストールされた場合は古いバージョンを PATH に配置します。

4

1 に答える 1

3

基本的に、バージョンが競合しないようにする必要があります。

  • Requires/Conflicts セクションに競合する要件があってはなりません
  • 各ファイル名は 1 つのバージョンにのみ存在する必要があります - それらが同一でない限り
  • スクリプトレット (%post ect) がある場合は協力する必要があります

yum は一度に 1 つのバージョンをインストールするように設計されているため、yum を使用して複数のバージョンをインストールすると問題が発生することに注意してください (カーネルを除く)。yum を使用してパッケージをインストール/更新すると、すべての古いバージョンが削除されます。したがって、バージョンごとに rpm -i を使用する必要があります。

パスに最新のバイナリがあることに関しては、適切に行うことはできません。ユーザーがコマンドラインで python または python3 を指定する必要がある python のようなことをする必要があるか、必要なバイナリへのパスにシンボリックリンクを作成してダンスをする必要があります。これはスクリプトレットで行う必要があり、それを管理するのは非常に困難です。また、シンボリックリンクがどのパッケージにも所有されないことを意味します。

于 2011-05-21T10:45:05.140 に答える