如何设置仅按需下载软件包的本地镜像

如何设置仅按需下载软件包的本地镜像

这是一个复杂的问题……多年来,我一直在寻找这个问题的适当解决方案:我在非洲工作,那里的互联网连接通常很慢,而且仅限于少数几个地方。当向这里的人们提供 GNU/Linux 时,访问存储库以更新计算机或安装新软件始终是一个问题。

这次,我在家里有一个可以接受的 V-Sat 连接,但在办公室,连接仅限于公司计算机(通过 VPN 等)。将 Linux 机器插入本地网络无法访问互联网。

我愿意建议员工在他们的旧私人电脑(仅限 Ubuntu 版本)上安装 GNU/Linux 发行版,并且我想设置一些东西,让他们能够通过间接的“apt-mirror”类型的解决方案来更新办公室的电脑。

具体来说,我需要找到自动更新 pkgcache.bin 的方法,然后他们可以生成一个下载脚本,我在家里执行该脚本,第二天他们就可以获得所需的软件包进行安装/更新。

为此,我可以配置一个 Raspberry Pi 2 盒子作为本地存储库,但我不希望它下载所有可用的软件包(我买不起的 9 Gb),而只下载已安装的软件包(用于更新)或请求的软件包(来自脚本)。

非常欢迎提出建议/问题/想法!

注意:这不是重复的如何避免每次安装 Ubuntu 时下载软件包?。事实上,就我而言,我需要一种解决方案,让客户端连接到没有互联网连接的位置的本地存储库服务器,服务器也没有互联网连接(只有本地 LAN)。然后,服务器(即 Raspbery Pi 2 机器)将物理移动到可以访问互联网的站点并下载客户端请求的软件包。一旦返回本地 LAN,它将允许客户端更新或安装请求的软件包...

NR 2:但是,我相信这是该问题的重复:如何在没有互联网(离线)的情况下安装软件或软件包?卡米克里立方体可能是最好的解决方案(apt-offline 也可能合适)......

所以,是的,它是重复的......(我不知道如何将其标记为重复)。

答案1

我认为你可以使用类似 apt-cacher-ng 的东西,这是一个缓存 apt 代理而不是镜像,这意味着它将提供完整的存储库,不仅是它本地拥有的包,而且请求的包只会被检索一次然后被缓存,包列表等也是如此,只要它们仍然是最新的,就会被缓存。

它还包括配置选项,可以在客户端请求之前使用通配符预先缓存某些单独的包或包树的分支,这可能提供两全其美的效果,允许在可能的情况下使用本地资源,但在需要时仍提供回退到远程存储库。

这是手册,值得一看,看看它是否适合您的需要。 https://www.unix-ag.uni-kl.de/~bloch/acng/html/

编辑:写完这篇文章后我突然想到,即使你真的创建了一个自定义存储库并自己维护它,客户端仍然会从主 ubuntu 存储库下载该存储库中找不到的软件包,如果他们有最近的软件包列表的副本,除非他们被完全禁用,所以如果你小心确保包含了客户需要的一切,使用 apt-cacher-ng 可能会更容易,它应该可以正常工作。

相关内容