uos/deepin下利用deb包配置本地apt源 |
您所在的位置:网站首页 › uos制作镜像软件 › uos/deepin下利用deb包配置本地apt源 |
uos操作系统下,平时用apt指令安装的包,其对应的deb包文件会存储在/var/cache/apt/archive中,采用apt指令也可以只下载包,不安装,利用这些deb文件,我们可以制作自己的apt源,供那些无法连接外网的机器使用。 下面以libreoffice包为例,制作对应的apt源: 1、下载libreoffice相关的所有deb包,最后找一台完全没有安装过libreoffice的机器下载,这样就会将所有依赖一起下载下来,否则apt检测到本地已经安装了对应依赖,是不会下载的。指令如下: sudo apt --download-only install libreoffice 2、将/var/cache/apt/archive下所有的deb包剪切出去,如: sudo mv /var/cache/apt/archive/*.deb /data/temp/packs/libreoffice 3、获取Packages文件。这一步有2种实现方案,均可以 首先进入对应目录:cd /data/temp/packs,注意是进入libreoffice的上一层目录 (1)接下来第一种实现方案: apt-ftparchive packages . | gzip -9c > Packages.gz gunzip -k Packages.gz 便得到了Packages文件 (2)第二种实现方案,利用dpkg-scanpackages指令,但使用这个指令需要先安装dpkg-dev包,所有指令为: sudo apt install dpkg-dev dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz gunzip -k Packages.gz 4、获取Release文件,指令如下: apt-ftparchive release ./ > Release 这一步之后,/data/temp/packs下的文件应该如下图所示: 5、修改/etc/apt/sources.list文件,并更新源。将sources.list的内容修改成如下图所示:
然后运行 sudo apt update 至此,本地apt源的配置就全部完成了。 其中 [trusted=yes] 绝对不可以省略,因为这里我配置本地源时并未采用gpg签名Release文件,所以若不加[trusted=yes],apt会认为该源不可靠,然后忽略,apt update无法通过。至于怎么采用gpg签名,有兴趣的可以通过man 8 apt-secure和man 5 sources.list研究。 遇到的问题记录: 在完全没有外网的情况下,由于商店源和打印源还在,会报域名解析错误的问题,导致apt update会失败,我采用的解决办法是将/etc/apt/sources.list.d/目录下的2个文件appstore.list、printer.list里面的源也修改成file:///data/temp/packs,这样apt update的时候会报些警告,但是可以通过。实际上,我认为将appstore.list、printer.list里面的内容都注释掉,或者将这2个文件删除应该也是可以的。apt update时遇到过/var/lib/dpkg/status文件Merging失败的问题,这个错误的出现可能和我最初将appstore.list、printer.list里面的内容都注释掉有关,不确定是不是因此导致的。这个问题的解决办法是,将现在的status文件删除或改名,并将status-old复制成status,指令如下:cd /var/lib/dpkg mv status status_backup cp status-old status |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |