Bạn đang quản lý một máy chủ Linux nằm trong mạng nội bộ (Private Network) và không được phép kết nối Internet? Việc cài đặt phần mềm qua yum trở thành một thách thức lớn.
Giải pháp tối ưu nhất chính là tạo Local Repository (Kho chứa gói phần mềm nội bộ) sử dụng chính đĩa cài đặt (file ISO) của hệ điều hành. Bài viết này sẽ hướng dẫn bạn thực hiện chi tiết trên CentOS 7, CentOS 8 và Red Hat Enterprise Linux (RHEL) 8.

Bước 1: Chuẩn bị môi trường (Áp dụng cho mọi OS)
Dù bạn dùng CentOS 7, 8 hay RHEL, bước đầu tiên luôn là đưa đĩa cài đặt vào và mount nó lên hệ thống.
1. Mount file ISO
Hãy đảm bảo bạn đã kết nối file ISO hoặc đĩa CD/DVD vào máy ảo/máy vật lý. Sau đó chạy các lệnh sau:
# 1. Tạo thư mục để mount (mount point)
mkdir -p /cdrom
# 2. Mount ổ đĩa vào thư mục vừa tạo
mount /dev/cdrom /cdrom
# 3. Kiểm tra xem đã mount thành công chưa
ls -l /cdrom
2. Sao lưu Repo Online cũ
Để tránh việc hệ thống cố gắng kết nối Internet khi chạy lệnh yum, chúng ta nên di chuyển các file cấu hình repo online sang thư mục backup.
# Tạo thư mục backup
mkdir /opt/backups-repo
# Di chuyển toàn bộ file .repo hiện có vào đó
mv /etc/yum.repos.d/*.repo /opt/backups-repo/
Bước 2: Cấu hình Local Repo cho từng hệ điều hành
Trường hợp 1: Đối với CentOS 7
CentOS 7 có cấu trúc đơn giản, tất cả gói cài đặt nằm chung một chỗ.
Tạo và mở file cấu hình mới:
vi /etc/yum.repos.d/local.repo
Dán nội dung sau vào file (nhấn phím Insert để sửa, và :wq để lưu):
[LocalRepo] name=Local Repository CentOS 7 baseurl=file:///cdrom enabled=1 gpgcheck=1 gpgkey=file:///cdrom/RPM-GPG-KEY-CentOS-7
Trường hợp 2: Đối với CentOS 8
Từ phiên bản 8, CentOS chia kho phần mềm thành 2 phần chính: BaseOS (Hệ thống lõi) và AppStream (Ứng dụng bổ trợ). Bạn cần khai báo cả hai.
Tạo file cấu hình:
vi /etc/yum.repos.d/local.repo
Dán nội dung sau:
[Local-BaseOS] name=CentOS 8 - BaseOS baseurl=file:///cdrom/BaseOS/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [Local-AppStream] name=CentOS 8 - AppStream baseurl=file:///cdrom/AppStream/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Trường hợp 3: Đối với Red Hat (RHEL) 8
RHEL 8 tương tự CentOS 8 nhưng cần lưu ý về plugin quản lý bản quyền (Subscription Manager).
1. Tạo file repo: vi /etc/yum.repos.d/local.repo
[Local-BaseOS] name=RHEL 8 - BaseOS baseurl=file:///cdrom/BaseOS/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [Local-AppStream] name=RHEL 8 - AppStream baseurl=file:///cdrom/AppStream/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2. Tắt Subscription Manager:
Nếu không tắt, hệ thống sẽ báo lỗi khi bạn cố cài đặt phần mềm mà không có internet.
vi /etc/yum/pluginconf.d/subscription-manager.conf
Sửa dòng enabled=1 thành enabled=0.
Bước 3: Kiểm tra và hoàn tất
Sau khi đã tạo file cấu hình xong, bạn hãy chạy lệnh sau để xóa cache cũ và nhận diện repo mới:
# Xóa cache
yum clean all
# Kiểm tra danh sách repo
yum repolist
Nếu kết quả hiện ra danh sách Repo có tên (ví dụ: Local Repository CentOS 7) và số lượng gói phần mềm (ví dụ: 4,000+ packages) thì chúc mừng, bạn đã tạo Local Repository thành công!
Giải thích các thông số trong file cấu hình
- baseurl=file:///…: Chỉ định nguồn dữ liệu nằm ngay trên ổ cứng (thư mục /cdrom) thay vì http/https.
- enabled=1: Kích hoạt kho này.
- gpgcheck=1: Yêu cầu hệ thống kiểm tra chữ ký số để đảm bảo file cài đặt là chính chủ, chưa bị chỉnh sửa.
Bây giờ bạn có thể thoải mái cài đặt phần mềm (ví dụ: yum install vim) mà không cần kết nối mạng.
👉 Xem thêm: Hướng dẫn cài đặt Proxmox VE trên Laptop