本地DVD做deb源,apt-get快得飞起

背景

公司生产环境电脑必须离线办公,如需下载文件必须用另一台机器下载后用U盘拷贝到生产环境电脑。Debian不能从外网下载deb包很是麻烦,一些简单的软件列如minicom.deb直接到网络源手动下载还算轻松(http://mirrors.aliyun.com/debian/pool/main)。

遇到一些依赖复杂的,列如输入法fcitx:依赖总共20多个,一个个下载猴年马月。

本地DVD做deb源,apt-get快得飞起

当然也有曲线救国的方式,找一台同一系统版本的机器,apt-get安装相应的软件包,再从
/var/cache/apt/archives/ 目录里拷贝下载的软件包到离线的机器上去,手动执行 dpkg -i *.deb 2-6次,这得根据依赖程度而定,dpkg不会自动在当前目录下寻找依赖文件,能安装则安装,错了就报错

实则我们下载Debian安装盘时就以及包含若干deb软件包,直接本地安装即可,下面就介绍方法。

准备

去debian官网寻找iso,不要下载CD或netinst类型的iso,这两个都是精简安装,没有图形界面,尤其没有中文。

官网找到DVD版ISO,下面有3个DVD全都下载,3个DVD里面包含的除了non-free之外的常用deb包。

  • 64bit: https://cdimage.debian.org/debian-cd/current/amd64/bt-dvd/
  • 32bit: https://cdimage.debian.org/debian-cd/current/i386/bt-dvd/

本地DVD做deb源,apt-get快得飞起

下载的镜像分别挂载

sudo mount  -o loop /mnt/data/iso/debian-10.6.0-amd64-DVD-1.iso /mnt/10-iso-1/
sudo mount  -o loop /mnt/data/iso/debian-10.6.0-amd64-DVD-2.iso /mnt/10-iso-2/
sudo mount  -o loop /mnt/data/iso/debian-10.6.0-amd64-DVD-3.iso /mnt/10-iso-3/

3个iso总共deb大约12G,内容还是丰富的。

本地DVD做deb源,apt-get快得飞起

本地DVD做deb源,apt-get快得飞起

接下来是关键的步骤,添加我们本店源到 /etc/apt/sources.list,注意这里的file后面是 3个 '/',不要写错。后面的main、contrib是源池pool的子目录。

  deb file:///mnt/10-iso-1 buster main contrib
  deb file:///mnt/10-iso-2 buster main contrib
  deb file:///mnt/10-iso-3 buster main contrib

buster只是Debian的发布代号,需要根据自己的源名字修改,它的实际名称在dist目录下,对于本地源来说这个符号可以强制写成stable。

为什么有这个怪异的名称呢?由于对于网络源来说,它的源库中包含若干发布的系统版本,不能保证所有版本都能向下兼容,所有才有诸如stretch、jessie、wheezy、squeeze这样的代号,它们分别对应着:

  • Debian 9(”stretch”)
  • Debian 8(”jessie”)
  • Debian 7(”wheezy”)
  • Debian 6(”squeeze”)

本地DVD做deb源,apt-get快得飞起

执行sudo apt-get update 本以为大功告成,提示没有签名 (signed)

$ sudo apt-get update
Get:1 file:/mnt/10-iso-1 buster InRelease
Ign:1 file:/mnt/10-iso-1 buster InRelease
Get:2 file:/mnt/10-iso-1 buster Release [33.5 kB]
Get:2 file:/mnt/10-iso-1 buster Release [33.5 kB]
Get:3 file:/mnt/10-iso-1 buster Release.gpg
Ign:3 file:/mnt/10-iso-1 buster Release.gpg
Hit:4 http://packages.microsoft.com/repos/vscode stable InRelease                                                       
Get:5 https://debrepo.freedownloadmanager.org bionic InRelease [1,706 B]                                                
Reading package lists... Done        
E: The repository 'file:/mnt/10-iso-1 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.

解决签名

网上有若干解决签名的方法,列如 apt-key、gpg等,这些方法是构建网络源,生成公钥才这么干,我们本地源有更简单的方法: 信任源

重新编辑 /etc/apt/sources.list , 加上 [trusted=yes] 选项

本地DVD做deb源,apt-get快得飞起

再次执行 sudo apt-get update,成功刷新。

目前开始,后来绝大多数源都可以在本地更新咯。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共3条

请登录后发表评论