Slackware 的鏡像樹、安裝媒體、套件系列與文字模式安裝程式之間保持直接的對應關係。了解這種結構有助於選取套件以及診斷安裝問題。以下範例會在 UEFI QEMU 虛擬機器中安裝 Slackware64 15.0。
Slackware 資源與鏡像樹 #
主要專案資源包括:
- Slackware Linux:發行公告與專案資訊
- Slackware Documentation Project:安裝與管理文件
- Slackware Linux Essentials:SlackBook
- Slackware mirrors 與 mirror list:發行檔案
鏡像根目錄包含歷史版本、穩定版別名、開發樹、ISO 映像檔,以及不受支援的附加內容:
slackware/
├── slackware-15.0/ # 32-bit x86 release
├── slackware/ # current stable 32-bit release
├── slackware-current/ # development branch
├── slackware64-15.0/ # 64-bit x86 release
├── slackware64/ # current stable 64-bit release
├── slackware64-current/ # 64-bit development branch
├── slackware-iso/ # release ISO images and verification files
├── slackware-pre-1.0-beta/ # early historical material
└── unsupported/ # contributed boot media, packages, and add-onsslackware-current 與 slackware64-current 是開發分支,而不是最新穩定版的別名。版本序列從 4.0 跳到 7.0;專案將版本號調整為與當時的發行版一致時,跳過了 5 和 6。
發行目錄同時也是可安裝的套件庫。例如,Slackware64 15.0 包含:
slackware64-15.0/
├── ChangeLog.txt
├── CHECKSUMS.md5
├── CHECKSUMS.md5.asc
├── FILELIST.TXT
├── GPG-KEY
├── PACKAGES.TXT
├── README_UEFI.TXT
├── Slackware-HOWTO
├── EFI/
├── extra/
├── isolinux/
├── kernels/
├── patches/
├── slackware64/
├── source/
├── testing/
└── usb-and-pxe-installers/slackware64/ 包含該發行版的套件系列。patches/ 接收穩定版的安全性與正確性更新,source/ 包含對應的建置材料。PACKAGES.TXT 說明套件,FILELIST.TXT 列出完整的目錄樹。
開機媒體 #
Slackware 最初將套件分割成軟碟大小的磁碟集合,因為下載完整發行版並不實際。軟碟安裝目前已不再支援,但套件系列的組織方式仍然保留。
Slackware64 15.0 的 ISO 目錄提供 slackware64-15.0-install-dvd.iso,以及 MD5 檔案、分離式簽章和包含 ISO 清單的文字檔案。安裝 DVD 包含二進位套件樹,但省略來源樹,讓映像檔能容納於單層 DVD 媒體。鏡像樹也可用於 HTTP、FTP、NFS、PXE 或手動掛載的安裝來源。
安裝程式 ISO 是同時包含 BIOS 與 UEFI 開機資料的混合媒體。QEMU 可以直接將它連接為虛擬 CD-ROM,因此不需要將它寫入實體媒體。
從相同的發行目錄下載映像檔及其簽章,匯入專案的 GPG-KEY,並在開機前驗證簽章:
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso.asc
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0/GPG-KEY
gpg --import GPG-KEY
gpg --verify slackware64-15.0-install-dvd.iso.asc \
slackware64-15.0-install-dvd.iso套件系列 #
Slackware64 15.0 將二進位套件分為以下系列:
| Series | Contents |
|---|---|
a | 基礎系統;安裝程式需要此系列 |
ap | 主控台應用程式及其他非 X 程式 |
d | 編譯器、除錯器、直譯器與開發工具 |
e | GNU Emacs |
f | FAQ、HOWTO 與其他文件 |
k | Linux 核心原始碼 |
kde | KDE Plasma 及其應用程式 |
l | 共用函式庫與支援軟體 |
n | 網路程式與服務 |
t | TeX 排版軟體 |
tcl | Tcl、Tk 與相關工具 |
x | X Window System |
xap | 桌面系列以外的圖形應用程式 |
xfce | Xfce 桌面環境 |
y | 文字模式 BSD 遊戲 |
這些系列是分類,而不是獨立解析相依性的套件群組。例如,Slackware64 15.0 將 Vim 放在 ap,並將其共用函式庫之一 libsodium 放在 l。因此,按分類移除整個系列可能會破壞另一個系列中保留的程式。
Slackware64 15.0 HOWTO 估算所有系列需要約 16 GB。32 GiB 的虛擬磁碟可為已安裝系統、套件更新、日誌與工作資料保留空間。磁碟空間充足時,完整安裝是最不容易出錯的選擇。
建立虛擬機器 #
透過主機的套件管理器安裝 QEMU 與 OVMF。OVMF 套件路徑會因發行版而異;執行以下命令前,先定位程式碼映像檔與變數儲存映像檔。複製變數儲存範本,因為 QEMU 必須寫入 UEFI 變數,但不能修改套件提供的範本。
qemu-img create -f qcow2 slackware64-15.0.qcow2 32G
cp /usr/share/OVMF/OVMF_VARS.fd ./OVMF_VARS.fd
qemu-system-x86_64 \
-machine q35 \
-m 4G \
-smp 4 \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=OVMF_VARS.fd \
-drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
-drive file=slackware64-15.0-install-dvd.iso,media=cdrom,readonly=on \
-nic user,model=virtio-net-pci \
-boot order=dvirtio 磁碟會顯示為 /dev/vda,虛擬 CD-ROM 通常會顯示為 /dev/sr0。省略兩個 pflash 磁碟會使 QEMU 使用預設的傳統 BIOS 啟動;BIOS 安裝會使用 LILO,而不是 ELILO。
對虛擬磁碟分割 #
接受預設安裝程式核心,必要時選取鍵盤配置,然後以無密碼的 root 身分登入。變更分割表前先檢查裝置:
lsblk
cgdisk /dev/vda建立包含以下分割區的 GPT:
| Partition | Size | GPT type | Purpose |
|---|---|---|---|
/dev/vda1 | 512 MiB | EF00 | EFI System Partition |
/dev/vda2 | 4 GiB | 8200 | Swap |
/dev/vda3 | Remaining space | 8300 | Linux root filesystem |
寫入分割表並結束 cgdisk。安裝程式稍後會格式化 swap 與 root 分割區。Setup 也會偵測 EFI System Partition,必要時將其格式化為 FAT,並掛載到 /boot/efi。
執行 Setup #
啟動安裝程式:
setup標準安裝會依下列順序使用 Setup 選單:
- KEYMAP:如果預設的 US 配置適用,可以跳過。
- ADDSWAP:偵測
/dev/vda2,將其格式化為 swap、啟用它,並加入未來的/etc/fstab。 - TARGET:選取
/dev/vda3作為/並將其格式化。對此虛擬機器而言,ext4 是合適的預設值。 - SOURCE:選取 Install from a Slackware CD or DVD 並掃描媒體。連接的 ISO 應會被偵測為
/dev/sr0。 - SELECT:選取套件系列。保留
a;完整安裝選取所有系列,或只移除已知其相依性後果的集合。 - INSTALL:選擇套件提示模式並複製選取的套件。
- CONFIGURE:安裝核心並設定開機載入程式、網路、服務、主控台、時鐘、時區與 root 密碼。
安裝模式控制提示方式,而不是相依性解析:
| Mode | Behavior |
|---|---|
full | 安裝每個選取系列中的所有套件 |
terse | 使用單行進度執行與 full 相同的安裝 |
menu or expert | 顯示每個系列的套件核取清單 |
newbie | 逐一提示未標記為必要的套件 |
custom or tagpath | 套用管理員提供的 tagfile |
使用 full 或 terse 可避免跨系列相依性造成的遺漏。在多台機器上重現相同的套件選擇時,tagfile 很有用。
安裝套件時,Alt+F2 會開啟另一個安裝程式主控台。接著可以執行 df -hT 等命令監控目標檔案系統。Alt+F1 會返回 Setup。也可以從第二個主控台檢查已掛載的安裝樹,通常位於 /mnt/cdrom 下。
設定 UEFI 開機 #
由於虛擬機器是透過 OVMF 開機安裝程式,Setup 會偵測到 UEFI 安裝。出現提示時略過 LILO、安裝 ELILO,並允許 Setup 建立 Slackware 韌體項目。ELILO 會將檔案放在 /boot/efi/EFI/Slackware 下。
完成剩餘的設定畫面並設定 root 密碼。結束 Setup、關閉客體系統、從 QEMU 命令中移除 ISO 磁碟,然後讓磁碟優先啟動虛擬機器:
qemu-system-x86_64 \
-machine q35 \
-m 4G \
-smp 4 \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=OVMF_VARS.fd \
-drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
-nic user,model=virtio-net-pci \
-boot order=c第一次開機後,在 /etc/slackpkg/mirrors 中選取一個套件庫,並套用穩定版修補程式:
slackpkg update gpg
slackpkg update
slackpkg upgrade-all安裝後驗證 #
使用 adduser 建立非特權帳戶,並只授予本機原則要求的管理群組存取權。透過 ls -l /etc/rc.d/ 檢查已啟用的啟動腳本。Slackware 會在對應腳本具有可執行權限時啟動服務,因此應移除執行權限來停用未使用的服務,而不是刪除套件提供的檔案。
在將磁碟映像檔視為可重複使用的基礎之前,驗證已安裝系統的開機與網路狀態:
findmnt /
swapon --show
ip address
ip route
efibootmgr --verbose
uname -aefibootmgr 需要存取 UEFI 變數,因此只有在客體系統透過具有可寫入變數儲存的 OVMF 開機時,才會回報有用的資料。複製或建立 qcow2 映像檔快照前,請正常關閉客體系統。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)