Obligando a los paquetes virtuales en conflicto
-
18-09-2019 - |
Pregunta
¡Hey! Tengo un paquete genérico que requiere un archivo de configuración y varios paquetes que pueden proporcionar dicho archivo de configuración.
Por lo tanto, para definir "miservidor", Tengo:
myserver.spec
Requiere: myserver-config
(el paquete config) miservidor-primero-config.spec
Nombre: miservidor-primera-config
Requiere: miservidor
Proporciona: miservidor-config
(otro paquete config) miservidor-segundos-config.spec
Nombre: miservidor-segundo-config
Requiere: miservidor
Proporciona: miservidor-config
Y eso es genial, pero quiere asegurarse de que exactamente uno de esos paquetes de configuración está instalado. Por lo tanto, si intento instalar miservidor-segundo-config cuando miservidor-primera-config ya está instalado, me sale un error.
¿Puedo utilizar "Conflictos: miservidor-config" en tanto myserver- {primera, segunda} -config.spec? ¿Puede un conflicto de paquetes con la misma? Siento que hay una manera "correcta" de hacer esto ...
Gracias!
Solución
Es probable que haya resuelto este en su propio - en cuyo caso es bueno para enviar la respuesta aquí, para ayudar a todos los visitantes de Google caprichosos :) De lo contrario:
- A partir de RPM v5, un paquete no puede entrar en conflicto con ella misma, ya que esto evitaría que el paquete sea instalado.
- ¿Qué está solicitando es un sistema de 'alternativas', donde varios paquetes pueden proporcionar el mismo archivo. Para implementar esto, tienen cada conflicto paquete con las otras alternativas.
En miservidor-primera-config:
Los conflictos: myserver-segundos-config
En segundo miservidor-config:
Conflictos: miservidor-primera-config
Si se va a añadir una tercera configuración, esto se convertiría en:
miservidor-primera-config:
Los conflictos: myserver-segundos-config miservidor-tercero-config
miservidor-segundo-config:
Conflictos: miservidor-primera-config miservidor tercio-config
miservidor tercio-config:
Los conflictos: myserver-primero-config miservidor-segundos-config
Esto es necesario porque la sintaxis de paquetes podría parcialmente conflicto - y es mejor ser explícito acerca de los conflictos. Si no agrega nuevos archivos de configuración que a menudo, esta solución es completamente viable.