Chương 5. Các tệp khác trong thư mục debian

Mục lục

5.1. README.Debian
5.2. compat
5.3. conffiles
5.4. package.cron.*
5.5. dirs
5.6. package.doc-base
5.7. docs
5.8. emacsen-*
5.9. package.examples
5.10. package.initpackage.default
5.11. install
5.12. package.info
5.13. package.links
5.14. {package.,source/}lintian-overrides
5.15. manpage.*
5.15.1. manpage.1.ex
5.15.2. manpage.sgml.ex
5.15.3. manpage.xml.ex
5.16. package.manpages
5.17. NEWS
5.18. {pre,post}{inst,rm}
5.19. package.symbols
5.20. TODO
5.21. watch
5.22. source/format
5.23. source/local-options
5.24. source/options
5.25. patches/*

Để kiểm soát hầu hết những gì debhelper thực hiện khi xây dựng gói, bạn thêm các tệp cấu hình tuỳ chọn trong thư mục debian. Chương này sẽ cung cấp một cái nhìn tổng quan về những tệp tin này và định dạng của nó. Vui lòng tham khảo thêm Debian Policy ManualDebian Developer's Reference.

Lệnh dh_make sẽ tạo một số tệp cấu hình mẫu dưới thư mục debian. Hầu hết tên các tập tin có hậu tố là .ex. Một số chúng có các tên tệp bắt đầu bằng tên gói nhị phân như package. Hãy xem tất cả tại. [54]

Một số tệp cấu hình mẫu cho debhelper có thể không được tạo bởi lệnh dh_make. Trong các trường hợp này, bạn cần phải tự tạo chúng bằng trình soạn thảo.

Nếu bạn muốn hoặc cần kích hoạt bất kỳ tệp nào, hãy làm như sau:

Bất kỳ tệp tin cấu hình debhelper nào mà không có tiền tố package, chẳng hạn như install , sẽ áp dụng cho gói nhị phân đầu tiên. Khi có nhiều gói nhị phân, các cấu hình của chúng được xác định bằng các tệp chứa tiền tố là tên gói nhị phân đấy như package-1.install, package-2.install, vân vân.

Bất kỳ chi tiết bổ sung hoặc sự khác biệt giữa gói gốc ban đầu và phiên bản Debian của bạn nên được ghi lại ở đây

dh_make đã tạo ra một tệp mặc định, giống như thế này:

gentoo for Debian
-----------------
<possible notes regarding this package - if none, delete this file>
 -- Josip Rodin <joy-mg@debian.org>, Wed, 11 Nov 1998 21:02:14 +0100

Nếu bạn không có gì để ghi chú, hãy xoá tệp này. Xem dh_installdocs(1).

Tệp compat định nghĩa mức độ tương thích với debhelper. Hiện tại, bạn nên để nó là debhelper v10 như sau:

$ echo 10 > debian/compat

Bạn có thể sử dụng mức v9 trong trường hợp nhất định sự tương thích với các hệ thống cũ. Tuy nhiên, sử dụng bất kỳ mức nào dưới 9 là không khuyến kích và nên là bị chặn cho các gói mới.

Một trong những điều gây phiền phức nhất về phần mềm là khi bạn đã dành rất nhiều thời gian và nỗ lực để cấu hình một chương trình, và khi nâng cấp phần mềm thì mọi thay đổi của bạn bị đè. Debian giải quyết vấn đề này bằng cách gọi các tập tin cấu hình trong gói là conffiles. [55] Khi bạn nâng cấp một gói, bạn sẽ được hỏi rằng bạn có muốn giữ các tệp cấu hình cũ (hiện tại) hay không.

dh_installdeb(1) tự động đánh dâu bất kỳ tệp nào trong thư mục /etc là conffiles, vậy nếu chương trình của bạn có conffiles ở đây, bạn không cần thiết phải thêm chúng vào trong tệp này. Hầu hết các loại gói, nơi lưu trữ conffiles duy nhất nên là /etc, và vì thế tệp này không cần thiết phải tồn tại

Nếu chương trình của bạn sử dụng các tệp cấu hình nhưng cũng viết lại chúng như là cơ sở dư liệu, tốt nhất bạn không nên định nghĩa chúng là conffiles vì ​​dpkg sẽ nhắc nhở người dùng xác minh các thay đổi mọi lúc.

Nếu chương trình bạn đang đóng gói đòi hỏi mỗi người dùng chỉnh sửa các tập tin cấu hình trong thư mục /etc, có hai cách phổ biến để định nghĩ chúng không phải là conffiles, giữ dpkg yên tĩnh:

  • Tạo một liêt kết tượng trưng trong thư mục /etc trỏ tới tệp ở thư mục /var được sinh ra bởi maintainer scripts.

  • Tạo một tệp bở maintainer scripts dưới thư mục /etc.

Để biêt thêm thông tin về maintainer scripts, xem Phần 5.18, “{pre,post}{inst,rm}.

Nếu gói của bạn yêu cầu các tác vụ được lên lịch thường xuyên để hoạt động đúng, bạn có thể sử dụng các tệp này để làm điều đó. Bạn có thể thiết lập các tác vụ thường xuyên hoặc xảy ra hàng giờ, hàng ngày, hàng tuần, hàng tháng, hoặc bất cứ lúc nào bạn muốn. Các tên tập tin là:

  • package.cron.hourly - Được cài đặt tại /etc/cron.hourly/package; chạy mỗi giờ một lần.

  • package.cron.daily - Được cài đặt tại /etc/cron.daily/package; chạy mỗi ngày một lần.

  • package.cron.weekly - Được cài đặt tại /etc/cron.weekly/package; chạy mỗi tuần một lần.

  • package.cron.monthly - Được cài đặt tại /etc/cron.monthly/package: chạy mỗi tháng một lần.

  • package.cron.d - Được cài đặt tại /etc/cron.d/package: cho bất kỳ thời gian khác.

Hầu hết các tệp này là kịch bản shell, ngoại trừ tệp trong package.cron.d tuân thủ theo định dạng của crontab(5).

Không cần chỉ định tệp cron.* cho cài đặt ghi chép nhật ký (log rotation); để làm điều này, xem dh_installlogrotate(1) and logrotate(8).

Tệp này chỉ định bất kỳ thư mục nào chúng ta cần nhưng không tạo theo quy trình cài đặt thông thường (make install DESTDIR=... được gọi bởi dh_auto_install). Điều này có nghĩa sẽ có vấn đề với Makefile.

Các tệp này được liệt kê trong tệp install không cần thư mục của chúng đuợc tạo trước. Xem Phần 5.11, “install.

Tốt nhất là thử cài đặt trước và chỉ sửa dụng điều này nếu bạn gặp rắc rối. Không có dấu gạch chéo trước tên thư mục được liệt kê trong dirs

Nếu gói của bạn có tài liệu khác với trang hướng dẫn sử dụng và thông tin (man, info), bạn nên sử dụng tệp doc-base để đăng ký, để người dùng có thể tìm thấy nó bằng như: dhelp(1), dwww(1), or doccentral(1).

Thường bao gồm các tệp HTML, PS và PDF, được đặt tại /usr/share/doc/packagename/.

Đây là tệp doc-base của gói gentoo gentoo.doc-base trong giống như sau:

Document: gentoo
Title: Gentoo Manual
Author: Emil Brink
Abstract: This manual describes what Gentoo is, and how it can be used.
Section: File Management
Format: HTML
Index: /usr/share/doc/gentoo/html/index.html
Files: /usr/share/doc/gentoo/html/*.html

Thông tin về định dạng tệp tin này, xem install-docs(8) và the Debian doc-base manual ở bản copy /usr/share/doc/doc-base/doc-base.html/index.html trên máy của bạn được cung cấp bởi gói doc-base .

Để biết thêm chi tiết về cài đặt tài liệu bổ sung, vui lòng xem Phần 3.3, “Cài đặt các tệp tin đến đích của chúng”

Tệp này chỉ định tên tệp của các tệp tài liệu mà chúng ta có thể dh_installdocs(1) cài đặt vào thư mục tạm thời cho chúng.

Mặc định, nó sẽ bao gồm tất cả các tệp tồn tại ở trong thư mục top-level (không tính thư mục con) của mã nguồn bao gồm BUGS, README*, TODO vân vân.

Cho gentoo, vài tệp tin cũng được bao gồm:

BUGS
CONFIG-CHANGES
CREDITS
NEWS
README
README.gtkrc
TODO

Nếu gói của bạn cung cấp các tệp Emacs có thể được cài tại thời điểm cài đặt gói, bạn có thể sử dụng những tệp này để thiết lập nó.

Chúng được cài đặt vào thư mục tạm thời bởi dh_installemacsen(1).

Nếu bạn không cần, hãy xoá chúng đi

Lệnh dh_installexamples(1) cài các tệp và thư mục được liệt kê trong tệp này như là các tệp mẫu.

Nếu gói của bạn là một daemon cần được chạy tại thời điểm start-up của hệ thống, bạn bỏ qua đề xuất ban đầu của mình, phải không ?

Tệp package.init được cài đặt vào kịch bản /etc/init.d/package mà có thể starts và stops tiếng trình daemon. Một bộ khung mẫu được cung cấp bởi lệnh dh_makeinit.d.ex. Bạn sẽ có thể phải đổi tên và chỉnh sửa nó, khá nhiều, trong khi đảm bảo cung cấp header phù hợp với Linux Standard Base (LSB). Nó được cài đặt vào thư mục tạm thời bởi dh_installinit(1).

Tệp package.default sẽ được cài đặt vào /etc/default/package. Tệp này cài đặt mặc định được sử dụng bởi kịch bản init. Tệp package.default thường được sử dụng để vô hiệu hoá một daemon đang chạy, hoặc cài đặt vài tuỳ chọn mặc định hoặc độ trê. Nếu kịch bản init của bạn có các tính năng cấu hình nhất định, bạn có thể cài chúng vào tệppackage.default, thay vì viết trực tiếp vào chính kịch bản init.

Nếu chương trình của bạn cung cấp một tệp cho kịch bản init, bạn cũng có thể sử dụng nó hoặc không. Nếu bạn không sử dụng kịch bản init của họ thì hãy tạo một tệp là package.init. Tuy nhiên nếu kịch bản init của thượng nguồn trông ổn và để đúng vị trí, bạn vẫn cần cài đặt liên kết tượng trưng rc*. Để làm điểu này bạn cần phải ghi đè dh_installinit trong tệp rules với các dòng sau:

override_dh_installinit:
        dh_installinit --onlyscripts

Nếu bạn không cần nó, hãy xoá những tệp này.

Nếu những tệp tin này cần được cài đặt vào trong gói của bạn nhưng make install của bạn sẽ không làm điều đó. Vậy hãy đặt các tên tập tin và đích của nó vào tệp install này, chúng sẽ được cài đặt bởi dh_install(1).[56] Bạn nên kiểm tra có hay không cách khác cụ thể hơn để sử dụng trước. Ví dụ, các tài liệu nên đặt ở docs chứ không phải trong tệp này.

Mỗi dòng trong tệp install thể hiện cho mỗi tệp được cài đặt, mỗi dòng bắt đầu với tên của tệp nguồn (tương đối với thư mục build) sao đó một dấu cách (phím space) và tiếp theo là vị trí thư mục đích sẽ được cài đặt (tương đối với thư mục cài đặt). Một ví dụ như tệp nhị phân src/bar muốn cài đặt; tệp install trông giống như sau:

src/bar usr/bin

Nghĩa là khi gói này được cài đặt, sẽ có một lệnh thực thi ở /usr/bin/bar.

Ngoài ra, tệp install có thể chứa tên của tệp tin mà không có thư mục đích để cài đặt khi thư mục tương đối không thay đổi. Định dạng này thường được sử dụng cho một gói lớn phân chia đầu ra của gói của nó thành nhiều gói nhị phân bằng cách sử dụng package-1.install, package-2.install, vân vân.

Lệnh dh_install sẽ tìm laị trong thư mục debian/tmp, nếu nó không tìm thấy chúng trong thư mục hiện tại, (hoặc bạn đã nói với nó qua tuỳ chọn --sourcedir).

Nếu gói của bạn có các trang thông tin, bạn nên cài chúng bởi dh_installinfo(1) bằng cách liệt kê chúng trong tệp package.info.

Nếu bạn cần tạo các liên kết tượng trưng trong thư mục gói như người bảo trì gói, bạn nên cài chúng bởi dh_link(1) bằng cách liệt kê đường dẫn đầy đủ của nguồn và đích trong tệp package.links.

Nếu chương trình lintian báo có một chuẩn đoán về lỗi cho trường hợp khi Debian policy chấp nhận ngoại lệ cho một số quy tắc, bạn có thể sử dụng tệp package.lintian-overrides hoặc source/lintian-overrides để không còn báo lỗi từ lintian. Vui lòng đọc Lintian User's Manual (https://lintian.debian.org/manual/index.html) và tránh lạm dụng điều này.

package.lintian-overrides cho gói nhị phân có tên là package và được cài đặt vào usr/share/lintian/overrides/package bởi lệnh dh_lintian.

source/lintian-overrides là cho gói nguồn. Nó không phải cho cài đặt.

Các chương trình của bạn nên có một trang hướng dẫn (manual page). Nếu không có, bạn có thể tạo mới chúng. Lệnh dh_make tạo vài mẫu tệp cho các trang hướng dẫn. Chúng cần được sao chép và chỉnh sửa cho mỗi lệnh thiếu trong trang hưỡng dẫn. Vui lòng đảm bảo xoá các mẫu không sử dụng.

Các trang hướng dẫn thường viết bằng nroff(1). Mẫu manpage.1.ex cũng được viết bằng nroff. Xem trang hướng dẫn man(7) để biết mô tả ngắn gọn về cách chỉnh sửa tệp đó.

Cuối cùng, tên của tệp trang hướng dẫn nên là tên của chương trình mà tệp đó mô tả, vậy chúng ta sẽ đổi tên nó từ manpage thành gentoo. Tên tệp cũng bao gồm .1 là đuôi cho loại một, điều đó có nghĩa là một trang hướng dẫn cho lệnh của người dùng. Hãy chắc chắn xác minh rằng mục này chính xác.Đây là một danh sách ngắn của các mục:

Vì vậy trang man của gentoo nên được gọi là gentoo.1. Nếu không có tệp gentoo.1 trong thượng nguồn, bạn nên tạo nó bằng cách đổi tên template manpage.1.ex thành gentoo.1 và chỉnh sửa nó bằng cách sử dụng thông tin từ các ví dụ và tài liệu thượng nguồn.

Bạn có thể sử dụng lệnh help2man để tạo một manpage mới, help2man sử dụng các dữ liệu từ tuỳ chọn --help--version của chương trình để tạo ra manpage. [57]

Nếu gói của bạn có các trang hướng dẫn, bạn nên cài đặt chúng bởi dh_installman(1) bằng cách liệt kê chúng trong tệp package.manpages.

Để cài đặt docs/gentoo.1 như một tệp manpage cho gói gentoo, hãy tạo tệp gentoo.manpages như sau:

docs/gentoo.1

Lệnh dh_installchangelogs(1) sẽ cài đặt điều này.

Các tệp postinst, preinst, postrmprerm [58] được gọi là maintainer scripts. Chúng là các kịch bản được đặt trong vùng điều khiển của gói và sẽ được chạy bởi dpkg khi gói của bạn được cài đặt, nâng cấp hoặc xóa.

Là một chuyên gia bảo trì, bạn nên tránh bất kỳ chỉnh sửa thủ công các tập lệnh bảo trì vì chúng dễ xảy ra vấn đề. Để biết thêm thông tin, hãy tham khảo Debian Policy Manual, 6 "Package maintainer scripts and installation procedure", và xem các tệp ví dụ được cung cấp bởi dh_make.

Nếu bạn không lắng nghe tôi và đã tạo ra tập lệnh bảo trì tuỳ chỉnh cho một gói, bạn nên chắc chắn kiểm tra chúng không chỉ với installupgrade mà còn removepurge.

Nâng cấp lên phiên bản mới nên silent (lặng lẽ, ổn định) và không phá vỡ (để các người dùng không cần chú ý nâng cấp ngoại trừ việc phát hiện ra rằng lỗi cũ đã được khắc phục và có thể có các tính năng mới).

Khi sự nâng cấp cần thiết việc xâm nhập (ví dụ: các tập tin cấu hình rải rác thông qua các thư mục chính của người dùng với cấu trúc hoàn toàn khác), và bạn có thể coi đây là phương án cuối cùng để chuyển gói sang trạng thái dự phòng an toàn (ví dụ như vô hiệu hóa dịch vụ) và cung cấp tài liệu thích hợp theo yêu cầu của chính sách (README.DebianNEWS.Debian). Đừng làm phiền người dùng với các câu hỏi debconf được gọi từ các tập lệnh bảo trì để nâng cấp.

Gói ucf cung cấp conffile-like xử lý hạ tầng để ngăn người dùng thay đổi các tệp mà không được gắn nhãn conffiles chẳng hạn như những tài liệu được quản lý bởi các kịch bản bảo trì. Điều này sẽ giảm thiếu các vấn đề phát sinh.

Các kịch bản bảo trì nằm trong số các cải tiến Debian nhằm giải thích tại sao mọi người chọn Debian. Bạn phải thật cẩn thận để không biết chúng thành nguồn gây phiền toái.

Việc đóng gói một thư viện là không dễ dàng cho người bảo trì mới làm quen và nên tránh. Còn nếu gói của bạn có các thử viện, bạn nên có tệp debian/package.symbols. Xem Phần A.2, “Quản lý debian/package.symbols.

Lệnh dh_installdocs(1) cài đặt tệp này.

Định dạng tệp watch là tài liệu uscan(1). Tệp watch cấu hình chương trình uscan (có trong gói devscripts) để theo dõi trang web mà bạn lấy nguồn. Nó cũng được sử dụng bởi dịch vụ Debian Package Tracker.

Đây là nội dung của nó:

# watch control file for uscan
version=3
http://sf.net/gentoo/gentoo-(.+)\.tar\.gz debian uupdate

Thông thường với một tệp watch, đường dẫn URL tại http://sf.net/gentoo được tải về và tìm kiểm cho các liên kết theo biểu mẫu <a href=...>. Tên (phần phía sau của đường dẫn /) của mỗi liên kết URL được so sánh với mẫu biểu thức chính quy Perl (xem perlre(1))gentoo-(.+)\.tar\.gz. Trong số các tệp phù hợp, tệp đượctải xuống có số phiên bản lớn nhất và chương trình uupdateđược chạy để tạo một bản nguồn đã được cập nhật.

Mặc dù điều này là đúng cho vài trang web, dịch vụ tải của SourceForge tại http://sf.net là một ngoại lệ. Khi tệp watch chứa một đường dẫn URL khớp với biểu thức chính quy Perl ^http://sf\.net/, chương trình uscan thay thế nó với http://qa.debian.org/watch/sf.php/ và sau đó áp dụng quy tắc này. Dịch vụ chuyển hướng URL tại http://qa.debian.org/ được thiết kế để cung cấp dịch vụ ổn định đến tệp mong muốn với bất kỳ watch mẫu biểu thức http://sf.net/project/tar-name-(.+)\.tar\.gz. Điều này giải quyết các vấn đề liên quan đế thay đổi định kỳ các đường dẫn SourceForge.

Nếu thượng nguồn cung cấp chữ ký mật mã của tarball, bạn nên xác minh tính xác thực của nó bằng cách sử dụng tùy chọn pgpsigurlmangle như mô tả trong uscan(1).

Trong tệp debian/source/format, nên có một dòng chỉ định định dạng mong muốn cho gói nguồn (kiểm tra dpkg-source> (1) để có danh sách đầy đủ). Sau phiên bản squeeze, cần chỉ ra rằng:

  • 3.0 (native) cho các gói Debian native hoặc

  • 3.0 (quilt) cho mọi thứ khác.

Định dạng 3.0 (quilt) mới sẽ ghi lại các sửa đổi trong một loạt bản vá lỗi quilt trong thư mục debian/patches . Những thay đổi này sau đó sẽ tự động được áp dụng trong quá trình giải nén gói nguồn. [59] Các sửa đổi Debian chỉ đơn giản được lưu trữ trong kho lưu trữ debian.tar.gz chứa tất cả các tệp tin trong thư mục debian. Định dạng mới này hỗ trợ đưa các tệp tin nhị phân như các biểu tượng PNG của người bảo trì gói mà không yêu cầu thủ thuật. [60]

Khi dpkg-source giải nén một gói nguồn trong định dạng nguồn 3.0 (quilt), nó sẽ tự động áp dụng tất cả các bản vá được liệt kê trong debian patches/series. Bạn có thể bỏ qua việc áp dụng các bản vá ở cuối quá trình giải nén với tùy chọn --skip-patches.

Khi bạn muốn quản lý các hoạt động đóng gói Debian bằng VCS, bạn thường tạo một nhánh (ví dụ. upstream) để theo dõi thượng nguồn và một nhánh khác (thường là master đối với Git) để theo dõi gói Debian. Đối với trường hợp thứ hai, bạn thường xuyên muốn có thượng nguồn chưa được vá lỗi với các tệp của bạn debian/* để dễ dàng hợp nhất với mã nguồn mới của thượng nguồn.

Sau khi bạn xây dựng một gói, nguồn thường đã được vá. Bạn cần phải gỡ vá bằng tay bằng cách chạy dquilt pop -a trước khi đẩy hết vào nhánh master. Bạn có thể tự động hóa việc này bằng cách thêm tệp tin tuỳ chọn debian/source/local-options để chứa các unapply-patches. Tệp này không được bao gồm trong gói nguồn đã tạo và chỉ thay đổi hành vi xây dựng cục bộ. Tệp này có thể chứa abort-on-upstream-changes, (xem thêm dpkg-source ( 1 )).

unapply-patches
abort-on-upstream-changes

Các tệp được tự động sinh trong cây nguồn có thể gây khó chịu cho đóng gói vì chúng tạo ra các tệp vá lỗi không có ý nghĩa. Có các mô đun tùy chỉnh như dh_autoreconf nhằm giải quyết các vấn đề này như mô tả trong Phần 4.4.3, “Tuỳ chỉnh tệp rules.

Bạn có thể cung cấp một biểu thức chính quy Perl là đối số của tùy chọn --extend-diff-ignore khi chạy dpkg-source (1) để bỏ qua các thay đổi được thực hiện đối với các tệp được tạo tự động trong khi tạo gói nguồn.

Như một giải pháp chung để giải quyết vấn đề của các tệp tự động tạo mới, bạn có thể lưu trữ một đối số tùy chọn dpkg-source trong tệp tin source/options . Ví dụ sau sẽ bỏ qua việc tạo tệp vá cho config.sub, config.guessMakefile.

extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

Định dạng nguồn cũ 1.0 tạo một tệp diff.gz duy nhất có chứa tệp bảo trì gói trong debian và các tệp vá cho nguồn. Một gói như vậy hơi rườm rà để kiểm tra và hiểu cho mỗi thay đổi cây nguồn sau đó. Vì thế đây không phải định dạng tốt.

Định dạng mới 3.0 (quilt) sẽ lưu các bản vá lỗi vào các tệp debian/patches/* bằng cách sử dụng công cụ quilt. Các bản vá này và các dữ liệu gói khác nằm trong thư mục debian được đóng gói dưới dạng tệp debian.tar.gz. Do lệnh dpkg-source có thể xử lý dữ liệu vá lỗi định dạng của quilt trong định dạng 3.0 (quilt) mà không cần tới gói quilt, nó không cần quilt ở trong mục Build-Depends. [61]

Lệnh quilt được giải thích trong quilt(1). Nó ghi chép lại các thay đổi của mã nguồn và tạo thành các bản vá -p1 trong thư mục debian/patches và cây mã nguồn không bị ảnh hưởng ngoại trừ thư mục debian. Trình tự áp dụng bản vá được ghi lại tại tệp debian/patches/series. Bạn có thể áp dụng (=push), un-apply (=pop), và làm mới một các dễ dàng. [62]

Đối với Chương 3, Sửa đổi mã nguồn, chúng tôi đã tạo ba bản vá lỗi trong debian/patches.

Vì các bản vá lỗi của Debian được đặt trong debian/patches, hãy đảm bảo thiết lập lệnh dquilt đúng như mô tả trong Phần 3.1, “Cài đặt quilt.

Khi mọi người (kể cả bạn) cung cấp một bản vá lỗi mới foo.patch cho mã nguồn, áp dụng cho mã nguồn định dạng gói nguồn 3.0 (quilt) khá đơn giản:

$ dpkg-source -x gentoo_0.9.12.dsc
$ cd gentoo-0.9.12
$ dquilt import ../foo.patch
$ dquilt push
$ dquilt refresh
$ dquilt header -e
... describe patch

Các bản vá được lưu trữ trong phiên bản mới 3.0 (quilt) phải là fuzz tự do. Bạn có thể đảm bảo điều này với dquilt pop -a; while dquilt push; do dquilt refresh; done.



[54] Trong chương này, các tệp tin trong thư mục debian được đề cập đến mà không có debian/ để đơn giản hóa bất cứ khi nhắc tới.

[56] Tệp này sẽ thay thế lệnh dh_movefiles(1) không được dùng nữa, được cấu hình bởi tệp files .

[57] Lưu ý rằng lệnh help2mansẽ yêu cầu nhiều tài liệu chi tiết hơn có sẵn trong hệ thống info. Nếu thiếu lệnh này trong trang info, bạn nên tạo nó bằng cách sử dụng lệnh help2man.

[58] Mặc dù việc sử dụng biểu thức viết tắt bash {pre,post}{inst,rm} để chỉ ra các tệp này, bạn nên sử dụng cú pháp POSIX cho các maintainer scripts tương thích với dash như trình shell của hệ thống

[59] Xem DebSrc3.0 để biết tổng quan việc chuyển đổi sang các địng dạng mã nguồn mới 3.0 (quilt) and 3.0 (native).

[60] Trên thực tế, định dạng mới này cũng hỗ trợ nhiều tarballs thượng nguồn và các phương pháp nén khác. Những điều này nằm ngoài phạm vi của tài liệu này.

[61] Một số phương pháp bảo trì bộ vá đã được đề xuất và đang được sử dụng cho các gói Debian. Hệ thống quilt là hệ thống bảo trì được ưa thích sử dụng. Các hệ thống khác bao gồm dpatch, dbs, và cdbs. Nhiều trong số này giữ các bản vá như các tệp tin debian/patches/*.

[62] Nếu bạn đang yêu cầu một nhà tài trợ để tải lên gói của bạn, cầm làm rõ ràng và viết tài liệu của những thay đổi của bạn là rất quan trọng để tiến hành xem xét gói bởi nhà tài trợ.