Làm cách nào để tạo và quản lý PPA đa kiến ​​trúc?


13

Tôi có một chương trình cần được biên dịch lại cho mọi phiên bản Ubuntu.

Hiện tại tôi đang đóng gói nó bằng PPA của Ubuntu chỉ để phân phối hiện tại.

Cuối cùng, tôi phải cung cấp các gói cho phiên bản Ubuntu trước đó.

Tôi không chắc làm thế nào để thực hiện điều này.

Máy chủ xây dựng Ubuntu PPA hoạt động như thế nào - nó chỉ nhìn vào trường phân phối trong mục thay đổi hiện tại nhất (trong tệp debian / changelog) để xác định gói phân phối nào sẽ được xây dựng?

Đặc tả debian cho phép thêm nhiều bản phân phối vào trường phân phối. Nhưng điều này không giúp tôi.

Một số tài liệu ubfox nói về việc mã hóa tên phân phối thành số phiên bản (trong tệp thay đổi debian).

Nhưng làm thế nào để nó hoạt động trong thực tế? Một phiên bản mới của chương trình có sẵn, sau đó những gì? Tôi có thêm cho mỗi bản phân phối một mục thay đổi mới và máy chủ xây dựng PPA tự động xây dựng cho mỗi gói phân phối mới sau khi loại bỏ nó không? Hay là máy chủ xây dựng PPA chỉ nhìn vào mục thay đổi đầu tiên?


1
Tôi cũng thực sự quan tâm đến quá trình này!
Marco Ceppi

Câu trả lời:


7

Cách để đi là tải lên một lần cho mỗi phiên bản Ubuntu .

Launchpad sẽ không xây dựng các gói cho các phiên bản Ubuntu không còn được hỗ trợ và chỉ xây dựng gói cho một phiên bản Ubuntu cụ thể. Phiên bản được nhắm mục tiêu là (như bạn đã biết) được chỉ định trong changelogtệp, bởi mục nhập mới nhất!

Hãy nhớ rằng các gói mà chương trình của bạn phụ thuộc có thể không có sẵn ở cùng một phiên bản trên tất cả các phiên bản Ubuntu.

Bạn cũng nói về "đa kiến ​​trúc" (kiểu kiến ​​trúc = kiểu CUP, ví dụ: x86, LPIA, AMD64), điều này không có gì khác biệt vì mọi gói được tải lên đều được xây dựng cho tất cả các kiến ​​trúc có sẵn miễn là bạn có Architecture: anytrong debian/controltệp định nghĩa gói ( ), điều này cũng cho phép bạn tạo gói phụ thuộc vào các gói khác nhau cho các kiến ​​trúc khác nhau (được xác định gói nhiều lần)


10

Launchpad có một tính năng mới hiện đang trong giai đoạn thử nghiệm, cho phép bạn xây dựng gói của mình cho nhiều phiên bản ubfox cùng một lúc mà không cần phải làm thêm. Bạn thậm chí có thể tự động xây dựng các gói của bạn mỗi ngày. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted văn bản thay thế


1
Nghe có vẻ thú vị. Tôi không thể trực tiếp sử dụng nó, vì tôi không sử dụng bzr cũng như launchpad để lưu trữ kho lưu trữ (Tôi đang sử dụng Mercurial). Nhưng! Có lẽ khả thi để tạo Kho lưu trữ bzr tại launchpad và kết xuất các thay đổi mới nhất từ ​​kho lưu trữ chính của tôi ở đó, mỗi khi tôi muốn kích hoạt xây dựng gói mới.
maxschlepzig

Tôi không mã hóa bất cứ điều gì thường xuyên và tôi rất phấn khích vì điều này.
aperson

@maxschlepzig Đặt câu hỏi riêng về cách nhập nội dung Hg của bạn vào Launchpad và tôi sẽ trả lời.
Jorge Castro

6

Về các quy ước đặt tên, tiêu chuẩn là làm một cái gì đó như thế này:

  • 1.0-0ubfox1 cho gói kết thúc trong kho lưu trữ chính thức của Ubuntu
  • 1.0-0ubfox1 ~ lucidppa1 cho phiên bản của gói đó bạn đặt trong PPA của mình cho sáng suốt
  • 1.0-0ubfox1 ~ karmicppa1 cho phiên bản của gói đó cho Karmic

Lý do là một ~ trong trường phiên bản đại diện cho "ít hơn không có gì" cho một số phiên bản. Vì vậy, nếu ai đó thêm PPA của bạn tại Karmic, họ sẽ nhận được gói ~ karmicppa1. Sau đó, khi họ nâng cấp lên Lucid (và gắn lại PPA của bạn), nó sẽ được thay thế bằng gói PPA Lucid. Nếu gói của bạn sau đó được đưa vào kho lưu trữ chính thức, quá trình chuyển đổi khỏi PPA của bạn sẽ diễn ra suôn sẻ.

Ưu điểm khác là việc đưa bản phát hành vào trường phiên bản giúp làm rõ các bản phát hành áp dụng cho tệp nào (và nhắc nhở bạn một cách tinh tế để tải lên một bản phát hành cho mỗi bản phát hành). Bạn cũng có thể cần các nhánh khác nhau cho mỗi bản phát hành Ubuntu khi bạn có các phụ thuộc khác nhau, chẳng hạn.


Scott - có một số loại tài liệu về điều này?
Bartosz Radaczyński

~ Và những thứ có lẽ được dán nhãn ở đâu đó tối nghĩa. Phần còn lại chỉ là những quy ước mà tôi đã quan sát giữa các nhà phát triển khác, không phải là tài liệu thực hành chính thức.
Scott Ritchie

Ok, cảm ơn, quy ước đặt tên được đề xuất của bạn không hoạt động tốt.
Bartosz Radaczyński

Tôi nên nói thêm rằng đôi khi điều này được mở rộng thêm để đặt thêm ~ trước ppa: 1.0-0ubfox1 ~ karmic1 ~ ppa1 Lý do cho điều này là bản cập nhật phát hành ổn định chính thức cho Karmic có thể được phát hành dưới dạng 1.0-0ubfox1 ~ karmic1, và chúng tôi muốn phiên bản PPA ít hơn thế.
Scott Ritchie

Phải hỏi trong #launchpad trên Freenode và rõ ràng đây là tài liệu bán trên LaunchPad Wiki trong mục Xây dựng gói nguồn . Cảm ơn thông tin về quy ước này, nó khá hữu ích ^ _ ^
TrinitronX 16/12/13
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.