Zypperにインストールを要求すると、次のようなメッセージが表示されます。
Problem: foo-tools requires foo-lib, but this requirement cannot be provided
Problem: foo-tools requires foo-lib, but this requirement cannot be provided
uninstallable providers: foo-lib.7.31.13.x86_64
Solution 1: do not install foo-tools
Solution 2: break foo-tools by ignoring some of its dependencies
Zypperはなぜ私が意図的に提供したRPMを「削除可能なプロバイダ」と見なすのですか?このメッセージはどういう意味ですか?意味は? RPMファイルを読み込めませんか?アーチが間違っていますか?間違ったバージョンですか?あなたは何を心配していますか? ?
答え1
foo-lib
独自に満たされていない依存関係があることがわかりました。これを追加すると問題が解決しました。
しかし、問題は... Zypperはなぜそうではありませんか?説明するここに問題があるのでしょうか?通常、依存関係の問題が発生すると、特定のパッケージが見つからないというメッセージが表示されます。この不透明な「削除可能なプロバイダ」メッセージが表示されるのはなぜですか?
答え2
RPMは、システムにインストールされているファイル(バイナリ実行可能ファイルや共有ライブラリなど)のデータベースを保持します。
一部のソフトウェア(例:foo-tools)が正しく機能するには、他のソフトウェア(例:foo-lib)が必要です。この依存関係情報はRPMパッケージプログラムによって決定されます。
foo-libとfoo-toolsをRPMファイルとして使用できますが、両方がインストールされていない場合は、コマンドライン(または同等のzypper対応)からRPMに(すべて)提供してRPM See all依存関係を満たすことができます。別のオプションは、前提条件パッケージを最初にインストールすることです。
foo-libに独自の依存関係がある場合は、これらの依存関係も満たす必要があります。それ以外の場合、foo-libはfoo-libのインストール可能プロバイダではありません。
推奨しない:前提条件が他の方法で満たされていることを確認してください(必要な項目を手動でインストールし、可能であればソースからZypperに依存関係を無視するように強制します。そうすると後で問題が発生する可能性があるため、そうしないでください。