PPA & Kemasan: Memiliki versi paket untuk beberapa distro

36

(kutipan dari obrolan)

Mendapat PPA di launchpad untuk paket-paket sumber untuk proyek bot IRC yang saya asosiasikan (karena semua ini merupakan kemasan perantara untuk barang-barang di antara rilis, ini diklasifikasikan sebagai PPA "eksperimental"). Pertanyaan: Saya sudah mengemas barang-barang untuk bangunan yang jelas. Adakah petunjuk bagaimana saya bisa membuat kemasan yang sama, kecuali mengemasnya untuk maverick, dan memasangnya ke PPA yang sama dengan yang saya masukkan pada kemasan yang jelas?

Thomas Ward
sumber

Jawaban:

42

Mungkin cara termudah adalah dengan menyalin binari di Launchpad:

  1. Buka PPA Anda dan klik 'Lihat detail paket':

    masukkan deskripsi gambar di sini

  2. Klik pada 'Salin paket':

    masukkan deskripsi gambar di sini

  3. Pilih paket Lucid:

    masukkan deskripsi gambar di sini

  4. Pilih 'Maverick' untuk seri ini, dan pilih untuk 'menyalin binari yang ada':

    masukkan deskripsi gambar di sini

  5. Klik 'salin paket' dan hanya itu!

Nathan Osman
sumber
Terimakasih banyak. Instruksi Anda tepat . Terima kasih banyak atas tanggapan cepatnya juga.
Thomas Ward
@ Evil: Tidak masalah. Senang bisa membantu!
Nathan Osman
4
CATATAN UNTUK PERTANYAAN LAIN YANG BERKAITAN DENGAN SINI !!! Menyalin binari yang sudah ada TIDAK SELALU BEKERJA untuk program-program yang diperuntukkan bagi versi ubuntu lainnya! Lihat PPA rkhunter saya dan changelogs untuk versi Lucid untuk memahami apa yang saya maksud: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+paket
Thomas Ward
@ ThomasWard: Poin bagus - itu tidak selalu berhasil.
Nathan Osman
2
@KhurshidAlam Maaf atas tanggapan yang sangat terlambat. Itu akan gagal dengan "Perubahan Tidak Valid", dan karena itu, Anda harus secara khusus menandai masing-masing secara terpisah saat menggunakan PPA dengan versi yang berbeda. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) adalah contoh yang bagus untuk ini, karena untuk membuatnya build, saya harus menambahkan distribusi ke versi sehingga ia membangun benar dengan semua pustaka yang berbeda. (Saya mempertahankan ppas tim nginx untuk saat ini dan karenanya saya menggunakannya sebagai contoh.)
Thomas Ward
11

Jika menyalin binari untuk paket yang Anda buat tidak berfungsi, Anda harus mengunggah paket sumber untuk setiap versi distro dengan mengedit debian/changelogfile.

Bagaimana Paket Ulang untuk Versi Distro Lain

  1. Edit debian/changelogfile dalam direktori paket sumber Anda
  2. Ubah baik yang versi dan target distribusi untuk mencerminkan yang distro Anda sedang membangun untuk

    Misalnya:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Paket ulang sumber: debuild -S
  4. Unggah .changesfile ke PPA Anda:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Jika build berhasil, selamat Anda baru saja membangun sebuah paket untuk distro itu! Jika tidak, Anda harus memeriksa log pembangunan di Launchpad dan mengatasi masalah yang Anda temukan.

Referensi:

TrinitronX
sumber
Inilah yang saya lakukan! : D MOTU (repositori para dewa alam semesta) menjelaskan hal ini ketika saya perlu melakukan pembangunan yang berbeda untuk nginxdan program lainnya dalam PPA, dan mereka membantu menyelesaikan banyak masalah saya. Terima kasih telah memposting ini! :)
Thomas Ward
Ya saya pikir ini akan menjadi informasi yang berguna untuk didokumentasikan dan tersedia untuk pembuat paket baru, karena bisa ada kurva pembelajaran yang curam untuk menggunakan semua alat pengemasan debian, unggahan PPA, konvensi, dan debug gagal membangun.
TrinitronX
Memang. Saya tidak mengubah jawaban yang diterima, karena pada saat pertanyaan ini, tidak perlu khawatir tentang berbagai perpustakaan yang tersedia di berbagai versi Ubuntu. Dengan nginxatau rkhunteratau paket-paket lain yang sering saya backport, ada masalah dependensi yang sangat besar untuk diatasi (berbeda depends:dalam file kontrol dan semacamnya), jadi saya selalu menggunakan di programversion-1~RELEASE0mana ~ RELEASE0 selalu beberapa nomor dengan rilis yang diberikan. Biasanya ketika saya backport dari Debian ke Ubuntu itu masalahnya :)
Thomas Ward
Ya, dependensi jelas merupakan titik sakit untuk backporting ;-) Saya setuju, jawaban yang diterima cukup untuk sebagian besar kasus, dan untuk pengguna repo kontrol sumber bazaar, menggunakan resep bzr-builder Launchpad juga terlihat menarik. Namun, ketika datang ke paket dengan banyak dependensi, kadang-kadang Anda harus membangun paket kustom untuk distro target Anda.
TrinitronX
Dan saya backport nginxdari Debian Tidak Stabil ke Precise, Quantal, Raring, dan Saucy (dan Trusty dalam PPA, tapi saya juga memastikan Trusty, sampai Debian membeku, akan memiliki yang terbaru dari Debian digabung dalam: P), untuk tim NGINX, tetapi sayangnya terkadang ada bug yang tidak bisa saya perbaiki dan Debian harus berurusan dengan ... ini sebabnya saya memiliki hubungan yang baik dengan pengelola Debian :)
Thomas Ward