Tự động hóa cấu hình gói DEB trên Ubuntu bằng debconf

debconf là cơ chế cấu hình gói Debian cho phép thiết lập trước các lựa chọn trong quá trình cài đặt — giúp loại bỏ tương tác người dùng, rất hữu ích khi triển khai tự động hóa hoặc viết script triển khai hệ thống. Dưới đây là hướng dẫn chi tiết sử dụng debconf để cài đặt gói mysql-apt-config một cách không tương tác trên Ubuntu.

Bước 1: Cài đặt công cụ hỗ trợ

Cài đặt gói debconf-utils, chứa các lệnh cần thiết để trích xuất và thiết lập cấu hình:

sudo apt update && sudo apt install -y debconf-utils

Bước 2: Tải và cài đặt mẫu thủ công

Tải phiên bản mới nhất của gói cấu hình APT từ MySQL và cài đặt lần đầu để ghi lại các lựa chọn:

wget https://repo.mysql.com/mysql-apt-config_0.8.25-1_all.deb<br>sudo dpkg -i mysql-apt-config_0.8.25-1_all.deb

Lúc này, cửa sổ cấu hình tương tác sẽ hiện ra — chọn các tùy chọn phù hợp (ví dụ: chọn phiên bản MySQL 8.0, kích hoạt thành phần tools, v.v.), sau đó nhấn OK để hoàn tất.

Bước 3: Trích xuất cấu hình đã lưu

Sau khi cài đặt xong, dùng debconf-get-selections để lấy toàn bộ cấu hình liên quan đến gói:

debconf-get-selections | grep '^mysql-apt-config '

Kết quả tương tự như sau (giá trị có thể thay đổi tùy phiên bản và lựa chọn thực tế):

mysql-apt-config mysql-apt-config/select-server select mysql-8.0<br>mysql-apt-config mysql-apt-config/select-tools select Enabled<br>mysql-apt-config mysql-apt-config/repo-codename select jammy<br>mysql-apt-config mysql-apt-config/repo-distro select ubuntu<br>mysql-apt-config mysql-apt-config/repo-url string https://repo.mysql.com/apt<br>mysql-apt-config mysql-apt-config/select-product select Ok

Bước 4: Gỡ cài đặt và chuẩn bị cho triển khai tự động

Gỡ bỏ phiên bản vừa cài thủ công để đảm bảo trạng thái sạch:

sudo apt remove -y mysql-apt-config

Bước 5: Thiết lập cấu hình trước khi cài đặt

Dùng debconf-set-selections để nạp cấu hình tĩnh vào cơ sở dữ liệu debconf:

cat << 'EOF' | sudo debconf-set-selections<br>mysql-apt-config mysql-apt-config/select-server select mysql-8.0<br>mysql-apt-config mysql-apt-config/select-tools select Enabled<br>mysql-apt-config mysql-apt-config/repo-codename select jammy<br>mysql-apt-config mysql-apt-config/repo-distro select ubuntu<br>mysql-apt-config mysql-apt-config/repo-url string https://repo.mysql.com/apt<br>mysql-apt-config mysql-apt-config/select-product select Ok<br>EOF

Bước 6: Triển khai không tương tác

Thiết lập biến môi trường DEBIAN_FRONTEND=noninteractive và chạy cài đặt:

sudo DEBIAN_FRONTEND=noninteractive dpkg -i mysql-apt-config_0.8.25-1_all.deb

Nếu cần cập nhật danh sách gói ngay sau đó, thêm lệnh:

sudo apt update

Thẻ: debconf Ubuntu Debian mysql-apt automation

Đăng vào ngày 31 tháng 8 lúc 08:56