离线安装
此文提供在无互联网连接时安装 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.