Chương 1. Bắt đầu Đúng cách

Mục lục

1.1. Động lực xã hội của Debian
1.2. Các chương trình cần thiết cho sự phát triển
1.3. Tài liệu cần thiết cho sự phát triển
1.4. Nơi để yêu cầu trợ giúp

Tài liệu này mô tả việc xây dựng một gói Debian cho người dùng Debian bình thường và các nhà phát triển tiềm năng. Nó sử dụng ngôn ngữ khá phi kỹ thuật, và được mô tả với các ví dụ. Có một câu nói Latin cổ đại: Longum iter est per praecepta, breve et efficax per exempla (Đó là một chặng đường dài bởi các quy tắc, nhưng ngắn và hiệu quả với các ví dụ).

Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers. Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính.

Tài liệu này đã được cập nhật cho bản phát hành Debian jessie. [1]

Một trong những điều làm cho Debian trở thành một hệ thống gói phần mềm hàng đầu. Mặc dù có một lượng lớn phần mềm đã có trong định dạng Debian, đôi khi bạn cần phải cài đặt phần mềm mà nó không có. Bạn tự hỏi làm thế nàođể bạn có thể tạo gói cho riêng bạn; Và có lẽ bạn nghĩ đó là một nhiệm vụ rất khó khăn. Vâng, nếu bạn là người mới làm quen trên Linux, thật khó, nhưng nếu bạn là một tân binh, bạn sẽ không đọc tài liệu này bây giờ  :-) Bạn cần biết một chút về lập trình Unix nhưng bạn chắc chắn không cần phải là một cao thủ. [2]

Tuy nhiên một điều chắc chắn là: để tạo và duy trì đúng các gói Debian phải mất nhiều giờ. Không mắc sai lầm, vì hệ thống của chúng tôi làm việc bảo trì cần phải có cả kỹ thuật có thẩm quyền và cả sự siêng năng.

Nếu bạn cần trợ giúp về đóng gói, vui lòng đọc Phần 1.4, “Nơi để yêu cầu trợ giúp”.

Các phiên bản mới hơn của tài liệu này luôn sẵn sàng trực tuyến tại http://www.debian.org/doc/maint-guide/ và trong gói maint-guide. Bản dịch có thể có sẵn trong các gói như maint-guide-es. Xin lưu ý rằng tài liệu này có thể đã lỗi thời.

Vì đây là một hướng dẫn, tôi chọn để giải thích từng bước chi tiết cho một số chủ đề quan trọng. Một số người trong số họ có thể không có liên quan đến bạn. Làm ơn hãy kiên nhẫn. Tôi cũng đã cố ý bỏ qua một số trường hợp góc và chỉ cung cấp con trỏ để giữ tài liệu này đơn giản.

Dưới đây là một số quan sát về động lực xã hội của Debian, được trình bày với hy vọng rằng nó sẽ chuẩn bị cho bạn tương tác với Debian:

  • Tất cả chúng ta đều là tình nguyện viên.

    • Bạn không thể áp đặt lên những người khác phải làm gì.

    • Bạn nên có động cơ để làm việc một mình.

  • Hợp tác thân thiện là động lực.

    • Đóng góp của bạn không nên quá căng thẳng người khác.

    • Đóng góp của bạn chỉ có giá trị khi những người khác đánh giá cao nó.

  • Debian không phải là trường học của bạn mà bạn nhận được sự chú ý tự động của giáo viên.

    • Bạn sẽ có thể tự học hỏi nhiều điều.

    • Sự chú ý của các tình nguyện viên khác là một nguồn lực khan hiếm.

  • Debian đang không ngừng cải tiến.

    • Bạn sẽ phải tạo ra các gói chất lượng cao.

    • Bạn nên thích nghi với chính mình để thay đổi.

Có nhiều người tương tác với Debian với các vai trò khác nhau:

  • upstream author: người đã tạo ra chương trình gốc.

  • upstream maintainer: người hiện đang duy trì bảo trì chương trình gốc.

  • maintainer: người tạo ra gói Debian cho chương trình.

  • sponsor: một người giúp đỡ người bảo trì tải các gói lên kho lưu trữ Debian chính thức (sau khi kiểm tra nội dung của chúng).

  • mentor: người giúp những người mới làm quen với bảo trì gói vv

  • Debian Developer (DD): thành viên của dự án Debian với quyền tải đầy đủ lên kho lưu trữ Debian chính thức.

  • Debian Maintainer (DM): người có quyền tải lên giới hạn về kho lưu trữ gói Debian chính thức.

Xin lưu ý rằng bạn không thể trở thành một Debian Developer (DD) chính thức qua 1 đêm, vì nó đòi hỏi nhiều kỹ năng hơn. Xin đừng nản lòng vì điều này. Nếu nó là hữu ích cho người khác, bạn vẫn có thể tải gói của bạn hoặc như là một maintainer thông qua một sponsor hoặc như một Debian Maintainer.

Xin lưu ý rằng bạn không cần tạo bất kỳ gói mới nào để trở thành Nhà phát triển Debian chính thức. Đóng góp cho các gói hiện có cũng có thể cung cấp một con đường để trở thành Nhà phát triển Debian chính thức. Có nhiều gói đang chờ người bảo dưỡng tốt (xem Phần 2.2, “Chọn chương trình của bạn”).

Vì chúng ta chỉ tập trung vào các khía cạnh kỹ thuật của đóng gói trong tài liệu này, vui lòng tham khảo những điều dưới đây để tìm hiểu cách các chức năng của Debian và cách bạn có thể tham gia:

Trước khi bạn bắt đầu bất cứ điều gì, bạn nên chắc chắn rằng bạn đã cài đặt đúng một số gói bổ sung cần thiết cho sự phát triển. Lưu ý rằng danh sách không chứa bất kỳ gói nào được đánh dấu essential hoặc required - chúng tôi mong rằng bạn đã cài đặt xong.

Các gói sau đi kèm với cài đặt Debian tiêu chuẩn, do đó có lẽ bạn đã có chúng rồi (cùng với bất kỳ gói bổ sung nào mà chúng phụ thuộc). Tuy nhiên, bạn nên kiểm tra chúng bằng gói aptitude show pakage hoặc với dpkg -s package.

Gói phần quan trọng nhất để cài đặt trên hệ thống phát triển của bạn là gói build-essential. Một khi bạn cố gắng cài đặt nó, nó sẽ pull in gói khác cần thiết để có một môi trường xây dựng cơ bản.

Đối với một số loại bao bì, đó là tất cả những gì bạn cần; Tuy nhiên, có một bộ gói khác mà mặc dù không cần thiết cho tất cả các gói được xây dựng rất hữu ích để cài đặt hoặc có thể được yêu cầu bởi gói của bạn:

Các mô tả ngắn được đưa ra ở trên chỉ phục vụ để giới thiệu cho bạn những gì mỗi gói thực hiện. Trước khi tiếp tục, hãy đọc tài liệu của mỗi chương trình có liên quan, bao gồm cả những chương trình được cài đặt thông qua sự phụ thuộc gói như make, ít nhất, cho việc sử dụng tiêu chuẩn. Có vẻ như bây giờ kiến thức khá nặng, nhưng sau đó bạn sẽ rất vui vì bạn đã đọc nó. Nếu bạn có câu hỏi cụ thể sau này, tôi sẽ đề nghị đọc lại các tài liệu đã đề cập ở trên.

Sau đây là tài liệu rất quan trọng mà bạn nên đọc cùng với tài liệu này:

  • debian-policy - Debian Policy Manual bao gồm các giải thích về cấu trúc và nội dung của kho lưu trữ Debian, một số vấn đề thiết kế hệ điều hành, Filesystem Hierarchy Standard (FHS, nơi mà mỗi tập tin và thư mục phải là),vv .Đối với bạn, điều quan trọng nhất là nó mô tả các yêu cầu mà mỗi gói phải đáp ứng để được đưa vào trong phân phối. (Xem bản sao địa phương của /usr/share/doc/debian-policy/policy.pdf.gz and /usr/share/doc/debian-policy/fhs/fhs-2.3.pdf.gz.)

  • developer-reference - Debian Developer's Refrence mô tả tất cả các vấn đề không cụ thể về các chi tiết kỹ thuật của gói, như cấu trúc của kho lưu trữ, cách đổi tên, mồ côi, hoặc nhận các gói, làm thế nào để làm NMUs, làm thế nào để quản lý lỗi, cách thức đóng gói tốt nhất, khi nào và ở đâu để tải lên vv (Xem bản sao của địa phương của /usr/share/doc/developers-reference/developers-reference.pdf.)

Sau đây là tài liệu quan trọng mà bạn nên đọc cùng với tài liệu này:

Nếu tài liệu này mâu thuẫn với bất kỳ tài liệu nào được đề cập ở trên, nếu chúng là đúng. Vui lòng gửi một báo cáo lỗi trên maint-guide gói bằng cách sử dụng reportbug.

Sau đây là một tài liệu hướng dẫn thay thế mà bạn có thể đọc cùng với tài liệu này:

Trước khi bạn quyết định đặt câu hỏi của mình ở nơi công cộng, vui lòng đọc tài liệu tốt

Bạn có thể sử dụng công cụ tìm kiếm web hiệu quả hơn bằng cách bao gồm các chuỗi tìm kiếm như site:lists.debian.org để hạn chế tên miền.

Làm một gói thử nghiệm nhỏ là một cách hay để tìm hiểu chi tiết về đóng gói. Kiểm tra các gói đã được duy trì tốt hiện tại là cách tốt nhất để tìm hiểu làm thế nào người khác đóng các gói

Nếu bạn vẫn có câu hỏi về đóng gói mà bạn không thể tìm thấy câu trả lời trong tài liệu sẵn có và tài nguyên web, bạn có thể nhờ họ tương tác:

Các nhà phát triển giàu kinh nghiệm của Debian sẽ sẵn sàng giúp bạn, nếu bạn hỏi đúng cách sau khi thực hiện những nỗ lực bắt buộc của bạn.

Khi bạn nhận được báo cáo lỗi (vâng, lỗi thực sự!), Bạn sẽ biết rằng đã đến lúc bạn phải khai thác vào Debian Bug Tracking System và đọc tài liệu ở đó, để được có khả năng giải quyết các báo cáo hiệu quả. Tôi rất khuyên bạn nên đọc Debian Developer's Reference, 5.8. "Handling bugs".

Ngay cả khi tất cả đều hoạt động tốt, đó là thời gian để bắt đầu cầu nguyện. Tại sao? Bởi vì chỉ trong vài giờ (hoặc ngày) người dùng từ khắp nơi trên thế giới sẽ bắt đầu sử dụng gói của bạn và nếu bạn mắc một số lỗi nghiêm trọng, bạn sẽ nhận được mailbombed bởi nhiều người dùng Debian tức giận …... Đùa thôi :-)

Hãy thư giãn và sẵn sàng cho các báo cáo lỗi, vì còn rất nhiều việc phải làm trước khi gói của bạn hoàn toàn phù hợp với các chính sách của Debian và các hướng dẫn thực hành tốt nhất của nó (một lần nữa đọc tài liệu thật chi tiết). Chúc may mắn!



[1] Tài liệu giả định bạn đang sử dụng jessie hoặc hệ thống mới hơn. Nếu bạn cần phải làm theo các văn bản này trong một hệ thống cũ hơn (bao gồm cả một hệ thống Ubuntu cũ hơn vv), bạn phải cài đặt ít nhất các gói dpkgdebhelper.

[2] Bạn có thể tìm hiểu về cách xử lý cơ bản của một hệ thống Debian từ Debian Reference. Nó cũng chứa một số gợi ý để tìm hiểu về lập trình Unix.

[3] Ngoài ra còn có một số gói chuyên dụng hơn nhưng tương tự như dh-make-perl, dh-make-php, v.v.