Làm cách nào để đóng gói Debian tạo hai gói được lưu trữ nguồn ngược dòng?


14

Tôi đang đóng gói một cái gì đó cho PPA của tôi. Nguồn ngược dòng là một .tar.gzkho lưu trữ dựa trên Makefile.

Vì gói này có một lượng dữ liệu độc lập với kiến ​​trúc đáng kể, nên sẽ có các tập lệnh xây dựng tạo ra hai gói:

  • gói
  • gói -data

Làm thế nào tôi có thể thiết lập này? Tôi đã chỉnh sửa Debian của mìnhcontrol tệp để tạo hai gói, nhưng tôi không biết làm cách nào để lấy đúng tệp vào đúng gói.

Vì các tệp dữ liệu hiện đang được cài đặt thông qua Makefile, nên tôi bị mất ở đây.

Câu trả lời:


14

Đây là nơi tôi luôn thấy thiếu tài liệu. Tôi gần như chỉ học được cách thức hoạt động của nó bằng cách xem xét cách nó được thực hiện trong các gói khác. Như với hầu hết mọi thứ trong bao bì Debian, có một vài cách để làm điều này. Tôi thấy cách đơn giản nhất là sử dụng debian/package.installtập tin. Đây là một ví dụ về gói tôi đã làm việc, trí tưởng tượng (chi nhánh bzr) .

Đầu tiên, chúng ta cần tạo gói trong debian/control. Có ba khổ thơ bây giờ. Một cho gói nguồn và một cho mỗi gói nhị phân. Lưu ý rằng gói dữ liệu foo nên được Architecture: all. Cũng lưu ý rằng trí tưởng tượng phụ thuộc vàoimagination-common (= ${source:Version}) .

Tiếp theo, chúng tôi tạo một debian/imagination.installtập tin. Điều này chứa các tệp hoặc đường dẫn cụ thể mà chúng tôi muốn kết thúc trong gói trí tưởng tượng. Đối với gói này, chúng tôi muốn tất cả các tệp phụ thuộc kiến ​​trúc. Các tập tin máy tính để bàn được bao gồm vì nó cần phải nói với nhị phân mà nó gọi trong Exec:dòng của nó .

usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop

Chúng ta cần tạo một debian/imagination-common.installtập tin. Điều này sẽ chứa tất cả các tệp độc lập về kiến ​​trúc, hình ảnh, bản dịch, tài liệu và những thứ tương tự.

/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/

man dh_install mô tả những gì thực sự đang diễn ra ở đây:

có thể bạn có một gói lớn xây dựng nhiều gói nhị phân. Bạn có thể sử dụng Makefile ngược dòng để cài đặt tất cả vào debian / tmp, sau đó sử dụng dh_install để sao chép các thư mục và tệp từ đó vào các thư mục xây dựng gói thích hợp.

Điều đó có nghĩa là "các thư mục xây dựng gói phù hợp" là vào cuối quá trình xây dựng, mọi thứ sẽ có trong kết quả foo.debsẽ được tìm thấy src/debian/foo. Các tập tin sẽ kết thúc foo-data.debsẽ được tìm thấy trong src/debian/foo-data. Về debian/rulescơ bản chỉ là một Makefile, bạn có thể bắt đầu tưởng tượng ra những cách khác để có được kết quả tương tự.


Cảm ơn bạn rất nhiều! Giải thích rất rõ ràng và hoạt động hoàn hảo.
Nathan Osman
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.