Как добавить пакеты в кеш squid-deb-proxy?
Чтобы сохранить пропускную способность и данные в моем интернет-плане, я установил squid-deb-proxy на рабочий стол, а также клиент и несколько других компьютеров, которые у меня есть. Тем не менее, если исходить из сообщения, в котором говорится, что если я возьму свой ноутбук * в другую сеть и обновлю его там, загруженные обновления НЕ будут автоматически скопированы обратно на сервер squid-deb-proxy, когда я получу вернуться в мою сеть.
Предполагая, что это правильно (я буду тестировать позже), есть ли способ, которым я могу вставить эти пакеты в кеш, чтобы мне не нужно было загружать их еще раз для других машин в сети?
* Как отмечено в комментариях, я мог бы просто сделать ноутбук прокси-сервером, но в моем конкретном случае ноутбук фактически 1) виртуальная машина, которая не работает все время, 2) в ноутбуке, который не открыт все время. Таким образом, это решение, хотя и хорошее, в моем случае не работает.
3 ответа
Вы могли бы использовать apt-move
(из пакета с тем же именем), чтобы создать локальный репозиторий apt из файлов в кэше apt вашего ноутбука. Тогда используйте rsync
сохранить синхронизированную копию этого хранилища в вашей локальной сети. Наконец, укажите другим компьютерам локальной сети на вашу локальную копию локального хранилища в верхней части sources.list
, так что apt предпочитает локальный репозиторий, а не удаленный.
Мы используем простой и глупый подход: squid-deb-proxy может использовать себя в качестве прокси. Поэтому я просто делаю:
Я устанавливаю клиентское программное обеспечение на сервере squid-deb-proxy:
apt-get установить squid-deb-proxy-client
Я создал простой скрипт, который перечисляет все установленные пакеты и загружает каждый пакет заново:
#!/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)
Это все еще неполный ответ, но он может быть наилучшим из возможных ответов, поэтому продолжайте читать, если вам интересно узнать о возможных частичных / некрасивых / сложных решениях.
Интригующий вопрос, я столкнулся с той же проблемой, но я никогда ее не исправлял, вместо этого я просто стараюсь ограничить свои возможности выйти за пределы своей локальной сети. Это действительно не стоило хлопот, самое большее, я потратил впустую как 20 МБ за прошлый год. Мой сеанс iso torrent восполняет это. Но!
Вы можете настроить туннель / прокси между вашим ноутбуком и домом, чтобы использовать домашний кеш (в любом случае это хорошая идея из соображений конфиденциальности), но тогда вы будете зависеть от скорости загрузки. Мало того, что это будет медленно, но вы будете использовать в 2 раза большую пропускную способность, чтобы загрузить то же самое. 1x входя в вашу сеть из зеркал Ubuntu и 1x в кафе.
Я предлагаю, чтобы на вашем ноутбуке можно было запустить кеш-сервер, а затем использовать rsync для синхронизации с вашим домашним сервером. Это создает проблему, однако, в том, что когда вы дома, этот сервер на вашем ноутбуке все еще будет работать. Чтобы справиться с этим, я мог видеть две возможности. 1. Остановите сервер кэширования на своем ноутбуке, находясь дома. 2. Сохраните все кэшированные копии, которые есть на вашем домашнем сервере, на вашем ноутбуке (дополнительные требования к пространству) и выполните это, не только передавая кэшированные данные на сервер, когда вы получаете дома с rsync, но также регулярно отправляет кэшированные данные на сервер вашего ноутбука. Предлагая это, я сделал предположение, что кеш squid-deb-proxy на одном сервере совместим с другим, и что вы можете таким образом обмениваться файлами. Эти параметры также, безусловно, потребуют некоторых сценариев. Кеш для меня находится в /var/cache/squid-deb-proxy/ и ниже, что не совсем понятно человеку.