Bagaimana cara mengunggah paket dengan dependensi ke PPA saya?

13

Saya membuat paket untuk PPA saya dan mengunggahnya. Itu dibangun tanpa masalah.

Lalu saya membuat paket lain yang tergantung pada yang pertama dan mengunggahnya. Gagal karena tidak dapat menemukan file dalam paket pertama. Ini membuat saya percaya bahwa paket pertama bahkan tidak diinstal.

Bagaimana saya bisa memastikan paket pertama diinstal sebelum mencoba membangun paket kedua?

File kontrol untuk paket pertama (libjsoncpp):

Sumber: jsoncpp
Prioritas: ekstra
Maintainer: Nathan Osman 
Build-Depends: debhelper (> = 7)
Versi Standar: 3.8.3
Bagian: libs
Beranda: http://jsoncpp.sf.net

Paket: jsoncpp-dev
Bagian: libdevel
Arsitektur: apa saja
Tergantung: libjsoncpp (= $ {binary: Version})
Deskripsi: Perpustakaan parsing JSON untuk C ++
 jsoncpp adalah pustaka C ++ yang membuatnya mudah
 baca / tulis data JSON.
 .
 Paket ini berisi alat pengembangan yang diperlukan
 untuk membuat aplikasi yang menggunakan jsoncpp.

Paket: libjsoncpp
Bagian: libs
Arsitektur: apa saja
Tergantung: $ {shlibs: Tergantung}, $ {misc: Depends}
Deskripsi: Perpustakaan parsing JSON untuk C ++
 jsoncpp adalah pustaka C ++ yang membuatnya mudah
 baca / tulis data JSON.

File kontrol untuk yang kedua (libsopp):

Sumber: sopp
Prioritas: ekstra
Maintainer: Nathan Osman 
Build-Depends: debhelper (> = 7)
Versi Standar: 3.8.3
Bagian: libs
Beranda: http://stackoverflow.quickmediasolutions.com

Paket: sopp-dev
Bagian: libdevel
Arsitektur: apa saja
Tergantung: libsopp (= $ {binary: Version}), jsoncpp-dev
Deskripsi: Pustaka C ++ untuk berinteraksi dengan situs StackExchange.
 jadi ++ adalah pustaka C ++ yang membungkus fungsionalitas StackOverflow
 API. Ini menyediakan akses ke semua situs StackExchange.
 .
 Paket ini berisi file pengembangan yang diperlukan untuk menulis perangkat lunak
 yang menggunakan ++.

Paket: libsopp
Bagian: libs
Arsitektur: apa saja
Tergantung: $ {shlibs: Tergantung}, $ {misc: Depends}, libjsoncpp
Deskripsi: Pustaka C ++ untuk berinteraksi dengan situs StackExchange.
 jadi ++ adalah pustaka C ++ yang membungkus fungsionalitas StackOverflow
 API. Ini menyediakan akses ke semua situs StackExchange.
Nathan Osman
sumber
Apakah kedua paket dalam PPA yang sama?
Jeremy Kerr
@ Jeremy: Ya, benar.
Nathan Osman
Apakah paket kedua membutuhkan paket pertama untuk dibangun? (Yaitu paket * -dev dari perpustakaan yang digunakannya)
txwikinger
@ txwikinger: Ya, benar. Apakah Anda perlu melihat file kontrol?
Nathan Osman
@txwikinger: Nvm. Saya menambahkannya.
Nathan Osman

Jawaban:

10

Paket kedua Anda (sopp) perlu menentukan bahwa itu perlu yang pertama dibangun ; ketergantungan yang telah Anda tentukan (dengan Depends:) hanya akan menangani instalasi.

Untuk menambahkan dependensi build, tambahkan ini ke bagian atas ( Source:) dari file kontrol Anda:

Build-Depends: jsoncpp-dev

Anda kemudian dapat menjatuhkan jsoncpp dari Dependsbaris, karena shlibs:Dependsmakro harus menyelesaikannya sendiri.

Jeremy Kerr
sumber