Как добавить пакеты в кеш squid-deb-proxy?

10

Чтобы сохранить пропускную способность и данные в моем интернет-плане, я установил squid-deb-proxy на рабочий стол, а также клиент и несколько других компьютеров, которые у меня есть. Тем не менее, если исходить из сообщения, в котором говорится, что если я перенесу свой ноутбук * в другую сеть и обновлю его там, загруженные обновления НЕ будут автоматически скопированы обратно на сервер squid-deb-proxy, когда я получу вернуться в мою сеть.

Предполагая, что это правильно (я буду тестировать позже), есть ли способ, которым я могу вставить эти пакеты в кеш, чтобы мне не пришлось загружать их еще раз для других машин в сети?


* Как отмечено в комментариях, я мог бы просто сделать ноутбук прокси-сервером, но в моем конкретном случае ноутбук фактически 1) виртуальная машина, которая не работает все время, 2) в ноутбуке, который не открыт все время. Таким образом, это решение, хотя и хорошее, не работает в моем случае.

zpletan
источник
Разговоры с автором об этом в прошлом делают это на удивление нетривиально, может быть, кто-то может придумать что-нибудь умное.
Хорхе Кастро
Возможно, askubuntu.com/q/113983/8724 может помочь. , , ,
zpletan
Этот ноутбук, который вы используете в другой сети, squid-deb-proxyсервер?
saji89
@ saji89: нет, все машины находятся в одной сети.
zpletan
Я не думаю, что вы поняли вопрос, заданный @ saji89, и у меня такой же вопрос. Если вы установите squid-deb-proxy на ноутбуке и squid-deb-proxy-client на настольном компьютере и ноутбуке, то ноутбук становится прокси и использует прокси локально. Таким образом, когда вы находитесь вдали от дома, он будет хранить обновления на ноутбуке. Когда вы вернетесь домой, рабочий стол будет получать обновления с ноутбука.
Попей

Ответы:

2

Вы можете использовать apt-move(из одноименного пакета) для создания локального хранилища apt из файлов в кэше apt вашего ноутбука. Затем используйте rsyncдля сохранения синхронизированной копии этого хранилища в вашей локальной сети. Наконец, укажите другим компьютерам локальной сети на вашу локальную копию локального репозитория sources.list, чтобы apt предпочитал локальный репозиторий удаленным.

Роби Басак
источник
0

Это все еще неполный ответ, но он может быть наилучшим из возможных ответов, так что читайте дальше, если вам интересно узнать о возможных частичных / некрасивых / сложных решениях.

Интригующий вопрос, я столкнулся с той же проблемой, но я никогда ее не исправлял, вместо этого я просто стараюсь ограничить свои возможности выйти за пределы своей локальной сети. Это действительно не стоило хлопот, самое большее, что я потратил, как 20 МБ за последний год. Мой сеанс iso torrent восполняет это. Но!

  1. вы можете настроить туннель / прокси между вашим ноутбуком и домом, чтобы использовать домашний кеш (в любом случае это хорошая идея из соображений конфиденциальности), но тогда вы зависите от скорости загрузки. Мало того, что это будет медленно, но вы будете использовать в 2 раза большую пропускную способность, чтобы загрузить то же самое. 1x входя в вашу сеть из зеркал Ubuntu и 1x в кафе.

  2. Я предлагаю, чтобы на вашем ноутбуке можно было запустить кеш-сервер, а затем использовать rsync для синхронизации с вашим домашним сервером. Это создает проблему, однако, в том, что когда вы дома, этот сервер на вашем ноутбуке все еще будет работать. Чтобы справиться с этим, я мог видеть две возможности. 1. Остановите сервер кэширования на вашем ноутбуке, находясь дома. 2. Сохраните все кэшированные копии, которые существуют на вашем домашнем сервере, на вашем ноутбуке (дополнительные требования к пространству) и выполните это, не только передавая кэшированные данные на сервер, когда вы получаете дома с rsync, но также регулярно отправляет кэшированные данные на сервер вашего ноутбука. Предлагая это, я сделал предположение, что кеш squid-deb-proxy на одном сервере совместим с другим, и что вы можете таким образом обмениваться файлами. Эти параметры также, безусловно, потребуют некоторых сценариев.

Дэвид А
источник
0

Мы используем простой и глупый подход: squid-deb-proxy может использовать себя в качестве прокси. Поэтому я просто делаю:

  1. Я устанавливаю клиентское программное обеспечение на сервере squid-deb-proxy:

    apt-get установить 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)

Том
источник