uos/deepin下利用deb包配置本地apt源

您所在的位置:网站首页 uos制作镜像软件 uos/deepin下利用deb包配置本地apt源

uos/deepin下利用deb包配置本地apt源

2023-08-20 02:09| 来源: 网络整理| 查看: 265

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