単一の依存関係を無視するようにyumに指示します


37

CentOs 6にwinswitchをインストールしようとしています。「nxagent」が必要です。しかし、centosでは、パッケージ名は「nx」です。'nxagent'依存関係のチェックをスキップするようにyumに指示する方法はありますか(私は既に 'nx'をインストールしています)?--skip-brokenを指定すると、すべてがスキップされます

回答:


14

通常yum、依存関係から単一のパッケージを無視するオプションはありません。オプション--skip-brokenは、未解決の依存関係をすべて無視します。

試すことができyum --exclude=packagenameますが、依存関係からではなく、すべてのリポジトリの更新から名前またはグロブによって特定のパッケージを除外します。


1
yum --exclude依存関係で動作しません
-DrStrangepork

2
@DrStrangeporkはい、私は答えにそれを書いたことを知っています
-B14D3

5
どちら--exclude--skip-broken1かの方法でより多くの依存関係のバイパスができますrpm --nodepsし。
Acumenus

3
2番目の答えに進みます。
brthornbury

49

このrpmコマンドには、--nodeps使用できるオプションがあります。課題は、rpmそれ自体ではyumリポジトリを認識しないことです。次のコマンドは、依存関係を無視してパッケージをインストールまたは更新しますrepoqueryが、packageにあるリポジトリからダウンロードURLを自動的に検索しますyum-utils

rpm -Uvh --nodeps $(repoquery --location winswitch)

その後、yum update依存関係エラーなしで通常のユーザーが成功する可能性があります。


$(repoquery --location winswitch)は機能しませんでした。ただし、「yumdownloader --destdir =。package-name」を使用して.rpmパッケージをダウンロードできます。「rpm -U」はアップグレードを意味します。パッケージがインストールされていない場合は、「rpm -i」を使用できます。yumdownloaderはyum-utils(私の場合はdnf-utils)のものです。
ヤロスラフニキテンコ

2

OS用に設計されていないパッケージをインストールしようとしているようです。つまり、CentOS用に設計されている場合は、nx正しく必要です。

この問題の別の回避策は、ファイルを含まないが、specファイルに次の行を含む小さなshim RPMパッケージを作成してインストールすることです(特に)。

requires: nx
provides: nxagent

この方法で依存関係は満たされるはずですが、nxagentインストールする予定のnxパッケージとCentOSが提供するパッケージとでは異なる場所にファイルがあることが期待される場合があります。


0

また、rpmrebuildを使用してrpmメタデータを変更し、新しいパッケージ名を指すようにすることもできます。これは「あなたの」パッケージになりますが、rpmの依存関係に関してはよりクリーンです。--nodepsの使用に不利な点はないと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.