Jak wgrać pakiet z zależnościami do mojego PPA?

13

Zrobiłem pakiet dla mojego PPA i przesłałem go. Zbudował bez żadnych problemów.

Potem zrobiłem inny pakiet, który zależał od pierwszego i przesłałem go. Nie udało się, ponieważ nie można znaleźć plików w pierwszym pakiecie. To prowadzi mnie do wniosku, że pierwszy pakiet nie został nawet zainstalowany.

Jak mogę się upewnić, że pierwszy pakiet jest zainstalowany, zanim spróbuje zbudować drugi pakiet?

Plik kontrolny dla pierwszego pakietu (libjsoncpp):

Źródło: jsoncpp
Priorytet: dodatkowy
Opiekun: Nathan Osman 
Kompilacja zależna: debhelper (> = 7)
Wersja Standardowa: 3.8.3
Sekcja: libs
Strona domowa: http://jsoncpp.sf.net

Pakiet: jsoncpp-dev
Sekcja: libdevel
Architektura: dowolna
Zależy: libjsoncpp (= $ {binary: Version})
Opis: Biblioteka parsująca JSON dla C ++
 jsoncpp to biblioteka C ++, która ułatwia to
 odczyt / zapis danych JSON.
 .
 Ten pakiet zawiera niezbędne narzędzia programistyczne
 do tworzenia aplikacji korzystających z jsoncpp.

Pakiet: libjsoncpp
Sekcja: libs
Architektura: dowolna
Depends: $ {shlibs: Depends}, $ {misc: Depends}
Opis: Biblioteka parsująca JSON dla C ++
 jsoncpp to biblioteka C ++, która ułatwia to
 odczyt / zapis danych JSON.

Plik sterujący dla drugiego (libsopp):

Źródło: sopp
Priorytet: dodatkowy
Opiekun: Nathan Osman 
Kompilacja zależna: debhelper (> = 7)
Wersja Standardowa: 3.8.3
Sekcja: libs
Strona główna: http://stackoverflow.quickmediasolutions.com

Pakiet: sopp-dev
Sekcja: libdevel
Architektura: dowolna
Zależy: libsopp (= $ {binary: Version}), jsoncpp-dev
Opis: Biblioteka C ++ do współpracy z witrynami StackExchange.
 so ++ to biblioteka C ++, która otacza funkcjonalność StackOverflow
 API. Zapewnia dostęp do wszystkich stron StackExchange.
 .
 Ten pakiet zawiera pliki programistyczne niezbędne do pisania oprogramowania
 który używa so ++.

Pakiet: libsopp
Sekcja: libs
Architektura: dowolna
Depends: $ {shlibs: Depends}, $ {misc: Depends}, libjsoncpp
Opis: Biblioteka C ++ do współpracy z witrynami StackExchange.
 so ++ to biblioteka C ++, która otacza funkcjonalność StackOverflow
 API. Zapewnia dostęp do wszystkich stron StackExchange.
Nathan Osman
źródło
Czy oba pakiety są w tym samym PPA?
Jeremy Kerr,
@Jeremy: Tak, są.
Nathan Osman,
Czy drugi pakiet potrzebuje pierwszego pakietu do zbudowania? (tj. pakiet * -dev używanej biblioteki)
txwikinger
@txwikinger: Tak, to prawda. Czy chcesz zobaczyć pliki kontrolne?
Nathan Osman,
@txwikinger: Nvm. Dodałem je.
Nathan Osman,

Odpowiedzi:

10

Drugi pakiet (sopp) musi określić, że potrzebuje pierwszego do zbudowania ; zależność, którą określiłeś (z Depends:) będzie obsługiwać tylko instalację.

Aby dodać zależność kompilacji, dodaj to do sekcji top ( Source:) pliku kontrolnego:

Build-Depends: jsoncpp-dev

Powinieneś być w stanie usunąć jsoncpp z Dependslinii, ponieważ shlibs:Dependsmakro powinno to samo rozwiązać.

Jeremy Kerr
źródło