1 votes

Forcer le package PPA à satisfaire la dépendance du méta-package de la distribution

Je suis en train de construire un paquet pour mon ppa qui nécessite une nouvelle implémentation de libboost que celle fournie dans ma distribution cible (precise). J'ai copié libboost1.55 depuis le ppa boost dans mon ppa. J'utilise pbuilder-dist pour tester la construction de mon paquet. J'ai avec succès utilisé la réponse à cette question pour amener pbuilder à obtenir les paquets libboost du ppa dans l'environnement chroot.

Malheureusement, bien que toutes les dépendances puissent être installées depuis le ppa en tant que libboost-libname1.55-dev, aucune d'entre elles ne satisfait le méta-paquet libboost-libname-dev et la construction avec pbuilder-dist échoue en raison de dépendances non satisfaites.

Donc, cette question n'est pas nécessairement seulement liée à pbuilder-dist, mais comment pourrais-je soit faire en sorte que pbuilder ignore les paquets pour les dépendances (car je suis sûr que la dépendance est satisfaite), soit faire en sorte que apt-get considère la dépendance du méta-paquet comme satisfaite? Je préférerais ne pas toucher au debian/control à moins qu'il n'y ait pas d'autre moyen.

1voto

saiarcot895 Points 10489

Parce que le métapaquet principal qui est mis à jour pour dépendre des bibliothèques Boost 1.55 n'est pas fourni via le PPA, vous obtenez des erreurs de dépendance. Aucun constructeur (pbuilder ou sbuild) ou gestionnaire de paquets (apt-get) ne permettra la construction/l'installation d'un paquet si les dépendances ne sont pas satisfaites, car cela indique que le paquet échouera à se construire ou à fonctionner. Par conséquent, vous devrez aller dans debian/control. Pour contourner l'erreur, essayez d'utiliser des alternatives de dépendance pour spécifier l'utilisation soit du métapaquet principal s'il est d'une version suffisante, soit de la version alternative.

Pour ce faire, dans le cas d'un module Boost appelé name, la dépendance pour ce module ressemblerait à libboost-name-dev (>= 1.55.0) | libboost-name1.55-dev. Dans ce cas, le libboost-name-dev sera utilisé s'il est au moins en version 1.55 ; sinon, il utilisera libboost-name1.55-dev.

Notez que vous devrez peut-être activer manuellement l'utilisation des alternatives dans pbuilder.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X