PPA i pakowanie: Posiadanie wersji pakietów dla wielu dystrybucji

36

(cytat z czatu)

Mam PPA na starterze dla pakietów źródłowych dla projektu bota IRC, z którym jestem powiązany (ponieważ jest to całe pośrednie opakowanie dla rzeczy między wydaniami, jest klasyfikowane jako „eksperymentalne” PPA). Pytanie: Już spakowałem te rzeczy, aby uzyskać przejrzystą wersję. Jakiś pomysł, jak mógłbym stworzyć to samo opakowanie, z wyjątkiem pakowania go dla indywidualisty i umieszczenia go na tym samym PPA, na którym umieściłem przejrzyste opakowanie?

Thomas Ward
źródło

Odpowiedzi:

41

Prawdopodobnie najłatwiejszym sposobem jest po prostu skopiowanie plików binarnych na Launchpad:

  1. Przejdź do PPA i kliknij „Zobacz szczegóły pakietu”:

    wprowadź opis zdjęcia tutaj

  2. Kliknij „Kopiuj paczki”:

    wprowadź opis zdjęcia tutaj

  3. Wybierz pakiety Lucid:

    wprowadź opis zdjęcia tutaj

  4. Wybierz „Maverick” dla serii i „skopiuj istniejące pliki binarne”:

    wprowadź opis zdjęcia tutaj

  5. Kliknij „skopiuj paczki” i to wszystko!

Nathan Osman
źródło
Dzięki wielkie. Twoje instrukcje były na miejscu . Wielkie dzięki za szybką odpowiedź.
Thomas Ward
@Evil: Nie ma problemu. Cieszę się, że mogłem pomóc!
Nathan Osman
4
UWAGA NA INNE PYTANIA, KTÓRE ŁĄCZĄ SIĘ Z TUTAJ !!! Kopiowanie istniejących plików binarnych NIE ZAWSZE DZIAŁA dla programów przeznaczonych dla innych wersji ubuntu! Zobacz mój PPA rkhunter i dzienniki zmian wersji Lucid, aby zrozumieć, co mam na myśli: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward
@ThomasWard: Dobra uwaga - nie zawsze działa.
Nathan Osman
2
@ KhurshidAlam Przepraszam za super super późną odpowiedź. Nie powiedzie się to w przypadku „Niepoprawnego dziennika zmian”, dlatego też musisz osobno oznaczyć każde osobno, gdy korzystasz z PPA z inną wersją. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) jest dobrym tego przykładem, ponieważ aby go skompilować, muszę dodać dystrybucję do wersji, aby budował poprawnie ze wszystkimi różnymi bibliotekami. (Na razie utrzymuję ppas zespołu nginx, dlatego używam tego jako przykładu.)
Thomas Ward
11

Jeśli kopiowanie plików binarnych dla budowanego pakietu nie działa, musisz przesłać pakiet źródłowy dla każdej wersji dystrybucji, edytując debian/changelogplik.

Jak ponownie zapakować do innej wersji Distro

  1. Edytuj debian/changelogplik w katalogu pakietu źródłowego
  2. Zmienić zarówno w wersji i dystrybucji docelową do refleksji, które distro budujesz na

    przykład:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Ponownie skompiluj pakiet źródłowy: debuild -S
  4. Prześlij .changesplik do PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Jeśli kompilacja się powiedzie, gratulacje, właśnie zbudowałeś pakiet dla tej dystrybucji! Jeśli nie, musisz sprawdzić dziennik kompilacji na Launchpad i rozwiązać wszelkie znalezione problemy.

Referencje:

TrinitronX
źródło
Tym się właśnie zajmuję! : D MOTU (repozytorium bogów wszechświata) wyjaśniło to, gdy musiałem tworzyć różne kompilacje nginxi inne programy w PPA, a oni pomogli rozwiązać wiele moich problemów. Dziękujemy za opublikowanie tego! :)
Thomas Ward
Tak, pomyślałem, że byłoby to przydatne do udokumentowania i udostępnienia nowym programom pakującym, ponieważ może istnieć ostra krzywa uczenia się w zakresie korzystania ze wszystkich narzędzi do pakowania Debiana, przesyłania plików PPA, konwencji i debugowania nieudanych kompilacji.
TrinitronX,
W rzeczy samej. Nie zmieniam jednak przyjętej odpowiedzi, ponieważ w czasie tego pytania nie trzeba było się martwić o różne biblioteki dostępne w różnych wersjach Ubuntu. Z nginxlub rkhunterlub innymi pakietami, których często backportuję, istnieje ogromny problem zależności do rozwiązania (inny depends:w pliku kontrolnym i tym podobnych), więc zawsze używam, programversion-1~RELEASE0gdzie ~ RELEASE0 jest zawsze pewną liczbą w danym wydaniu, w którym się znajduje. Zwykle, gdy backport z Tak jest w przypadku Debiana na Ubuntu :)
Thomas Ward
Tak, zależności są zdecydowanie problemem dla backportowania ;-) Zgadzam się, zaakceptowana odpowiedź powinna wystarczyć w większości przypadków, a dla użytkowników repozytoriów kontrolujących źródła bazarowe, użycie przepisu bzr-buildera Launchpad również wygląda atrakcyjnie. Jednak jeśli chodzi o pakiety z wieloma zależnościami, czasami trzeba zbudować pakiet niestandardowy dla docelowej dystrybucji.
TrinitronX,
I cofam się nginxz Debiana Unstable do Precise, Quantal, Raring i Saucy (i Trusty w PPA, ale również upewniam się, że Trusty, aż do momentu zamrożenia Debiana, dołączy najnowsze z Debiana: P), dla zespołu NGINX, ale czasami zdarzają się błędy, których nie mogę naprawić i Debian musi sobie z tym poradzić ... dlatego mam dobre relacje z opiekunami Debiana :)
Thomas Ward