.deb

Gói cài đặt .deb là định dạng gói phần mềm được sử dụng trong các hệ điều hành dựa trên Debian như Ubuntu, Linux Mint, và nhiều hệ điều hành khác. Đây là một định dạng phổ biến để phân phối và quản lý phần mềm.

Dưới đây là chi tiết về gói .deb:


1. Cấu trúc của gói .deb

Một gói .deb là một tệp nén, chứa tất cả các thành phần cần thiết để cài đặt một phần mềm. Nó thường bao gồm:

  • control: Các tệp metadata (thông tin về gói):
    • Tên gói, phiên bản, mô tả, phụ thuộc cần thiết.
    • Ví dụ: File control định nghĩa như sau:
Package: example-package
Version: 1.0.0
Architecture: amd64
Maintainer: Example Team <[email protected]>
Description: Example package for demonstration
Depends: libc6 (>= 2.28), libssl1.1
  • data.tar: Chứa các tệp thực thi, thư viện, hoặc các tệp cấu hình sẽ được cài đặt vào hệ thống.
    • Ví dụ: /usr/bin, /etc/example.conf, hoặc /usr/lib/example.
  • debian-binary: Một tệp văn bản nhỏ chỉ chứa phiên bản định dạng của Debian package (ví dụ: 2.0).

2. Cách tạo và quản lý gói .deb

Tạo gói .deb

Bạn có thể tạo gói .deb từ mã nguồn hoặc từ các file đã chuẩn bị trước:

  • Công cụ tạo gói:
    • dpkg-deb: Công cụ cơ bản để đóng gói file .deb.
dpkg-deb --build <thư_mục_gói>
  • debuild: Thường được dùng để đóng gói từ mã nguồn.
  • dh_make: Công cụ tự động hóa việc tạo các tệp debian/control, rules.

Thư mục gói mẫu

Một thư mục gói mẫu cho phần mềm example có cấu trúc như sau:

example/
├── DEBIAN/
│   ├── control      # Metadata gói
│   ├── postinst     # Script chạy sau khi cài đặt
│   ├── prerm        # Script chạy trước khi gỡ bỏ
├── usr/
│   ├── bin/         # File thực thi
│   ├── share/

3. Cài đặt gói .deb

Sử dụng dpkg

Lệnh cơ bản để cài đặt .deb:

sudo dpkg -i package.deb

Nếu gặp lỗi phụ thuộc, chạy:

sudo apt --fix-broken install

Sử dụng apt hoặc gdebi (giải quyết phụ thuộc tự động)

  • gdebi:
sudo apt install gdebi
sudo gdebi package.deb
  • apt:
sudo apt install ./package.deb

4. Gỡ bỏ gói .deb

Nếu gói đã được cài, bạn có thể gỡ bỏ bằng:

  • dpkg:
sudo dpkg -r <tên-gói>
  • apt:
sudo apt remove <tên-gói>

Nếu muốn xóa luôn tệp cấu hình:

sudo apt purge <tên-gói>

5. Các lỗi thường gặp khi làm việc với .deb

Lỗi phụ thuộc

Nếu một gói yêu cầu các gói khác (dependencies) mà chưa được cài:

sudo apt --fix-broken install

Lỗi kiến trúc không phù hợp

Gói .deb không tương thích với kiến trúc hệ thống của bạn (vd: cài gói amd64 trên hệ thống arm64):

  • Kiểm tra kiến trúc:
dpkg --print-architecture

Gói bị hỏng hoặc không đầy đủ

Nếu quá trình cài đặt dừng giữa chừng:

sudo dpkg --configure -a

6. Ưu điểm của .deb

  • Tích hợp tốt trên hệ thống Debian-based: Hệ thống quản lý gói như dpkgapt hỗ trợ mạnh mẽ.
  • Quản lý phụ thuộc: Metadata trong gói giúp giải quyết các phụ thuộc tự động (với apt).
  • Có thể tùy chỉnh: Bạn có thể thêm các script để tự động hóa (vd: postinst, prerm).

7. Một số lệnh liên quan đến gói .deb

Kiểm tra thông tin gói

  • Hiển thị thông tin gói .deb:
dpkg-deb -I package.deb
  • Kiểm tra nội dung gói .deb:
dpkg-deb -c package.deb

Kiểm tra các gói đã cài

dpkg -l

Tìm vị trí file đã cài từ gói

dpkg -L <tên-gói>

Uninstall package.deb