web-dev-qa-db-ja.com

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

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

38
IttayD

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

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

14
B14D3

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

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

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

51
Onnonymous

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

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

requires: nx
provides: nxagent

このようにして依存関係は満たされる必要がありますが、ファイルがインストールされると予想されるnxagentパッケージとCentOSが提供するnxパッケージとの間で異なる場所にあると想定される場合があります。

2
bodgit

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

0
Florian Heigl