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


10

为了在我的Internet计划中节省带宽和数据,我在台式机上安装了squid-deb-proxy,并在其上安装了客户端和其他一些机器。但是,根据发布到此的帖子,听起来如果我将笔记本电脑*带到另一个网络并在那里进行更新,当我收到时,下载的更新将不会自动复制回squid-deb-proxy服务器回到我的网络。

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


*如评论中所述,我可以简单地将便携式计算机用作代理服务器,但是在我的特定情况下,便携式计算机实际上是1)一直未运行的VM,2)不能完全打开的便携式计算机,时间。因此,这种解决方案虽然很好,但对我而言却行不通。


过去与作者讨论此事并不令人吃惊,但也许有人可以提出一些聪明的东西。
豪尔赫·卡斯特罗

也许askubuntu.com/q/113983/8724可能会有所帮助。。。。
zpletan 2012年

您是在其他网络(squid-deb-proxy服务器)上使用的笔记本电脑吗?
saji89,2012年

@ saji89:不,所有机器都在同一网络上。
zpletan 2012年

我认为您不理解@ saji89提出的问题,而我也有同样的问题。如果在便携式计算机上安装squid-deb-proxy,在台式机便携式计算机上安装squid-deb-proxy-client ,则便携式计算机将成为代理,并在本地使用代理。这样,当您出门在外时,它将在笔记本电脑上保留更新。当您回家时,台式机将从笔记本电脑获取更新。
popey 2012年

Answers:


2

您可以使用apt-move(具有相同名称的程序包)从便携式计算机的apt缓存中的文件创建本地apt存储库。然后用于rsync将此存储库的同步副本保留在LAN上。最后,将其他LAN机器指向本地存储库的LAN副本,位于顶部sources.list,因此apt首选本地存储库,而不是远程存储库。


0

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

有趣的问题是,我遇到了同样的问题,但是我从未解决过,而是试图将自己的使用权限限制在本地局域网之外。这真的不值得麻烦,在过去的一年里,我最多浪费了20MB。我的iso种子种子弥补了这一点。但!

  1. 您可以在笔记本电脑和家庭之间建立隧道/代理来利用家庭缓存(出于隐私原因,这还是个好主意),但是,那取决于您的上传速度。这不仅会很慢,而且会使用2倍的带宽来下载相同的内容。1倍从Ubuntu镜像进入局域网,1倍到达咖啡店。

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


0

我们使用一个简单而愚蠢的方法: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)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.