如何将包添加到squid-deb-proxy缓存中?

为了节省我的互联网计划的带宽和数据,我已经在桌面上安装了squid-deb-proxy,并在其上安装了客户端以及我已经拥有的其他一些机器。 然而,基于这篇文章的post ,听起来好像我将笔记本电脑*带到另一个网络并在那里更新,下载的更新将不会自动复制回squid-deb-proxy服务器当我得到回到我的网络上。

假设这是正确的(我将在稍后进行测试),有没有办法将这些软件包粘贴到缓存中,这样我就不必再将它们下载到网络中的其他机器上了?


*如评论中所述,我可以简单地将笔记本电脑作为代理服务器,但在我的具体情况下,笔记本电脑实际上是1)一直没有运行的VM,2)在未打开的笔记本电脑中时间。 因此,该解决方案虽然是一个好的解决方案,但在我的情况下并不起作用。

您可以使用apt-move (来自同名包)从笔记本电脑的apt缓存中的文件创建本地apt存储库。 然后使用rsync在LAN上保留此存储库的同步副本。 最后,将其他LAN计算机指向sources.list顶部的本地存储库的LAN副本,以便apt更喜欢本地存储库而不是远程存储库。

这仍然是一个不完整的答案,但它可能是最好的答案,所以请继续阅读,如果对可能的部分/丑陋/复杂的解决方案感到好奇。

有趣的问题,我遇到了同样的问题,但我从来没有修复它,而是我只是试图限制我的apt-getting在我的本地局域之外。 真的不值得麻烦,最多我去年浪费了20MB。 我的iso洪流播种弥补了这一点。 但!

  1. 您可以在笔记本电脑和家庭之间设置隧道/代理以利用您的家庭缓存(出于隐私原因,这是一个好主意),但是,您将依赖于您的上传速度。 这不仅会很慢,而且你会使用2倍的带宽来下载同样的东西。 1x从Ubuntu镜子进入你的局域网,1x从咖啡店进入你的局域网。

  2. 我建议可以在笔记本电脑上运行缓存服务器,然后使用rsync使其与您的家庭服务器保持同步。 然而,这会带来一个问题,当您在家时,笔记本电脑上的服务器仍将运行。 为了解决这个问题,我可以看到两种可能性。 1.在家中停止笔记本电脑上的缓存服务器2.保留笔记本电脑上家庭服务器上存在的所有缓存副本(额外的空间要求)并通过将缓存的数据推送到服务器来完成此操作带有rsync的家,还经常将缓存的数据下载到您的笔记本电脑服务器。 在建议这一点时,我假设一台服务器上的squid-deb-proxy缓存与另一台服务器兼容,并且你可以像这样交换文件。 这些选项当然也需要一些脚本。 我的缓存位于/ var / cache / squid-deb-proxy /以下,这不是人们可以理解的。

我们使用一个简单而愚蠢的方法:squid-deb-proxy可以将自己用作代理。 所以我只是这样做:

  1. 我在squid-deb-proxy服务器上安装客户端软件:

    apt-get install squid-deb-proxy-client

  2. 我创建了一个简单的脚本,列出了所有已安装的包 – 并重新下载每个包:

     #!/bin/bash # Create temp dir & change into it tmpdir=$(mktemp -d) pushd $tmpdir # Get all installed packages and re-download them for package in $(dpkg --get-selections | cut -f 1); do apt-get download $package; done; popd # Delete tmp dir 

这样我们就已经有了一个不那么糟糕的基本缓存。

如果我们想将现有服务器的所有包添加到缓存中,那么我们只执行相同的过程1)和2)

Interesting Posts