📖 建置本地套件庫

分類:基礎入門 | 作者:pake | 發布時間:2024-11-30 09:34

SUSE 離線安裝套件(使用本地光碟庫)指南

網路不穩定伺服器無法連線到網際網路 時,可以使用 SUSE 安裝光碟(ISO) 作為 本地套件庫(Local Repository),讓 zypper 從光碟中安裝或更新軟體。

本指南將介紹 如何將 SUSE 安裝光碟掛載到系統中,並設置為本地套件庫


目錄

  1. 準備環境
  2. 掛載並複製 ISO
  3. 建立本地套件庫目錄結構
  4. 模組與產品倉庫說明
  5. 建立 Repo 設定檔
  6. 刷新 Repo 並安裝套件
  7. (可選)更新 Metadata
  8. 使用 YaST2 設定本地倉庫
  9. 故障排除與提示

準備環境


掛載並複製 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 設定本地倉庫

  1. 執行 YaST2 軟體倉庫管理:
    sudo yast2 repositories
  2. 點選 AddLocal Directory
  3. 輸入路徑 /srv/repos/SLES15/Product-SLES/,並命名。
  4. 重複添加其他模組目錄。
  5. OKRefresh 所有倉庫。

故障排除與提示


結語
本地光碟倉庫可確保在無網路環境中,依然能透過 zypper 或 YaST2 安裝和更新 SUSE 套件,提升系統可用性與一致性。

⬅ 上一篇 下一篇 ➡
🔙 返回 基礎入門 📚 返回教學列表 🏠 返回首頁