dile a yum que ignore una sola dependencia

37

Estoy tratando de instalar Winswitch en CentOs 6. Requiere 'nxagent'. Pero en centos, el nombre del paquete es 'nx'. ¿Hay alguna manera de decirle a yum que omita verificar la dependencia 'nxagent' (ya instalé 'nx')? Al especificar --skip-broken se salta todo

IttayD
fuente

Respuestas:

14

Generalmente yumno tiene opciones para ignorar un solo paquete de las dependencias. La opción --skip-brokenignora todas las dependencias no resueltas.

Puede intentarlo, yum --exclude=packagenamepero excluye un paquete específico por nombre o glob de las actualizaciones en todos los repositorios, no de las dependencias.

B14D3
fuente
1
yum --excludeno funciona en dependencias
DrStrangepork
2
@DrStrangepork sí, sé que escribí eso en mi respuesta
B14D3
55
Ni --excludetampoco --skip-brokenayuda derivación de una o más dependencias en la forma en que rpm --nodepslo hace.
Acumenus
3
Ve a la segunda respuesta.
brthornbury
49

El rpmcomando tiene la --nodepsopción que puede usar. Un desafío es que rpmpor sí mismo no tiene conocimiento de los repositorios de yum. El siguiente comando instalará o actualizará el paquete, ignorando las dependencias, pero buscando automáticamente la URL de descarga de sus repositorios con los repoqueryque está en el paquete yum-utils.

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

Después de eso, un regular yum updateprobablemente tendrá éxito sin errores de dependencia.

Onnónimo
fuente
$ (repoquery --location winswitch) no funcionó para mí. Sin embargo, uno puede descargar el paquete .rpm a través de "yumdownloader --destdir =. Package-name". "rpm -U" significa actualización. Si el paquete no se instaló, se puede usar "rpm -i" para eso. yumdownloader es de yum-utils (dnf-utils en mi caso).
Yaroslav Nikitenko el
2

Parece que está intentando instalar un paquete que no ha sido diseñado para el sistema operativo, es decir, si fue diseñado para CentOS, sería necesario nx.

Otra solución para el problema es crear e instalar un pequeño paquete de RPM shim que no contiene archivos, pero en el archivo de especificaciones contiene las siguientes líneas (entre otras):

requires: nx
provides: nxagent

De esa manera, la dependencia debería satisfacerse, sin embargo, puede esperar que los archivos se encuentren en una ubicación que difiera entre el nxagentpaquete que espera haber instalado y el nxpaquete que proporciona CentOS.

bodgit
fuente
0

También puede usar rpmrebuild para cambiar los metadatos de rpm para apuntar al nuevo nombre del paquete. este será entonces "su" paquete, pero es más limpio en lo que respecta a las dependencias de rpm. No hay desventaja sobre el uso de --nodeps, creo.

Florian Heigl
fuente