[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Зеркало Sarge



On 2005.02.02 at 16:19:03 +0300, Artem Chuprina wrote:

> Sergey Matashuk -> debian-russian@lists.debian.org  @ Wed, 2 Feb 2005 15:10:34 +0200:
> 
>  SM> Возник следующий вопрос: как сделать локальное зеркало только Sarge?
>  SM> Хотелось бы сохранить структуру каталогов (pool/main/a/???/???.deb)
>  SM> Нужно, чтобы все это счастье можно было бы просто обновлять. Пробовал
>  SM> Брать Packages.gz, grepом доставать оттуда линки, скармливать их wget.
>  SM> Но, как следить за обновлениями? Если проделать то же, допустим, через
>  SM> неделю, то некоторые имена файлов поменяются, я их успешно скопирую, и
>  SM> со временем получится свалка файлов, которых нет в моем Packages.
> 
> Если тебе нужно зеркало, то его следует миррорить каким-нибудь более
> осмысленным протоколом.  У меня используется absurd_debmirror.

Осмысленность протокола тут абсолютно некритична. Миррор debian устроен
так, что обновляются без изменения названия только файлы Packages.gz, 
Sources.gz и Contents-<arch>.gz. Вот их имеет смысл тянуть rsync-ом, и
то, если это делать так как делает absurd_debmirror, это приводит к
тому, что в момент обновления миррора (когда новый Packages уже
выкачался а пакеты -еще нет) миррор невалиден.

Стоило бы делать так:

1. Создаем временные копии файлов Packages, Sources и Contents-<arch>.
2. rsync-ом синхронизируем их с текущей версией.
3. Строим список файлов, которые есть в новых Packages и Sources, но 
отсутствут в мирроре.
4. Выкачиваем их. Здесь можно использовать любой протокол. Поскольку
выкачиваются только новые файлы, rsync принципиальных преимуществ перед
http/ftp не имеет.
5. Кладем новые Packages и Sources на место старых. С этого момента наш
миррор уже начинает раздавать своим клиентам новую версию.
6. Строим список файлов, которые не присутствуют в Packages и Sources,
но присутствуют в мирроре и удаляем их.

В принципе, absurd_debmirror делает почти то же самое, с той разницей
что не делает пункт 1, поэтому в течении пунктов 3-4 миррор бывает
невалиден.




Reply to: