私のFedoraシステムにソフトウェアパッケージをインストールしたいのですが、多くの不合理な依存関係があります(実際にはそうではありません。必須)。
以前はDebianで作業していましたが、apt-getを使用すると、 推奨および推奨パッケージを体系的に除外し、厳密に必要な依存関係のみをインストールします。
Yumでそうする方法はありますか?
番号。
残念ながら、RPMベースのパッケージ管理には1種類の依存関係しかありません。それは依存関係であるかそうでないか、中間ではありません( read here )。私の経験では、Fedoraの依存関係はかなり限定されており、グループインストールを行わない限り、非コア機能はインストールされません。
私の意見では、複数レベルの依存関係は、DEBベースのパッケージ管理の能力の1つを示しています。
編集:元の質問に答えるために、はい、現在、弱い依存関係をサポートしているパッケージマネージャーは可能です。例として、Mageiaではurpmi --no-suggests foo
と等しくなります。 SuSeの場合、これはzypper in --no-recommends
になります。このようなものは、新しいyumバージョンにも実装する必要があります。そうしないと、これらのソフト依存関係はほとんど役に立ちません。
実際、rpmにはそれを可能にする弱い依存関係がありますが、残念なことに、それらは最近、yumおよびFedora/RHELが使用するrpm.orgバージョンに追加されていません(そして、おそらく現在はrawhide経由でのみ利用可能です)。最近の発表と実装の詳細については、 http://lists.rpm.org/pipermail/rpm-maint/2014-February/003666.html を確認してください。前の説明については http://lists.baseurl.org/pipermail/yum-devel/2009-September/005844.html も参照してください。また、このサポートを説明するrpm-4.12の変更に関するFedora wikiページもあります https://fedoraproject.org/wiki/Changes/RPM-4.12
FWIW、ソフト依存関係はSuSeによって数年以来使用されています。 http://en.opensuse.org/Libzypp/Dependencies#Weak_dependencies と、rpmブランチがサポートするものを示す以下のセクションを参照してください。また、Mandriva/Mageiaおよび関連するフォークは、かなり以前からソフトな依存関係(推奨のみ)を使用しています。
したがって、最初の質問に答えるには、rawhide/rpm-4.12にアップグレードして、現在サポートしている弱い依存関係の1つを使用してください。
内部RPM実装の詳細についてさらに情報が必要な場合は、お知らせください。
RPMベースのディストリビューションの依存関係は、dpkgのrequire/Recommends/Suggestsメソッドとは異なる方法で機能します。
一般に、RPMベースのディストリビューションの依存関係は、「この依存関係が満たされない限り、このパッケージは適切に機能しない」と同等と見なすことができます。ただし、パッケージメンテナが適切と判断した場合に追加の依存関係を含めることには、芸術的な自由があります(自動的に検出されないため、または難しい要件であると感じるため)。
例として、Debian/UbuntuのWebアプリケーションには、MySQLサーバーパッケージに対するさまざまな提案の依存関係がある場合があります。ただし、MySQLサーバーはローカルWebサーバー上にある必要はないため、ハード要件ではありません。Fedoraでの同じパッケージには依存関係はありません。
RPM方法論に問題があります。これは、あなたが特定したものであり、依存関係が多すぎる場合があります。私が聞いたよくある質問は、「このパッケージにBluetoothを使用しないときにBluetoothのライブラリを含める必要があるのですか?」、メインアプリケーションパッケージに含まれているオプションのプラグインなどのアイテムが、通常この状況の原因です。
私はこれを私のコマンド履歴で見つけました
dnf debuginfo-install -y \
--setopt=install_weak_deps=False \
cyrus-sasl-lib jsoncpp
この機能について https://bgstack15.wordpress.com/2017/05/13/dnf-ignore-weak-dependencies/ で読んだようです。