我的虚拟机的 HTTP 缓存

我的虚拟机的 HTTP 缓存

我家里的 PC 上运行着几台 Linux 虚拟机。Linux 的一个怪癖是,每次运行包管理器时,它都会“刷新”已配置的软件存储库 - 这基本上意味着它要从互联网上下载文件。如果我恢复到 VM 的早期快照,那么下次运行包管理器时,它将重新下载完全相同的数据 [因为它不再存在于 VM 中]。

浪费带宽一遍又一遍地下载相同的数据似乎很可惜,所以我想知道是否有办法设置某种 HTTP 代理服务器来缓存下载的文件。但我不知道该怎么做。特别是,需要设置它,以便虚拟机不需要“知道”缓存在那里;它需要是透明的。但我不知道该怎么做。

关于我需要使用什么软件,有什么建议吗?如果我可以在 Windows 主机操作系统下运行它,那就太好了,但是使用 Linux 客户机运行小型 VM 也是可能的……

答案1

此幻灯片涵盖了基于 Debian 的 Linux 发行版的包缓存代理的几种解决方案:

  • 作为代理运行:您告诉它使用什么镜像,然后配置客户端将其用作唯一镜像。

    在软件包主机上安装:sudo apt-get install apport

  • 配置 Approx 以使用您最喜欢的后端镜像/etc/approx/approx.conf

    debian   http://ftp.au.debian.org
    non-US   http://ftp.au.debian.org/non-US
    security http://security.debian.org/security
    
  • 配置客户端以使用 Approx 服务器:

    deb http://localcache:9999/debian stable main contrib
    deb http://localcache:9999/security stable main
    

apt-代理

  • 类似于 Approx

    安装sudo apt-get install apt-proxy

  • 配置最喜欢的镜像/etc/apt-proxy/apt-proxy-v2.conf

    [debian]
    backends =
        http://ftp.au.debian.org
        http://ftp.us.debian.org
    
  • 使用 Approx 配置客户端如下:

    deb http://localcache:9999/debian stable main contrib
    deb http://localcache:9999/security stable main
    

它们被设计为在 Linux 上运行,但您可能能够以最少的麻烦将它们移植到 Windows。我希望 Python 是独立于平台的,但我发现程序员经常做出假设。

相关内容