Tengamos un metapaquete que depende de los siguientes paquetes
Depends: A (=2),
B (=2),
C (=2)
Tenga en cuenta el '=' - Quiero instalar estas versiones particulares, no las más recientes.
Adicionalmente:
B depende de A (> = 1)
C depende de B (> = 1) y A (> = 1)
Si las versiones más recientes de A, B, C en el repositorio son 2, entonces esto funciona.
Como he puesto la versión 3 de A y la versión 3 de B en el repo sudo apt-get install my-meta-package se niega a terminar con la siguiente información:
The following packages have unmet dependencies:
my-meta-package: Depends: B (= 2) but 3 is to be installed
Depends: A (= 2) but 3 is to be installed
Si instalo manualmente las versiones 2 de A y B, el metapaquete se instala correctamente, lo que sugiere que no hay una dependencia oculta en A3 o B3. Esta no es una solución para el problema, ya que el metapaquete se instala automáticamente en muchas máquinas.
PREGUNTA: ¿Qué hacer para que sudo apt-get install my-meta-package install versiones 2,2,2?
Además, ¿hay alguna manera de obtener una información extendida que realmente crea la necesidad de la versión 3 de A y la versión 3 de B?
fuente
(a=2), (b=2)
?Respuestas:
Debe seleccionar las versiones particulares para instalar e instalarlas todas al mismo tiempo que instala el metapaquete.
Como dice la respuesta de int_ua , puede encontrar dependencias inversas con esto:
Si desea obtener más información sobre cualquiera de esos paquetes ( versiones disponibles, dependencias y mucho más ), use esto:
Una vez que termine de instalarlos y desee mantenerlos en esas versiones mientras realiza las actualizaciones del sistema, necesitará usar apt-pinning como lo sugiere belacqua .
APT fijación
fuente
Puede intentar instalar dependencias primero con
sudo apt-get install package=2
donde 2 es la versiónPuede averiguar qué paquetes dependen del paquete con
apt-cache rdepends package
fuente