有多台虚拟机运行Ubuntu,它们都通过以下命令进行更新:
apt-get update
apt-get upgrade
但是单独更新每个虚拟机需要花费大量时间来下载所需的软件包,还会占用大量带宽(我的带宽已经用完了)。是否可以将更新的文件直接传输apt-get
到虚拟机中?
我知道软件包存储在里面,/var/cache/apt/archives
但我需要 apt-get 数据库文件(镜像列表、索引、镜像上可用的软件包……)
更新:有很多解决方案
- apt-cacher-ng 正如答案中提到的。
- 为缓存 apt 文件而构建的 Docker 镜像(它们实际上运行 squid)
- 只需使用 squid
另外,正如答案中提到的,请参阅在 LAN 上缓存 apt 下载的最佳方法是什么?
答案1
您已下载的 .deb 文件存储在 中/var/cache/apt/archives/
。
答案2
/var/cache/apt/archives
是它们应该存储的地方。
答案3
这不是对你问题的明确回答,但你考虑过设置一个 apt 代理吗?我使用 apt-cacher-ng (apt-get install apt-cacher-ng)。也许在 VM 主机上设置它,并告诉 VM(和主机)使用它作为代理(就像将文件(例如02proxy
)添加到/etc/apt/apt.conf.d/
包含
Acquire::http { Proxy "http://vm host ip:3142"; };
这样,您就无需apt-get upgrade
手动复制文件。当一台计算机下载 deb 时,它们将存储在代理上,以供下一台请求它的计算机使用。可以处理多个版本和不同的架构等
答案4
你可以把所有的*.deb备份,然后复制到vmware里,你可以复制到/root/sw_backup
。文件夹不能是/var/cache/apt/archives/
。
然后您可以使用 synaptic 进行本地安装。$synaptic “文件”菜单找到本地安装。但它也需要网络,只需要更新一个小包。