Làm cách nào để tạo PPA cho chương trình làm việc?


36

Giả sử tôi có một ứng dụng hoạt động được viết bằng C, C ++ hoặc Python. Tôi muốn tạo một Launchpad PPA để những người khác có thể dễ dàng cài đặt nó từ một gói. Vui lòng cung cấp hướng dẫn từng bước để làm điều này từ đầu đến cuối. (Hoặc cung cấp một liên kết tương tự;)

  • Liệu ngôn ngữ lập trình có vấn đề? (Nó có thể là một tập lệnh bash không?)
  • Tôi có cần thêm bất cứ điều gì vào bản dựng của mình không?
  • Bản dựng nên tự cài đặt ở đâu?
  • Làm thế nào để tôi xác định phụ thuộc?
  • Làm thế nào để tôi sử dụng phụ thuộc?
  • Làm cách nào để tạo .deb?
  • Tôi cần làm gì trước khi tải lên Launchpad?

1
Tôi đang hỏi câu hỏi này vì thỉnh thoảng tôi khuyên các dự án FLOSS tạo PPA (vì vậy tôi có thể cài đặt chúng dễ dàng :) - Tôi muốn có thể chỉ cho họ một nguồn tài nguyên kỹ lưỡng hoặc có thể tự làm điều đó.
david.libremone

Câu trả lời:


33

Đó là một câu hỏi rất rộng. Tôi sẽ cố gắng trả lời nhiều nhất có thể, nhưng chắc chắn đó không phải là hướng dẫn từng bước. Điều này là do không có thuật toán từng bước để tạo gói. Cách bạn sẽ thực hiện tùy thuộc vào nhiều yếu tố, chủ yếu dựa vào loại gói (ứng dụng, thư viện), cấu trúc nguồn và nhiều chi tiết.

May mắn thay, có một hướng dẫn kỹ lưỡng tại http://packaging.ubfox.com

Tôi sẽ cố gắng giúp bạn một chút với việc hiểu toàn bộ quá trình, vì vậy khi bạn sẽ quen thuộc hơn với nó. Hướng dẫn đóng gói bao gồm các tài nguyên để được trợ giúp thêm.


Trước hết bạn nên nhận ra rằng việc tạo một gói (tệp .deb) là một quá trình riêng biệt với việc tạo PPA. Tạo PPA là vấn đề truy cập vào hồ sơ của Launchpad của bạn và nhấp vào liên kết "Tạo PPA mới". Đó là tất cả. Nó được tạo ra, nó hoạt động, nhưng nó trống rỗng. Để tải lên một gói, trước tiên bạn phải tạo một gói. Nhưng hãy để tôi trả lời trước một số câu hỏi nhỏ của bạn.

  • Ngôn ngữ lập trình KHÔNG quan trọng chút nào. Nó có thể là một ứng dụng C ++, tập lệnh Bash, Brainfuck Hello World, một tệp README duy nhất hoặc một bộ ảnh tuyệt vời. Các gói có thể chứa bất kỳ tập tin. Trong quá trình cài đặt, gói được trích xuất vào thư mục gốc ("/") của hệ thống tập tin của bạn. Bằng cách này, họ có thể đặt một số tệp vào thư mục nhị phân, thêm một số hình nền vào bộ mặc định của Gnome hoặc cung cấp cho người dùng tập lệnh Bash.
  • Bạn KHÔNG cần thêm cái gì đó để nguồn. Nó phải là một thư mục cấp cao nhất có tên là "debian". Sẽ có một số tệp có chi tiết gói - chúng sẽ được sử dụng để xác định loại gói đó là gì, v.v.
  • Phụ thuộc được liệt kê trong một trong các tệp này (trong số các chi tiết khác). Lấy chúng từ đâu? Chúng chỉ đơn giản là các gói khác mà ứng dụng của bạn sử dụng. Nhà phát triển ứng dụng S know biết các thư viện và tài nguyên mà chương trình của anh ta yêu cầu, vì vậy anh ta không gặp nhiều rắc rối với việc liệt kê chúng.
    • Một số công cụ được sử dụng để xây dựng gói (pbuilder) có thể tự động điền vào các phụ thuộc, có thể bằng cách xác định ứng dụng của bạn yêu cầu gì trong quá trình biên dịch.
  • Nó cũng được khuyến khích sử dụng AutoTools . Đó là điều khác bạn có thể cần thêm, nhưng có lẽ hầu hết mọi phần mềm đều sử dụng chúng. AutoTools là một tập hợp các chương trình cực kỳ hữu ích - automake, autoconf và autoscan để đặt tên cho một số. Khi bạn biên dịch và cài đặt một chương trình với ./có hình && make && hãy cài đặt nổi tiếng sau đó các autotool được sử dụng để tự động xử lý nguồn, để chuẩn bị các tài nguyên khác có trong nguồn để cài đặt và trích xuất kết quả của quá trình biên dịch đến nơi thích hợp (để trả lời câu hỏi của bạn: Bản dựng sẽ trích xuất đến NHIỀU nơi riêng biệt. các tệp nhị phân sẽ chuyển đến / usr / local / bin, các tài liệu tới / usr / local / share / docs, v.v. Ngoài ra, một tệp nhị phân từ một gói sẽ đi đến những nơi khác nhau, chuyển các nhị phân sang / usr / bin. Với cách bố trí thư mục phức tạp này? Sử dụng AutoTools - nó sẽ tự động quan tâm đến nó và đó là lý do tại sao chúng rất hữu ích).

Xây dựng gói .deb có thể trông như một quá trình thực sự phức tạp, nhưng nó không khó lắm. Tôi thực sự khuyên bạn nên hướng dẫn chính thức cho Ubuntu để tạo các gói: http://packaging.ubfox.com

Đó là LỚN, nhưng bạn sẽ thấy bạn có thể bỏ qua hầu hết các phần của văn bản đó (tùy thuộc vào gói bạn sẽ xây dựng). Về cơ bản, quy trình đóng gói bao gồm các phần này (tất cả đều được giải thích rõ ràng trong Hướng dẫn) :

  1. Ban đầu một số công cụ được sử dụng để xây dựng các gói.
  2. Lấy nguồn
  3. Tạo thư mục ./debian và điền nó với dữ liệu cần thiết
  4. Xây dựng gói với debuild [Điều đó sẽ tạo một tập hợp các tệp, bao gồm * .dsc, * _source.build, * _source.changes, chịu trách nhiệm về dữ liệu về gói và cách xử lý (bạn cũng sẽ có một nguồn .tar.gz)]
  5. Kiểm tra xem mọi thứ có hoạt động hay không bằng cách chạy pbuilder cục bộ (sẽ lấy tất cả các tệp được đề cập ở trên và thử kết hợp chúng thành gói .deb, bằng cách tự động xây dựng nguồn với sự trợ giúp của AutoTools - đó là lý do tại sao chúng rất quan trọng để đóng gói [nói thẳng thắn - không - bạn có thể hòa thuận mà không có chúng hoặc với một số lựa chọn thay thế, nhưng đó là cách tiếp cận dễ dàng nhất và khác có thể yêu cầu một số thiết lập nâng cao, vì bạn sẽ cần hướng dẫn cho người xây dựng cách xây dựng nguồn (sử dụng tệp ./debian/rules ) - nhưng không dành cho người mới bắt đầu] ) - nếu bạn chỉ muốn nhận gói .deb, đã xong.

Bây giờ bạn sẽ phải tải nó lên PPA, được giải thích trên trang trợ giúp này: https://help.launchpad.net/Packaging/PPA/Uploading

  1. Sử dụng dput để tải các tệp này lên Launchpad
  2. Launchpad sẽ chạy pbuilder trên máy tính của họ và tạo các gói trong môi trường sạch
  3. Cuối cùng, các gói sẽ xuất hiện trong PPA.

Như bạn thấy việc tạo PPA không đơn giản như vậy . Nhưng đừng sợ hãi , điều đó cũng không khó. Hơn nữa, tôi khuyên bạn không nên khuyến khích các nhà phát triển sử dụng PPA, vì có lẽ họ sẽ không lắng nghe bạn, vì họ sẽ cần phải thực hiện một số công việc bổ sung (và nếu họ muốn họ đã làm điều đó rồi), nhưng bạn có thể muốn cố gắng hỗ trợ các nhà phát triển Ubuntu và toàn bộ cộng đồng và cung cấp cho họ các gói bạn đã chuẩn bị :)

Tôi chúc bạn may mắn với việc tạo các gói, hy vọng bạn sẽ thấy câu trả lời của tôi hữu ích :)

Bạn của bạn, Rafał Cieślak


Làm cách nào bạn có thể tạo PPA không phải Launchpad, được lưu trữ trên cơ sở hạ tầng của riêng bạn? Có phải nó chỉ là một máy chủ web đơn giản với cấu trúc thư mục phù hợp?
Giáo sư Moriarty

ví dụ brainf * ck có thực sự cần thiết?
Camden

5
  • Trước khi bạn có thể tải lên gói của mình, bạn sẽ cần thiết lập .debgói để đóng gói, hãy xem Ubuntu PackagingGuide .

  • Khi bạn có thể xây dựng gói cho phần mềm của mình, hãy xem tài liệu PPA của Launchpad . Nó sẽ hướng dẫn bạn từ việc tạo PPA đến tải lên gói của bạn.

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.