Sagen Sie yum, dass Sie eine einzelne Abhängigkeit ignorieren sollen

37

Ich versuche, WinSwitch auf CentOs 6 zu installieren. Es erfordert 'nxagent'. In Centos lautet der Paketname jedoch 'nx'. Gibt es eine Möglichkeit, yum anzuweisen, die Überprüfung der 'nxagent'-Abhängigkeit zu überspringen (ich habe' nx 'bereits installiert)? Wenn Sie --skip-broken angeben, wird das Ganze übersprungen

IttayD
quelle

Antworten:

14

Im Allgemeinen yumgibt es keine Optionen zum Ignorieren eines einzelnen Pakets aus den Abhängigkeiten. Option --skip-brokenignoriert alle ungelösten Abhängigkeiten.

Sie können versuchen yum --exclude=packagename, ein bestimmtes Paket nach Name oder Glob von den Aktualisierungen aller Repositorys auszuschließen, nicht von Abhängigkeiten.

B14D3
quelle
1
yum --excludefunktioniert nicht auf Abhängigkeiten
DrStrangepork
2
@ DrStrangepork Ja, ich weiß, ich habe das in meiner Antwort geschrieben
B14D3
5
Weder hilft --excludenoch --skip-brokenumgeht es eine oder mehrere Abhängigkeiten auf diese Weise rpm --nodeps.
Acumenus
3
Gehen Sie zur zweiten Antwort.
Brthornbury
49

Der rpmBefehl hat die --nodepsOption, die Sie verwenden können. Eine Herausforderung ist, dass rpmman sich der yum-Repositories nicht bewusst ist. Mit dem folgenden Befehl wird das Paket installiert oder aktualisiert, wobei Abhängigkeiten ignoriert werden. Die Download-URL wird jedoch automatisch aus den Repositorys abgerufen, repoquerydie sich im Paket befinden yum-utils.

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

Danach wird ein Regular yum updatewahrscheinlich ohne Abhängigkeitsfehler erfolgreich sein.

Anonym
quelle
$ (repoquery --location winswitch) hat bei mir nicht funktioniert. Sie können das RPM-Paket jedoch über "yumdownloader --destdir =. Package-name" herunterladen. "rpm -U" bedeutet Upgrade. Wenn das Paket nicht installiert wurde, kann man dafür "rpm -i" verwenden. yumdownloader ist von yum-utils (in meinem Fall dnf-utils).
Jaroslaw Nikitenko
2

Es hört sich so an, als würden Sie versuchen, ein Paket zu installieren, das nicht für das Betriebssystem entwickelt wurde. Wenn es also für CentOS entwickelt wurde, müsste es nxordnungsgemäß installiert werden.

Eine andere Problemumgehung besteht darin, ein kleines Shim-RPM-Paket zu erstellen und zu installieren, das keine Dateien enthält, in der Spezifikationsdatei jedoch (unter anderem) die folgenden Zeilen enthält:

requires: nx
provides: nxagent

Auf diese Weise sollte die Abhängigkeit erfüllt sein, es kann jedoch vorkommen, dass sich Dateien an einem Speicherort befinden, der sich zwischen dem nxagentPaket, das installiert werden soll, und dem von nxCentOS bereitgestellten Paket unterscheidet.

Bodgit
quelle
0

Sie können auch rpmrebuild verwenden, um die rpm-Metadaten so zu ändern, dass sie auf den neuen Paketnamen verweisen. Dies wird dann "Ihr" Paket sein, ist aber in Bezug auf die RPM-Abhängigkeiten sauberer. Es gibt keinen Nachteil, wenn man --nodeps benutzt, denke ich.

Florian Heigl
quelle