企業內網常存在離線或半離線環境,無法直接訪問公網軟體源。本文詳細記錄如何在 RedHat 5.4 上利用 Apache 搭建本地 Debian 6.0 (Squeeze) APT 鏡像源,將 8 張 DVD ISO 掛載發布,實現內網 Debian/Ubuntu 主機高速、離線安裝軟體包,解決異構環境軟體分發難題。
| 角色 | OS | IP | 關鍵目錄 |
|---|---|---|---|
| APT Server | RedHat 5.4 | 192.168.0.10 | /var/www/html/1~8 (對應 DVD 1~8) |
| APT Client | Debian 6.0 | 192.168.0.12 | /etc/apt/sources.list |
# 假設已通過 FTP 上傳至 /var/ftp/pub/
mkdir -p /var/www/html/{1..8}
# /etc/fstab 追加
/var/ftp/pub/debian-6.0.1a-amd64-DVD-1.iso /var/www/html/1 iso9660 loop,ro 0 0
/var/ftp/pub/debian-6.0.1a-amd64-DVD-2.iso /var/www/html/2 iso9660 loop,ro 0 0
...
/var/ftp/pub/debian-6.0.1a-amd64-DVD-8.iso /var/www/html/8 iso9660 loop,ro 0 0
mount -a # 一鍵掛載所有
service httpd start
chkconfig httpd on
curl https://192.168.0.10/1/debian/dists/squeeze/Release
# 應返回 Release 檔案內容,確認目錄結構正確
cat > /etc/apt/sources.list <<'EOF'
deb https://192.168.0.10/1/debian squeeze main
deb https://192.168.0.10/2/debian squeeze main
deb https://192.168.0.10/3/debian squeeze main
deb https://192.168.0.10/4/debian squeeze main
deb https://192.168.0.10/5/debian squeeze main
deb https://192.168.0.10/6/debian squeeze main
deb https://192.168.0.10/7/debian squeeze main
deb https://192.168.0.10/8/debian squeeze main
EOF
apt-get update
apt-get install vim # 測試安裝
「系統」→「系統管理」→「軟體源」→「第三方軟體」→「添加」,依次輸入上述 8 行 deb https://... 即可。
/var/www/html/1/debian/dists/squeeze/ 存在,APT 會自動尋找 dists/<codename>/。squeeze 是 Debian 6.0 的釋出代號,絕不可修改,否則 APT 找不到套件索引。main 為官方支援自由軟體,如需非自由軟體可加 contrib non-free。debian/archive.key 至客戶端 apt-key add。debmirror 或 apt-mirror 同步官方源,再重新生成 Packages.gz 索引。若需管理多版本、多架構、多元件的混合源,建議引入 aptly(Go 語言開發,單二進位、REST API、快照功能強大)或 reprepro(傳統 Perl 工具,穩定成熟),實現源的版本化、快照回滾、自動簽名、Web 界面管理,大幅降低維運複雜度。
通過「ISO 掛載 + Apache 發布 + sources.list 指向」三步走,即可在 RedHat/CentOS 上零成本構建高性能 Debian/Ubuntu 本地 APT 源,完美解決離線環境軟體安裝、升級、佈署難題,是異構 Linux 環境標準化軟體分發的基石方案。