Wie lade ich ein Paket mit Abhängigkeiten zu meinem PPA hoch?

13

Ich habe ein Paket für meine PPA erstellt und hochgeladen. Es hat ohne Probleme gebaut.

Dann habe ich ein anderes Paket erstellt, das vom ersten abhängt und es hochgeladen. Es ist fehlgeschlagen, da die Dateien im ersten Paket nicht gefunden wurden. Dies lässt mich glauben, dass das erste Paket noch nicht einmal installiert war.

Wie kann ich sicherstellen, dass das erste Paket installiert ist, bevor das zweite Paket erstellt wird?

Die Steuerdatei für das erste Paket (libjsoncpp):

Quelle: jsoncpp
Priorität: extra
Betreuer: Nathan Osman 
Build-Depends: debhelper (> = 7)
Standard-Version: 3.8.3
Abschnitt: libs
Homepage: http://jsoncpp.sf.net

Paket: jsoncpp-dev
Abschnitt: libdevel
Architektur: beliebig
Abhängig von: libjsoncpp (= $ {binary: Version})
Beschreibung: JSON-Parsing-Bibliothek für C ++
 jsoncpp ist eine C ++ - Bibliothek, die es einfach macht
 JSON-Daten lesen / schreiben.
 .
 Dieses Paket enthält die notwendigen Entwicklungswerkzeuge
 um Anwendungen zu erstellen, die jsoncpp verwenden.

Paket: libjsoncpp
Abschnitt: libs
Architektur: beliebig
Hängt ab von: $ {shlibs: Depends}, $ {misc: Depends}
Beschreibung: JSON-Parsing-Bibliothek für C ++
 jsoncpp ist eine C ++ - Bibliothek, die es einfach macht
 JSON-Daten lesen / schreiben.

Die Steuerdatei für die Sekunde (libsopp):

Quelle: sopp
Priorität: extra
Betreuer: Nathan Osman 
Build-Depends: debhelper (> = 7)
Standard-Version: 3.8.3
Abschnitt: libs
Homepage: http://stackoverflow.quickmediasolutions.com

Paket: sopp-dev
Abschnitt: libdevel
Architektur: beliebig
Hängt ab von: libsopp (= $ {binary: Version}), jsoncpp-dev
Beschreibung: Eine C ++ - Bibliothek für die Schnittstelle zu StackExchange-Sites.
 So ++ ist eine C ++ - Bibliothek, die die Funktionalität des StackOverflow umschließt
 API. Es bietet Zugriff auf alle StackExchange-Sites.
 .
 Dieses Paket enthält die Entwicklungsdateien, die zum Schreiben von Software erforderlich sind
 das nutzt so ++.

Verpackung: libsopp
Abschnitt: libs
Architektur: beliebig
Hängt ab von: $ {shlibs: Depends}, $ {misc: Depends}, libjsoncpp
Beschreibung: Eine C ++ - Bibliothek für die Schnittstelle zu StackExchange-Sites.
 So ++ ist eine C ++ - Bibliothek, die die Funktionalität des StackOverflow umschließt
 API. Es bietet Zugriff auf alle StackExchange-Sites.
Nathan Osman
quelle
Befinden sich beide Pakete in derselben PPA?
Jeremy Kerr
@ Jeremy: Ja, das sind sie.
Nathan Osman
Benötigt das zweite Paket das erste Paket zum Erstellen? (dh das a * -dev-Paket einer Bibliothek, die es verwendet)
txwikinger
@txwikinger: Ja, das tut es. Müssen Sie die Steuerdateien sehen?
Nathan Osman
@txwikinger: Nvm. Ich habe sie hinzugefügt.
Nathan Osman

Antworten:

10

Ihr zweites Paket (sopp) muss angeben , dass es die erste braucht bauen ; Die von Ihnen angegebene Abhängigkeit (mit Depends:) behandelt nur die Installation.

Fügen Sie zum Hinzufügen einer Build-Abhängigkeit Folgendes zum Source:Abschnitt top ( ) Ihrer Steuerdatei hinzu:

Build-Depends: jsoncpp-dev

Sie sollten dann in der Lage sein, jsoncpp aus der DependsZeile zu entfernen , da das shlibs:DependsMakro dies selbst erledigen sollte.

Jeremy Kerr
quelle