[Exchange and share] deepin应用在内网,如何使用apt-get命令自动更新软件源
Tofloor
poster avatar
zhanghq
deepin
2022-11-22 18:53
Author

我计划再一个内部网络内使用deepin系统,用于日常办公或用作服务,因为在隔离网络内部,所以这些终端都是不能直接连接互联网的,因此不能通过apt-get install xxx命令直接安装软件,我计划找一台同样是deepin的系统,利用apt-get的命令将我需要安装的软件源都下载下来,再拷贝到内网终端上。

我参考互联网上制作离线源、如何创建本地APT存储库等文章,已经做了如下操作:

1、在外网deepin系统的PC上运行:apt-get install XXX \\下载我需要用的软件源,因为这个是外网电脑,所以可以直接利用网络源安装。

2、外网机器,创建一个目录,将在其中保留软件包。在此示例中,我们将使用/usr/local/mydebs
sudo mkdir -p /usr/local/mydebs

3、将/var/cache/apt/archives中的软件包(缓存)copy到新建的mydebs
sudo cp -r /var/cache/apt/archives/* /usr/local/mydebs/*

网上说在debs这个目录创建Packages.gz,注意生成的路径带debs,否则内网安装时会说找不到文件,我上述的路径已经包含mydebs,应该符合

4、在debs这个目录创建Packages.gz,注意生成的路径带debs,否则内网安装时会说找不到文件

image.png

5\外网机器,生成公钥和私钥:gpg --gen-key

6\将密钥公钥私钥导出

image.png

7、外网电脑,在mydebs这个目录下创建release file

apt-ftparchive release ./ > Release

8、生成InRelease和Release.gpg
#gpg --clearsign -o InRelease Release
#gpg -abs -o Release.gpg Release

如此:外网机器的mydebs目录下有我们需要的deb文件、InRelease、Release、Release.gpg以及Packages.gz
把整改外网电脑的mydebs拷贝到内网机器的相同路径目录内,
公钥文件username.pub拷贝也拷贝到内网电脑并导入:apt-key add xxx.pub

9、.在内网电脑上备份apt源文件/etc/apt/source.list,并修改源。
$ sudo gedit /etc/apt/sources.list
将sources.list 原来的内容都注释掉。在最后添加


image.png

10、更新源就报错,

image.png

有知道如何处理的吗

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Q&A Team
2022-11-22 19:00
#1

apt install -d应该可以下载所有需要的软件包的

直接内网生成密钥?我不太清楚这个方式,我本地源也是用的http

也许你会需要这个 https://gitee.com/deepin-community-store/repo_auto_update_script/blob/master/repo-maintain/incremental-updating-packages.sh 这个脚本可以让apt-ftparchieve不必每次刷新都重新hash一遍

https://blog.shenmo.tech/post/apt-ftparchieve-deb-apt%E4%BB%93%E5%BA%93-%E5%A2%9E%E9%87%8F%E6%9B%B4%E6%96%B0/

这是我写的一个使用指南,不过和你的情况不完全一致,可以参考一下

Reply View the author
ThinkYoung
deepin
2022-11-22 22:29
#2

不用那么复杂,用apt-mirror复刻就够了

参照我的帖子 准备好硬盘空间 就行了

【Nightly】deepin搭建本地镜像源更新系统

Reply View the author