Mam program, który należy ponownie skompilować dla każdej wersji Ubuntu.
Obecnie pakuję go za pomocą PPA Ubuntu tylko dla bieżącej dystrybucji.
W końcu muszę dostarczyć pakiety dla poprzedniej wersji ubuntu.
Nie jestem pewien, jak to osiągnąć.
Jak działa serwer kompilacji Ubuntu PPA - czy po prostu patrzy na pole dystrybucji w najnowszym wpisie dziennika zmian (w pliku debian / changelog), aby określić, dla jakiej dystrybucji pakiet powinien zostać zbudowany?
Specyfikacja debian pozwala dodawać wiele dystrybucji do pola dystrybucji. Ale to nie pomaga mi.
Niektóre dokumenty ubuntu mówią o zakodowaniu nazwy dystrybucji w numerze wersji (w pliku dziennika zmian Debiana).
Ale jak to działa w praktyce? Dostępna jest nowa wersja programu, co wtedy? Czy dodam dla każdej dystrybucji nowy wpis dziennika zmian, a serwer budujący PPA buduje automatycznie dla każdej dystrybucji nowe pakiety po zapisaniu go? A może serwer konstruktorów PPA patrzy tylko na pierwszy wpis dziennika zmian?
Odpowiedzi:
Najlepszym sposobem jest przesłanie raz dla każdej wersji Ubuntu .
Launchpad nie zbuduje pakietów dla wersji Ubuntu, które nie są już obsługiwane, i zbuduje pakiet tylko dla jednej konkretnej wersji Ubuntu. Wersja docelowa jest (jak już wiesz) określona w
changelog
pliku przez najnowszy wpis!Pamiętaj, aby pamiętać, że pakiety, od których zależy Twój program, mogą nie być dostępne w tej samej wersji we wszystkich wersjach Ubuntu.
Mówisz również o „multi-architekturze” (architektura = typ CUP, np. X86, LPIA, AMD64), to nie ma znaczenia, ponieważ każdy przesyłany pakiet jest budowany dla wszystkich dostępnych architektur, o ile masz go
Architecture: any
wdebian/control
pliku definicji pakietu ( ), pozwala to również na uzależnienie pakietu od różnych pakietów dla różnych architektur (definiowanie pakietu więcej niż raz)źródło
Launchpad ma nową funkcję obecnie w fazie beta, która pozwala zbudować pakiet dla wielu wersji ubuntu jednocześnie, bez dodatkowej pracy. Możesz nawet automatycznie budować swoje paczki każdego dnia. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted
źródło
Jeśli chodzi o konwencje nazewnictwa, standardem jest zrobienie czegoś takiego:
Powodem jest to, że ~ w polu wersji oznacza „mniej niż nic” dla numeru wersji. Więc jeśli ktoś doda twoje PPA w Karmic, dostanie pakiet ~ karmicppa1. Kiedy następnie zaktualizują do Lucid (i przeczytają PPA), zostanie on zastąpiony pakietem Lucid PPA. Jeśli następnie Twoja paczka przejdzie do oficjalnego archiwum, przejście z PPA przebiegnie bezproblemowo.
Inną zaletą jest to, że umieszczenie wydania w polu wersji wyjaśnia, do którego wydania odnoszą się pliki (i subtelnie przypomina o przesłaniu jednego wydania na wydanie). Możesz także potrzebować różnych gałęzi dla każdej wersji Ubuntu, na przykład w przypadku różnych zależności.
źródło