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 tệp bao gồm phiên bản đã biên dịch của ứng dụng, mã nguồn, tệp cấu hình, hình ảnh và lệnh cài đặt. Tệp DEB trong hệ điều hành dựa trên Debian như Ubuntu và Kali Linux tương đương với tệp 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.
Mục Lục
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:
Bước 3: Bắt đầu chuẩn bị gói hàng
Đầ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ẽ đóng gói trong thư mục này. Để trình diễn, chúng tôi 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 TẢI VỀ và ĐỌC SÁCH các tập tin. 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 tập tin này sẽ rất có lợi.
Có các lệnh như ./configure make và thực hiện cài đặt có thể dễ dàng cài đặt các kho lưu trữ đó trên hệ thống của bạn. Nhưng có một số tham số cho ./configure tùy chọn mà bạn nên biết. Bạn có thể dùng ./configure –help lệnh để có được 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 một 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"
Sau đó, sử dụng lệnh ma thuật dh_make.
dh_make
Sau khi phát hành dh_make bạn nên chọn loại gói của mình và nhấn đi vào.
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 điều này không hiệu quả, hãy thử chạy dh_make lệnh với –createorig tham số.
ls
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à tệp này chứa tất cả thông tin liên quan đến gói Debian về chương trình.
Bạn cần biết thông tin sau về các tệp nằm trong thư mục Debian.
1. Tệp điều khiển
Tệp điều khiển cung cấp nhiều thông tin liên quan đến gói.
- Nguồn: Dòng nơi bạn sẽ chỉ định tên chương trình của mình
- Tiết diện: Dòng xác định phần chương trình của bạn thuộc về giấy phép
- Người bảo trì: Dòng chứa thông tin của người chuẩn bị gói hàng
- Xây dựng-Phụ thuộc: Sự phụ thuộc được liệt kê trên dòng này
- Phụ thuộc: Dòng này rất quan trọng. Bạn chỉ định các phần phụ thuộc của gói của bạn với giá trị này
- Sự mô tả: Dòng nơi bạn có thể nhập thông tin về gói
2. Tệp bản quyền
Tệp 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:
3. Tệp thay đổi
Tệp 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 tệp này.
4. Các quy tắc Tệp
Tệp quy tắc 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 tệp này được lấy làm cơ sở.
Tất nhiên, bạn có thể thay đổi các thông số trong tệp này khi bạn thấy phù hợp.
5. Các tệp khác trong thư mục
Cũng có thể hữu ích khi biết các chức năng của các tệp sau:
- README.Debian: Tệp Readme
- conffiles.ex: Sử dụng tệp này nếu bạn muốn giữ tệp 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 tệp này
- dirs: Sử dụng tệp 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
- tài liệu: Nếu có tài liệu với chương trình của bạn, hãy chỉ định chúng bằng tệp này
- emacsen * .ex: Nếu chương trình của bạn cần tệp Emacs trong khi cài đặt, hãy chỉ định nó bằng tệp này
- init.d.ex: Sử dụng tệp 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ỳ tệp nào bạn tin rằng bạn không cần nữa. Sau đó, đổi tên các phần mở rộng tệp và xóa “.ex” ở cuối. “.Ex” (ví dụ) chỉ ra rằng đây là một tệp 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 Người duy trì.
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ỳ vấn đề nào trong dpkg-buildpackage pha, 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
Ai cũng có thể tạo gói trên Linux
Hệ thống đóng 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 các 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í.