Tôi đã chiến đấu với gói Python cho Ubuntu/Debian trước đó, và tôi đồng ý, tài liệu là một mớ hỗn độn/không tồn tại/gây hiểu lầm: chúng thực sự cần hướng dẫn nhanh cho tình huống đơn giản nhất có thể.
Vâng, đây rồi!
Cài đặt công cụ của bạn. Đây có thể là quá mức cần thiết, mặc dù:
sudo apt-get install build-essential python-all dh-make devscripts fakeroot
Bắt đầu với mã của bạn kiểm tra ra vào một thư mục có tên $packagename-$version
, như library_name-0.6.0/
, và cd
vào thư mục đó. Chạy một cái gì đó như dh_make -i -c gpl3 -e [email protected]
(xem dh_make --help
để biết các tùy chọn khác). Nếu mọi thứ suôn sẻ, bạn sẽ không nhận được lỗi nào và nó sẽ tạo ra một tải các tệp trong ./debian
. Bạn có thể bỏ qua hoặc xóa ./debian/*.{ex,EX}
; đó chỉ là những ví dụ.
Bạn có lẽ nên kiểm tra tất cả các tệp này tại một số thời điểm, nhưng ít nhất, bạn cần cần để chỉnh sửa ./debian/control
và ./debian/rules
. Bạn nên điền vào tất cả các lĩnh vực templately trong kiểm soát, cụ thể là Description
và Homepage
.Thay đổi dòng Package
-python-$libname
thay đổi dòng Depends
của bạn trong control
này:
Depends: ${misc:Depends}, ${python:Depends}
Nó đảm bảo rằng chúng tôi nhị phân gói python-$libname
phụ thuộc vào phiên bản của Python nó cần. (${python:Depends} is a "substvar"; they're created when we build; you can inspect their values after your first build in
./Debian/$ packagename.substvars`.)
Thay đổi dòng trong rules
từ dh [email protected]
để dh [email protected] --with python2
, bảo tồn các tab ở phía trước (đó là một Makefile). Điều này gây ra debhelper để sử dụng addon python2 của nó; mặc định là vẫn sử dụng pysupport (không được dùng nữa, nhớ không?).
Sau đó, chạy lệnh sau đây trong thư mục gốc nguồn:
debuild -us -uc
này được xây dựng gói, mà không cần đăng nó (cái gì đó bạn nên học cách làm sau!). Bạn sẽ thấy một số dòng thiết lập quen thuộc (hai lần: một lần cho 2.6, một lần cho 2.7), đống dh_ addons, và xây dựng cruft khác. Cuối cùng là đầu ra của lintian, có thể phát hiện một số vấn đề bao bì phổ biến; bạn nên sửa chúng. Rất nhiều thứ mà lintian và bạn bè phàn nàn chỉ là tuân thủ các quy tắc đóng gói và nếu lib của bạn chỉ là nội bộ, hãy thoải mái chơi nó.
Bằng cách này, This page talks about the deprecation of python-support
and python-central
là gói của bạn tương thích với cả 2.x và 3.x? Đó là, bạn đang nhắm mục tiêu cả hai? – nfirvine
@nfirvine: 2,6 + 2,7 –