Cách tạo gói DEB cho Debian/Ubuntu

Gói DEB là một kho lưu trữ chứa tất cả các file bao gồm phiên bản đã biên dịch của ứng dụng, mã nguồn, file cấu hình, hình ảnh và lệnh cài đặt. File DEB trong hệ điều hành dựa trên Debian như UbuntuKali Linux tương đương với file EXE được tìm thấy trong Windows.

Đây là cách bạn có thể phát triển các gói DEB của riêng mình cho một bản phân phối Linux dựa trên Debian.

Bước 1: Cài đặt các gói bắt buộc

Chuẩn bị một gói Debian yêu cầu một số chương trình. Để bắt đầu, hãy cài đặt các tiện ích này trên hệ thống của bạn:

sudo apt install build-essential binutils lintian debhelper dh-make devscripts

Bước 2: Lựa chọn gói

Trước khi tạo gói Debian (DEB) cho một chương trình, bạn nên cân nhắc một số điểm:

Kiểm tra xem gói bạn định tạo đã có trong kho Debian hay chưa:

apt-cache search package-name

Kiểm tra loại giấy phép mà chương trình bạn sẽ đóng gói. Có một quy định chung về việc sử dụng giấy phép GNU/GPL.

Đảm bảo rằng chương trình không gây ra vấn đề bảo mật cho hệ thống.

Liên hệ với tác giả của chương trình. Thông báo cho các nhà phát triển Debian để chương trình này được vào kho Debian.

Bước 3: Bắt đầu chuẩn bị gói

Đầu tiên, tạo một thư mục mới trong thư mục chính của bạn để tránh nhầm lẫn.

cd /home
mkdir package
cd package

Sau đó, giải nén kho lưu trữ tar chứa mã nguồn của chương trình bạn sẽ tạo gói trong thư mục này. Để minh họa, ví dụ sẽ sử dụng kho lưu trữ rsyslog.

tar -zxvf rsyslog-6.3.6.tar.gz

Điều hướng đến thư mục mới được tạo bằng lệnh cd:

cd rsyslog-6.3.6

Thông thường, mã nguồn của chương trình đi kèm với các file INSTALLREADME. Ngay cả khi bạn biết chương trình là gì và nó hoạt động như thế nào, thì việc bạn dành thời gian đọc những file này sẽ rất có lợi.

Có các lệnh như ./configure makemake install có thể dễ dàng cài đặt các kho lưu trữ đó trên hệ thống. Nhưng có một số tham số cho tùy chọn ./configure mà bạn nên biết. Bạn có thể sử dụng lệnh ./configure --help để lấy thông tin như vậy.

Bước 4: Thêm thông tin nhà phát triển

Trước khi tạo gói DEB cho chương trình của bạn, hãy chú ý đến tên gói và số phiên bản. Bạn cũng sẽ cần thêm một số thông tin về trình đóng gói khi tạo gói. Đối với điều này, bạn phải xuất thông tin của mình bằng các lệnh sau:

export DEBEMAIL="your@mail.com"
export DEBFULLNAME="Name Lastname"
After this, use the magic command dh_make.
dh_make

Sau khi phát hành lệnh dh_make, bạn nên chọn loại gói của mình và nhấn Enter.

Chọn loại gói
Chọn loại gói

Làm theo bước này, bạn sẽ thấy một thư mục trong thư mục mẹ có phần mở rộng ".orig". Nếu cách này không hiệu quả, hãy thử chạy lệnh dh_make với tham số --createorig.

ls
# Output
rsyslog-6.3.6 rsyslog_6.3.6.orig.tar.xz rsyslog-6.3.6.tar.gz

Bạn cũng có thể thấy một thư mục mới có tên Debian trong thư mục làm việc hiện tại. Các thư mục và file này chứa tất cả thông tin liên quan đến gói Debian về chương trình.

Thư mục Debian mới
Thư mục Debian mới

Bước 5: Các file Debian liên quan đến gói

Bạn cần biết thông tin sau về các file nằm trong thư mục Debian.

1. File control

File control cung cấp nhiều thông tin liên quan đến gói.

File control
File control
  • Source: Dòng nơi bạn sẽ chỉ định tên chương trình của mình
  • Section: Dòng xác định phần chương trình của bạn thuộc về theo giấy phép
  • Maintainer: Dòng chứa thông tin của người chuẩn bị gói
  • Build-Depends: Các dependency được liệt kê trên dòng này
  • Depends: Dòng này rất quan trọng. Bạn chỉ định các phần dependency của gói với giá trị này
  • Description: Dòng nơi bạn có thể nhập thông tin về gói

2. File copyright

File này chứa thông tin về giấy phép của chương trình. Nội dung mặc định của nó như sau:

File copyright
File copyright

3. File changelog

File này giống như lộ trình nhật ký chương trình của bạn. Nếu bạn đã thực hiện điều gì đó độc lập với nguồn của chương trình hoặc nếu bạn đã sửa một số lỗi, bạn có thể thêm nó vào file này.

4. File rules

File rules giống như một Makefile cho gói Debian của bạn. Khi cài đặt gói Debian đã chuẩn bị với dpkg, thông tin trong file này được lấy làm cơ sở.

File rules
File rules

Tất nhiên, bạn có thể thay đổi các thông số trong file này khi bạn thấy phù hợp.

5. Các file khác trong thư mục

Cũng có thể hữu ích khi biết những chức năng của các file sau:

  • README.Debian: File Readme
  • conffiles.ex: Sử dụng file này nếu bạn muốn giữ file cài đặt cũ của mình trong khi cài đặt chương trình
  • cron.d.ex: Bạn có thể thực hiện các hoạt động cron bằng cách sử dụng file này
  • dirs: Sử dụng file này để chỉ định các thư mục không được cài đặt trong quá trình cài đặt nhưng sẽ được tạo sau
  • docs: Nếu có tài liệu đi kèm với chương trình của bạn, hãy chỉ định chúng bằng file này
  • emacsen*.ex: Nếu chương trình của bạn cần file Emacs trong khi cài đặt, hãy chỉ định nó bằng file này
  • init.d.ex: Sử dụng file này nếu bạn muốn chương trình của mình chạy khi khởi động hệ thống

Để tiếp tục giai đoạn sau, hãy xóa bất kỳ file nào bạn tin rằng mình không cần nữa. Sau đó, đổi tên các phần mở rộng file và xóa ".ex" ở cuối. ".Ex" (ví dụ) chỉ ra rằng đây là một file mẫu.

Bước 6: Xây dựng gói

Nếu bạn đã làm được điều này, bây giờ bạn có thể chuẩn bị gói Debian cho chương trình của mình. Đối với điều này, hãy chạy lệnh sau:

dpkg-buildpackage

Một vấn đề quan trọng khác ở đây là tạo GPG cho địa chỉ e-mail mà bạn xuất dưới dạng Maintainer.

export DEBEMAIL="example@mail.com"

dpkg sẽ tìm kiếm thông tin GPG của bạn trong khi tạo gói. Bạn có thể liệt kê nó bằng lệnh gpg --list-key.

Nếu bạn gặp bất kỳ sự cố nào trong giai đoạn dpkg-buildpackage, hãy thử lệnh sau:

dpkg-buildpackage -nc -i

Lệnh này sẽ bỏ qua một số phần có thể gây ra lỗi.

Nếu mọi thứ suôn sẻ, gói Debian cho chương trình của bạn sẽ sẵn sàng để cài đặt và lưu trữ trong thư mục tiếp theo. Với lệnh dưới đây, bạn có thể cài đặt, kiểm tra và xem lại gói.

dpkg -i package-name
Xây dựng gói deb
Xây dựng gói deb

Hệ thống tạo gói DEB là một trong những yếu tố cơ bản nhất để phân biệt Debian với tư cách là người dẫn đầu GNU/Linux. Debian là một hệ thống lớn và nó thực sự quan trọng đối với những người đóng góp để có khả năng tạo các gói của riêng họ.

Nếu bạn chưa quen với GNU/Linux, điều này có vẻ khó hiểu. Tuy nhiên, như bạn có thể thấy, việc chuẩn bị một gói Debian đơn giản hơn bạn nghĩ. Tất nhiên, việc xây dựng một gói Debian đòi hỏi thời gian và công việc.

Nhưng điều đó không có nghĩa là bạn phải tạo thủ công các gói cho những chương trình mà bạn muốn cài đặt. Có một số trang web trên Internet, từ đó bạn có thể tải xuống các gói DEB miễn phí.

Thứ Sáu, 10/06/2022 11:42
579 👨 655
0 Bình luận
Sắp xếp theo
    ❖ Linux