问题描述
有多个运行Ubuntu的虚拟机,它们都通过以下命令进行更新:
apt-get update
apt-get upgrade
但是,分别更新每个VM会花费大量时间来下载所需的软件包,并且还会占用大量带宽(我已经用光了)。是否可以通过apt-get
将更新的文件直接传输到VM?
我知道程序包存储在/var/cache/apt/archives
中,但我需要apt-get数据库文件(镜像列表,索引,镜像上的可用程序包…)
更新:有很多解决方案
-
答案中提到的apt-cacher-ng。
-
用于缓存apt文件的Docker映像(它们实际上运行squid)
-
只需使用鱿鱼
另外,如答案中所述,请参阅Best way to cache apt downloads on a LAN?
最佳答案
这不是您问题的明确答案,但是您是否考虑过设置适当的代理?我使用apt-cacher-ng(apt-get安装apt-cacher-ng:D)。可能要在VM主机上进行设置,并告诉VM(和主机)将其用作其代理(就像将文件(例如02proxy
)添加到包含以下内容的/etc/apt/apt.conf.d/
一样简单)
Acquire::http { Proxy "http://vm host ip:3142"; };
这样,您可以执行apt-get upgrade
,而无需手动复制文件。当一台计算机下载Deb时,它们将存储在代理服务器上,以供下一台请求它的计算机使用。可以处理多个版本和不同的体系结构等
只是虽然:D
次佳答案
您已经下载的.deb-files存储在/var/cache/apt/archives/
中。
第三种答案
/var/cache/apt/archives
是应该存储它们的位置。