Comment télécharger un package avec des dépendances sur mon PPA?

13

J'ai fait un package pour mon PPA et l'ai téléchargé. Il a construit sans aucun problème.

Ensuite, j'ai créé un autre package qui dépendait du premier et l'ai téléchargé. Il a échoué car il n'a pas pu trouver les fichiers dans le premier package. Cela m'amène à croire que le premier paquet n'a même pas été installé.

Comment puis-je m'assurer que le premier package est installé avant d'essayer de créer le deuxième package?

Le fichier de contrôle du premier paquet (libjsoncpp):

Source: jsoncpp
Priorité: extra
Mainteneur: Nathan Osman 
Build-Depends: debhelper (> = 7)
Version des normes: 3.8.3
Section: bibliothèques
Page d'accueil: http://jsoncpp.sf.net

Paquet: jsoncpp-dev
Section: libdevel
Architecture: tout
Dépend: libjsoncpp (= $ {binary: Version})
Description: bibliothèque d'analyse JSON pour C ++
 jsoncpp est une bibliothèque C ++ qui facilite la
 lire / écrire des données JSON.
 .
 Ce package contient les outils de développement nécessaires
 pour créer des applications qui utilisent jsoncpp.

Paquet: libjsoncpp
Section: bibliothèques
Architecture: tout
Dépend: $ {shlibs: Depends}, $ {misc: Depends}
Description: bibliothèque d'analyse JSON pour C ++
 jsoncpp est une bibliothèque C ++ qui facilite la
 lire / écrire des données JSON.

Le fichier de contrôle du second (libsopp):

Source: sopp
Priorité: extra
Mainteneur: Nathan Osman 
Build-Depends: debhelper (> = 7)
Version des normes: 3.8.3
Section: bibliothèques
Page d'accueil: http://stackoverflow.quickmediasolutions.com

Paquet: sopp-dev
Section: libdevel
Architecture: tout
Dépend: libsopp (= $ {binary: Version}), jsoncpp-dev
Description: une bibliothèque C ++ pour l'interfaçage avec les sites StackExchange.
 so ++ est une bibliothèque C ++ qui encapsule les fonctionnalités de StackOverflow
 API. Il donne accès à tous les sites StackExchange.
 .
 Ce package contient les fichiers de développement nécessaires pour écrire des logiciels
 qui utilise so ++.

Paquet: libsopp
Section: bibliothèques
Architecture: tout
Dépend: $ {shlibs: Depends}, $ {misc: Depends}, libjsoncpp
Description: une bibliothèque C ++ pour l'interfaçage avec les sites StackExchange.
 so ++ est une bibliothèque C ++ qui encapsule les fonctionnalités de StackOverflow
 API. Il donne accès à tous les sites StackExchange.
Nathan Osman
la source
Les deux packages sont-ils dans le même PPA?
Jeremy Kerr
@ Jeremy: Oui, ils le sont.
Nathan Osman
Le deuxième paquet a-t-il besoin du premier paquet pour être construit? (c'est-à-dire le package a * -dev d'une bibliothèque qu'il utilise)
txwikinger
@txwikinger: Oui, c'est le cas. Avez-vous besoin de voir les fichiers de contrôle?
Nathan Osman
@txwikinger: Nvm. Je les ai ajoutés.
Nathan Osman

Réponses:

10

Votre deuxième paquet (sopp) doit spécifier qu'il a besoin du premier pour être construit ; la dépendance que vous avez spécifiée (avec Depends:) ne gérera que l'installation.

Pour ajouter une dépendance de build, ajoutez ceci à la Source:section top ( ) de votre fichier de contrôle:

Build-Depends: jsoncpp-dev

Vous devriez alors être en mesure de supprimer jsoncpp de la Dependsligne, car la shlibs:Dependsmacro devrait fonctionner elle-même.

Jeremy Kerr
la source