
他の人へのアドバイスのフォローアップ質問マシン上にローカル RPM リポジトリを設定しRed Hat 8
、そこにプライベート パッケージを配置して、インストールや更新などを実行できるようになりました。
しかし、問題があります。私がプライベートリポジトリに追加したパッケージの1つは、実際には公式RedHatリポジトリで利用可能なパッケージの修正版であり、同じ名前です。そのため、yum search
またははyum install
パッケージを公式ミラーから取得しますが、私のものではありません。私はこれを解決するためyum --repo=my_private_repo ...
、私のプライベートリポジトリ公式のものの代わりに。
これを解決する正しい方法は何でしょうか? おそらく、公式のパッケージと競合しないように、パッケージの名前を変更する (リポジトリで変更して追加したもの) のがより良い選択肢でしょうか?
アドバイスをいただければ幸いです!
答え1
ELのbaseosやappstreamリポジトリからパッケージを置き換えるのは困難です。ディストリビューションが期待していたものを別のものに置き換えると、悪夢のような依存関係の問題が発生する可能性があります。これが、ELコミュニティが特定のパッケージを嫌う理由の1つです。サードパーティのリポジトリ。
正常な動作をしているリポジトリを見つけて、そのパッケージに対して何が行われるかを調べます。私たちは一例です。安全であるためには、これらすべてが真である必要があります。
ほとんどの IUS パッケージは安全な代替パッケージです。これは、次の特性を持つパッケージを表すために使用する用語です。
- 標準パッケージの機能を置き換えます。
- 意図しないアップグレードを防ぐために、標準パッケージとは異なる名前を使用します。
- 他のパッケージの依存関係を満たすために、ストック パッケージ名を指定します。
- ストックパッケージと競合します。
- 在庫パッケージを廃止してはなりません。
例えば、「haproxy」だけではなく、「haproxy22」これは IUS のみが提供する名前ですが、appstream の名前に代わるものです。
Name: haproxy22
Provides: haproxy = %{version}-%{release}
Provides: haproxy%{?_isa} = %{version}-%{release}
Conflicts: haproxy < %{version}-%{release}
注意してくださいするrpm したいのですが、標準パッケージと競合するため、dnf では考慮されません。
このスキームでは、標準よりも高いバージョンリリース番号が必要です。リリース番号を大幅に増やすことを検討してください。
参照Fedora パッケージングガイドラインリソース用。