SUSE 離線安裝套件(使用本地光碟庫)指南
當 網路不穩定 或 伺服器無法連線到網際網路 時,可以使用 SUSE 安裝光碟(ISO) 作為 本地套件庫(Local Repository),讓 zypper
從光碟中安裝或更新軟體。
本指南將介紹 如何將 SUSE 安裝光碟掛載到系統中,並設置為本地套件庫。
目錄
- 準備環境
- 掛載並複製 ISO
- 建立本地套件庫目錄結構
- 模組與產品倉庫說明
- 建立 Repo 設定檔
- 刷新 Repo 並安裝套件
- (可選)更新 Metadata
- 使用 YaST2 設定本地倉庫
- 故障排除與提示
準備環境
- 以
root
身份或具備sudo
權限登入 - 確認 ISO 檔案已下載到伺服器(如
/root/download/SLE-15-DVD1.iso
)
掛載並複製 ISO
# 建立掛載點並掛載 ISO
mkdir -p /mnt/iso
mount -o loop /root/download/SLE-15-DVD1.iso /mnt/iso
# 複製內容到本地套件庫目錄
mkdir -p /srv/repos/SLES15
rsync -av /mnt/iso/ /srv/repos/SLES15/
# 卸載 ISO
umount /mnt/iso
建立本地套件庫目錄結構
在 /srv/repos/SLES15/
下,至少需包含:
/srv/repos/SLES15/
├── Product-SLES/
├── Module-Server-Applications/
└── Module-BaseSystem/
實際光碟內容還有多個模組與產品倉庫,可依需求保留或刪除。
模組與產品倉庫說明
類別 | 倉庫名稱 | 說明 |
---|---|---|
Product | Product-SLES |
SLES 核心作業系統及標準系統庫 |
Product-SLED |
SLED 桌面版套件 | |
Product-HA |
高可用性 (Pacemaker/Corosync) | |
Product-RT |
實時核心 (PREEMPT_RT) | |
Product-SLES_SAP |
SLES for SAP HANA | |
Product-WE |
Web & Scripting Extension | |
Module | Module-BaseSystem |
核心系統模組:kernel、systemd、檔案系統驅動等 |
Module-Server-Applications |
伺服器應用:Apache、Nginx、MariaDB、SSH、郵件伺服器等 | |
Module-Desktop-Applications |
桌面應用:LibreOffice、Firefox、Thunderbird等 | |
Module-Development-Tools |
開發工具:GCC、Make、CMake、Git等 | |
Module-Containers |
容器技術:Podman、Buildah、CRI-O等 | |
Module-Transactional-Server |
交易型更新:Btrfs Snapper、Rollback | |
Module-Web-Scripting |
網頁與腳本:PHP、Perl、Ruby、Node.js等 | |
Module-Python3 |
Python3 生態:pip、virtualenv、常見套件 | |
Module-Live-Patching |
Live Patching:kGraft | |
Module-Public-Cloud |
Cloud-init、AWS CLI、Azure CLI、OpenStack 客戶端 | |
Module-RT |
Real-Time Kernel 模組 | |
Module-SAP-Applications |
SAP HANA 應用套件 | |
Module-SAP-Business-One |
SAP Business One 平台 | |
Module-Legacy |
舊版相容函式庫 | |
Module-HPC |
高效能運算:MPI、科學計算函式庫 |
建立 Repo 設定檔
將下列檔案放置於 /etc/zypp/repos.d/
目錄下,產生以下三個檔案。
SLES_BASE.repo
[sles_base]
name = SLES15 Base Product
enabled = 1
autorefresh = 0
baseurl = file:///srv/repos/SLES15/Product-SLES/
type = rpm-md
gpgcheck = 0
SLES_Base_APP.repo
[sles_base_app]
name = SLES15 Server Applications Module
enabled = 1
autorefresh = 0
baseurl = file:///srv/repos/SLES15/Module-Server-Applications/
type = rpm-md
gpgcheck = 0
SLES_Basesystem.repo
[sles_basesystem]
name = SLES15 Base System Module
enabled = 1
autorefresh = 0
baseurl = file:///srv/repos/SLES15/Module-BaseSystem/
type = rpm-md
gpgcheck = 0
補充說明
gpgcheck=0,1
0:表示不檢查。(像是光碟片,官方的檔案可以設定為0)
1:表示強制檢查 GPG 簽章,是較安全的預設選項。
type = rpm-md
Zypper 會在該路徑下尋找並下載(或直接讀取)repodata/repomd.xml 這個檔案。
根據 repomd.xml 裡所列的索引檔(如 primary.xml.gz、filelists.xml.gz)來查詢可用套件、解決相依性
刷新 Repo 並安裝套件
# 刷新所有已啟用的 repo
zypper refresh
# 搜尋可用套件(範例:fio)
zypper search fio
# 安裝套件
zypper install fio
安裝 fio
fio
是一個靈活的 I/O 壓力測試工具,安裝完成後可直接執行:
fio --help
若要進行簡單測試:
fio --name=test --rw=read --size=1G --filename=/tmp/testfile
(可選)更新 Metadata
若新增或刪除 RPM,請重建 metadata:
zypper install -y createrepo
createrepo /srv/repos/SLES15/
zypper refresh
使用 YaST2 設定本地倉庫
- 執行 YaST2 軟體倉庫管理:
sudo yast2 repositories
- 點選 Add → Local Directory。
- 輸入路徑
/srv/repos/SLES15/Product-SLES/
,並命名。 - 重複添加其他模組目錄。
- 點 OK 並 Refresh 所有倉庫。
故障排除與提示
- 檢查目錄權限:確保
/srv/repos/SLES15/
及子目錄可讀取。 repodata/
缺失:若子目錄中無repodata/
,請執行createrepo
重建。- 移除網路倉庫:離線環境可用
zypper rr <repo-alias>
移除遠端倉庫。 - 磁碟空間不足:確認
/srv/repos
所在磁碟有足夠空間。 - GPG 簽章:若需啟用
gpgcheck
,請匯入對應公鑰。
結語
本地光碟倉庫可確保在無網路環境中,依然能透過zypper
或 YaST2 安裝和更新 SUSE 套件,提升系統可用性與一致性。