離線安裝
此文提供在無互聯網連接時安裝 Arch Linux 的指南。要達到此目的,需要另一有互聯網連接的系統。
首先,按照安裝指南,跳過安裝指南-連接到互聯網部分,直接跳到安裝指南#安裝必需的軟件包步驟。
airootfs.sfs
) 或複製 live 環境根文件系統不是受支持的方法。準備本地倉庫[編輯 | 編輯原始碼]
從 Pacman/Tips and tricks#Installing packages from a CD/DVD or USB stick 獲取有關在單獨的主機安裝上準備具有必要文件的本地倉庫的說明。
至少,對於正常運行的系統,建議使用以下軟件包:
# pacman -Syw --cachedir . --dbpath /tmp/blankdb base base-devel linux linux-firmware mkinitcpio vim
創建您的自定義離線倉庫
# repo-add ./custom.db.tar.gz ./*[^sig]
掛載和配置[編輯 | 編輯原始碼]
準備好倉庫後,將外部媒體連接到新安裝,並將其掛載到新創建的根文件系統上:
# mount --mkdir /dev/sdxy /mnt/repo
編輯您的 archiso /etc/pacman.conf
並添加一個新部分:
/etc/pacman.conf
[custom] SigLevel = Optional Server = file:///mnt/repo/
注釋掉 [core]
和 [extra]
以使 pacman 在默認倉庫上不失敗。
Pacstrap[編輯 | 編輯原始碼]
您現在可以繼續將本地可用的軟件包打包到新安裝中:
# pacstrap -K /mnt base base-devel linux linux-firmware mkinitcpio vim
軟件包的離線安裝[編輯 | 編輯原始碼]
從文件安裝[編輯 | 編輯原始碼]
當離線安裝僅是臨時的,但需要在可訪問互聯網前安裝自定義的包,參見 pacman#其它命令以了解安裝本地包的方法。
# pacman -U /package/folder/*.tar.zst
離線緩存[編輯 | 編輯原始碼]
您可以把指定文件置於 /var/lib/pacman/sync
以及 /var/cache/pacman/pkg
以便 pacman
認為其擁有搜索、更新和安裝之一切所需。下文方法基於:[1][2]。
步驟:
- 用可訪問互聯網的電腦(在線電腦)下載最新包的數據庫;
- 傳輸至離線電腦(目標電腦);
- 生成離線電腦所需更新的包列表;
- 用在線電腦下載包及其簽名;
- 傳輸至離線電腦的 pacman 緩存;
- 安裝更新。
/etc/pacman.conf
文件。下列腳本會下載最新包數據庫,若需要,可修改 MIRROR
至鏡像狀態列表之任一。
download_databases.sh
#!/bin/sh ARCH="x86_64" MIRROR="https://mirrors.kernel.org/archlinux/" wget "${MIRROR}/core/os/${ARCH}/core.db" wget "${MIRROR}/extra/os/${ARCH}/extra.db" wget "${MIRROR}/multilib/os/${ARCH}/multilib.db" # and possibly -uncomment- (if customized in /etc/pacman.conf or pacman.conf.d): #wget "${MIRROR}/core-testing/os/${ARCH}/core-testing.db" #wget "${MIRROR}/extra-testing/os/${ARCH}/extra-testing.db" #wget "${MIRROR}/multilib-testing/os/${ARCH}/multilib-testing.db" # and -additionaly- debug and staging packages.
轉化為可執行文件並運行。您將得到多個 .db 文件。
下列步驟將傳輸 .db 文件至離線電腦,使您可更新包列表(效果與在線的 pacman -Sy
相同),然後生成需更新包的列表。
# cp *.db /var/lib/pacman/sync/ # pacman -Sup --noconfirm > pkglist
/etc/pacman.d/mirrorlist
定義的服務器。否則您將得到一個誤導性的錯誤信息:error: no database for package: package-name
.您還需下載相應簽名,所以請準備下載簽名的列表:
# sed -e 's/\.zst$/.zst.sig/' ../pkglist > ../siglist
將這兩個列表傳輸至在線電腦,並在空目錄裡下載列出的包:
# wget -nv -i ../pkglist # wget -nv -i ../siglist
wget --restrict-file-names=unix
.將所有 *.pkg.tar.zst
和 *.pkg.tar.zst.sig
文件帶回離線電腦,置於 /var/cache/pacman/pkg
並最後運行:
# pacman -Su
本地倉庫[編輯 | 編輯原始碼]
如果預計新系統將保持離線或物理隔離,應配置為僅期望本地倉庫。
完善倉庫[編輯 | 編輯原始碼]
在 chroot 到您的新安裝後,編輯新 /etc/pacman.conf
使之與舊者一致 (但無 /mnt
前綴):
/etc/pacman.conf
[custom] SigLevel = Optional Server = file:///repo/
注釋掉其他所有倉庫,繼續配置新系統。
從此對離線系統的任何更新都可以通過掛載本地倉庫的最新副本至 /repo
,再運行 pacman 命令。
另見[編輯 | 編輯原始碼]
- 離線閱讀:離線瀏覽 Arch Wiki.