On 2005.02.02 at 16:19:03 +0300, Artem Chuprina wrote: > Sergey Matashuk -> [email protected] @ 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 миррор бывает невалиден. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

