Назад | Перейти на главную страницу

Запуск кэширующего зеркала Gentoo distfiles на Debian

У меня в локальной сети офиса есть множество хостов Linux. Я запускаю apt-cacher-ng на ящике, чтобы кэшировать загрузки пакетов для всех машин Debian и Ubuntu в сети. У нас есть несколько пользователей Gentoo, и я хотел бы также кэшировать их загрузки дистрибутивов.

Я уже использую зеркало rsync для Gentoo, и это оказалось простой и надежной настройкой.

Я бы хотел что-то вроде http-репликатор но на самом деле он поддерживается и доступен пакет Debian Squeeze. Я посмотрел на Squid, и это было многовато, хотелось бы чего-нибудь попроще. Я также посмотрел на Polipo и это казалось на правильном пути, но в нем есть роковой недостаток.

Все дистрибутивы на зеркалах Gentoo одинаковы, но если вы попытаетесь загрузить тот же файл с другого исходного зеркала, Polipo подумает, что это другой файл, что приведет к пропуску кеша. http-replicator не столкнулся с этой проблемой, и поскольку я не администрирую все ящики Gentoo, я не думаю, что могу гарантировать высокий уровень соответствия при выборе зеркала, поскольку большинство людей просто делают это с mirrorselect, тем не мение.

Итак, я ищу что-то такое:

  1. Довольно легко настроить и не требует слишком много возни или сложных настроек истечения срока действия кеша
  2. Может действовать как прозрачный HTTP-прокси
  3. Доставит тот же локальный файл, даже если он «загружается» с другого сервера.
  4. Не требует зеркалирования всей коллекции всех дистрибутивов Gentoo

Это слишком много, чтобы просить?

Вы можете легко использовать команду use apt-cacher-ng.

Remap-gentoo: file:gentoo_mirrors http://distfiles.gentoo.org/ /gentoo ; file:backends_gentoo # Gentoo Archives

  • В файле gentoo_mirrors, поместите все зеркала, которые хотите запечатлеть.
  • В файле backends_gentoo, поместите резервную копию зеркала, которую вы хотите использовать для загрузки.

Вот сценарий для создания gentoo_mirrors

# This fetches the live Gentoo mirrors list
# robbat2@gentoo.org - 2013/Dec/03
OUTFILE=gentoo_mirrors
URL=http://www.gentoo.org/main/en/mirrors3.xml
wget --save-headers -q $URL -O - \
| sed -n \
-e '/^[A-Z]/{s,^,#,g;p}' \
-e '/<mirrorgroup/{s,^,\n#,g;p}' \
-e '/<name/{s,^,#,g;p}' \
-e '/<uri/{/protocol="http"/{s/.*<uri[^>]\+>//g;s/<\/uri>//g;p}}' \
>$OUTFILE

Источник: я старший разработчик Gentoo и управляю инфраструктурой Gentoo. Я отправил вариант вышеизложенного автору апстрима apt-cacher-ng.