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ść

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.


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.


$ (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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.