Debian使用DVD离线更新

下载光盘镜像

  1. 官方最新DVD镜像下载地址

debian-10.2.0-amd64-DVD-1.iso
debian-10.2.0-amd64-DVD-2.iso
debian-10.2.0-amd64-DVD-3.iso

  1. DVD里面包含的软件包按照流行程度排列次序,第一张里面包含最常用的软件可以满足安装三大桌面环境,而最后一张光盘里面包含的是很少有人用到的软件。

挂载使用光盘

  1. 系统内手动挂载镜像文件
1
sudo mount -t iso9660 -o loop /mnt/debian-10.2.0-amd64-DVD-1.iso /media/debian1/
  1. 编辑/etc/fstab来实现开机自动挂载镜像
1
2
3
/mnt/debian-10.2.0-amd64-DVD-1.iso /media/debian1 iso9660 defaults 0 0
/mnt/debian-10.2.0-amd64-DVD-1.iso /media/debian2 iso9660 defaults 0 0
/mnt/debian-10.2.0-amd64-DVD-1.iso /media/debian3 iso9660 defaults 0 0
  1. 如果是物理光驱的话可如下方式挂载
1
sudo mount /dev/cdrom /media/debian1/

添加本地包源

  1. 编辑/etc/apt/sources.list来添加并信任本地源
1
2
3
deb [trusted=yes] file:///media/debian1 buster main contrib
deb [trusted=yes] file:///media/debian2 buster main contrib
deb [trusted=yes] file:///media/debian3 buster main contrib
  1. 如果不加参数[trusted=yes]来添加信任并关闭GPG检查,更新时将报如下错误
1
2
3
E: The repository 'file:///media/debian1 buster Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

创建非自由源

  1. 官方的DVD光盘镜像里是没有non-free源的

  2. 可按以下步骤自己创建non-free源的DVD镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 安装创建源所需要的工具
sudo apt install xz-utils debmirror genisoimage

# 添加密钥信任防止报错:Can’t check signature: public key not found
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --export | gpg --no-default-keyring --keyring ~/.gnupg/trustedkeys.gpg --import

# 用debmirror获取源镜像
debmirror -a amd64 -d buster --nosource -s non-free -e http -h mirrors.aliyun.com -p ~/non-free

# -a:系统架构方式,默认i386
# -d:Debian的版本,默认所有
# -s:获取哪个部分,默认所有。即在main,contrib,non-free三者中选一个,
# -e:下载用的协议,默认ftp
# -h:下载源的地址,默认ftp.debian.org
# -p:存到哪个目录
# -v:详细获取过程
# --nosource:不要下载源码,默认下载

# 打包成DVD镜像,切记不要再~/non-free目录下执行
# -r指保留原文件,-o指输出文件,-J -R 使用Joliet和Rock Ridge扩展
genisoimage -r -R -J -o Debian_Buster_non-free.iso ~/non-free

# 剩下的就是跟上面一样的挂载和添加源了
sudo mount -t iso9660 -o loop /mnt/Debian_Buster_non-free.iso /media/debian4/
sudo echo "deb file:///media/debian4 buster non-free" > /etc/apt/sources.list