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