powiedz yum, aby zignorowało jedną zależność

37

Próbuję zainstalować winswitch na CentOs 6. Wymaga „nxagent”. Ale w centach nazwa pakietu to „nx”. Czy istnieje sposób, aby powiedzieć yumowi, aby pomijał sprawdzanie zależności „nxagent” (już zainstalowałem „nx”)? Podanie parametru --skip-broken pomija całość

ItdayD
źródło

Odpowiedzi:

14

Zasadniczo yumnie ma opcji zignorowania pojedynczego pakietu z zależności. Opcja --skip-brokenignoruje wszystkie nierozwiązane zależności.

Możesz spróbować, yum --exclude=packagenameale wyklucza określony pakiet według nazwy lub globu z aktualizacji we wszystkich repozytoriach, a nie z zależności.

B14D3
źródło
1
yum --excludenie działa na zależności
DrStrangepork
2
@DrStrangepork tak, wiem, że napisałem to w mojej odpowiedzi
B14D3
5
Ani --excludeteż nie --skip-brokenpomaga ominąć jednej lub więcej zależności w ten sposób rpm --nodeps.
Acumenus
3
Przejdź do drugiej odpowiedzi.
brthornbury,
49

rpmKomenda ma --nodepsopcji, które można wykorzystać. Wyzwaniem jest to, że rpmsamo w sobie nie jest świadome repozytoriów yum. Następujące polecenie zainstaluje lub zaktualizuje pakiet, ignorując zależności, ale automatycznie wyszukuje adres URL pobierania z repozytoriów, z repoqueryktórymi jest w pakiecie yum-utils.

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

Po tym regularny yum updateprawdopodobnie odniesie sukces bez błędów zależności.

Onnonimowy
źródło
$ (repoquery --location winswitch) nie działało dla mnie. Można jednak pobrać pakiet .rpm poprzez „yumdownloader --destdir =. Nazwa-pakietu”. „rpm -U” oznacza aktualizację. Jeśli pakiet nie został zainstalowany, można w tym celu użyć „rpm -i”. yumdownloader pochodzi z yum-utils (w moim przypadku dnf-utils).
Jarosław Nikitenko
2

Wygląda na to, że próbujesz zainstalować pakiet, który nie został zaprojektowany dla systemu operacyjnego, tzn. Jeśli został zaprojektowany dla CentOS, wymagałby nxpoprawnego działania.

Innym sposobem obejścia tego problemu jest utworzenie i zainstalowanie małego shim pakietu RPM, który nie zawiera żadnych plików, ale w pliku specyfikacji zawiera następujące wiersze (między innymi):

requires: nx
provides: nxagent

W ten sposób zależność powinna zostać zaspokojona, jednak może oczekiwać, że pliki będą znajdować się w innym miejscu niż nxagentpakiet, który ma zostać zainstalowany, i nxpakiet, który zapewnia CentOS.

bodgit
źródło
0

możesz także użyć rpmrebuild, aby zmienić metadane rpm, aby wskazywały nazwę nowego pakietu. będzie to wtedy „twój” pakiet, ale jest czystszy, jeśli chodzi o zależności rpm. Nie ma wady korzystania z - myślę, że to nodeps.

Florian Heigl
źródło