Hướng dẫn cài đặt p7zip-full trên Ubuntu 18.04 và cách xử lý các lỗi thường gặp

1. Hiểu rõ về gói p7zip trên Ubuntu

Người dùng mới chuyển từ Windows sang Ubuntu 18.04 thường gặp lỗi E: Unable to locate package 7zip khi cố gắng cài đặt công nén/giải nén 7-Zip. Nguyên nhân là vì trong kho lưu trữ chính thức của Debian và Ubuntu, phần mềm này không được đặt tên là 7zip mà được duy trì dưới tên gọi p7zip.

Đây là phiên bản được viết lại để tương thích với hệ điều hành POSIX. Có ba gói chính bạn cần phân biệt:

  • p7zip: Phiên bản rút gọn, chỉ cung cấp lệnh 7zr và hỗ trợ định dạng .7z cơ bản.
  • p7zip-full: Phiên bản đầy đủ, cung cấp lệnh 7z, hỗ trợ nén phân đoạn, mã hóa và nhiều định dạng hơn.
  • p7zip-rar: Một module bổ sung cho phép giải nén (không nén) các tệp tin RAR.

Bảng so sánh khả năng giữa bản rút gọn và bản đầy đủ:

Tính năng p7zip (Rút gọn) p7zip-full (Đầy đủ)
Lệnh thực thi 7zr 7z7za
Mã hóa (AES-256) Không
Nén chia nhỏ dung lượng Không
Hỗ trợ Module SFX Không

2. Quy trình cài đặt chuẩn và kích hoạt Universe Repository

Gói p7zip-full nằm trong kho universe. Nếu hệ thống của bạn chưa kích hoạt kho này, lệnh cài đặt sẽ thất bại. Dưới đây là các bước thiết lập an toàn:

# Kiểm tra và thêm kho lưu trữ universe
sudo add-apt-repository universe

# Cập nhật danh sách gói tin với thời gian chờ lâu hơn để tránh lỗi mạng
sudo apt-get update -o Acquire::http::Timeout=60

# Cài đặt gói đầy đủ
sudo apt-get install -y p7zip-full p7zip-rar

Nếu bạn gặp lỗi xung đột phụ thuộc (dependency conflict) liên quan đến libstdc++6, hãy thử sửa lỗi bằng lệnh:

sudo apt-get install -f
sudo apt-get upgrade libstdc++6

3. Kiểm tra và sử dụng lệnh 7z trong thực tế

Sau khi cài đặt, bạn nên xác nhận phiên bản bằng lệnh 7z | head -n 5. Đừng chỉ kiểm tra xem lệnh có tồn tại hay không, hãy thử nghiệm với một tệp tin thực tế.

Nén dữ liệu với mức nén cao nhất và đặt mật khẩu:

# Tham số -mx9: Mức nén cực đại
# Tham số -p: Đặt mật khẩu (không có dấu cách sau -p)
7z a -mx9 -p"MatKhauCuaToi" du_lieu_nen.7z ./thu_muc_nguon

Giải nén tệp tin và hiển thị tiến trình:

# Tham số -bsp1: Hiển thị thanh tiến trình realtime
7z x file_nen.7z -o./thu_muc_dich -bsp1

4. Tích hợp giao diện đồ họa (GUI)

Trên Ubuntu 18.04, trình quản lý tệp Nautilus mặc định đôi khi không hiển thị tùy chọn "Extract Here" cho định dạng .7z ngay cả khi đã cài đặt p7zip-full. Điều này là do sự thiếu hụt plugin của file-roller.

Một giải pháp thay thế ổn định hơn cho các nhà phát triển là sử dụng trình quản lý tệp Thunar cùng với plugin archive của nó:

sudo apt-get install thunar thunar-archive-plugin

Thunar có khả năng nhận diện các backend nén như p7zip tốt hơn và nhẹ hơn đáng kể so với Nautilus trên các hệ thống cũ.

5. Triển khai trong môi trường Docker và CI/CD

Trong các tệp Dockerfile dành cho Ubuntu 18.04, việc giảm dung lượng image là ưu tiên hàng đầu. Thay vì cài đặt toàn bộ phụ thuộc, bạn có thể sử dụng phương pháp sau để tối ưu:

FROM ubuntu:18.04

# Chỉ cài đặt các thư viện tối thiểu và dọn dẹp cache ngay lập tức
RUN apt-get update && \
    apt-get install -y --no-install-recommends p7zip-full && \
    rm -rf /var/lib/apt/lists/*

# Kiểm tra tính khả dụng
ENTRYPOINT ["7z"]

Đối với các thiết bị chạy kiến trúc ARM64 (như các dòng Single Board Computer), nếu không tìm thấy gói trong kho mặc định, bạn cần trỏ về kho ports của Ubuntu:

# Thêm kiến trúc arm64 nếu đang dùng đa kiến trúc
sudo dpkg --add-architecture arm64

# Đảm bảo source.list có các mirror cho ports.ubuntu.com
echo "deb http://ports.ubuntu.com/ubuntu-ports bionic universe" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install p7zip-full:arm64

Thẻ: ubuntu-18.04 p7zip Bash terminal compression

Đăng vào ngày 26 tháng 8 lúc 15:09