The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Поддержание актуального архива distfiles"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Поддержание актуального архива distfiles"
Сообщение от Beda emailИскать по авторуВ закладки(ok) on 20-Мрт-05, 05:04  (MSK)
Потребовалось создать FTP, с архивом distfiles - но немогу понять, как правильно это делать...
На ум пришло несколько решений, но времени уйдет жутко много, если их все тестировать - может кто подсказать, в каком направлении двигатся?

1. 'make checksum' - в каждой директории

это решение самое медленное - я столкнулся с невозможностью автоматизировать процес, т.к. некоторые ports запускают диалоги (как samba) или выдается предупреждение, что требуется заход на сайт (как xmill)

2. 'make fetch' или 'make fetch-recursive'

самое неудачное решение (лично для меня) - медлено... т.к. пробует для выкачивания весь списк доступных ftp

Скачать например папку distfiles с ftp.freebsd.org - недостаточно (там к сожалению не все), хочется реализовать такой проект - обновляемся по cvsup ports, дальше обновляем distfiles, файлы архивов которые устарели или убраны из ports переместить в архив (кстати, тут забавный момент с портами, которые отмечены как "marked as broken" - что с ними делать?)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Поддержание актуального архива distfiles"
Сообщение от AMDmi3 Искать по авторуВ закладки on 21-Мрт-05, 01:09  (MSK)
То есть нужно все-все дистфайлы выкачать?
Вообще, можно cd /usr/ports && make fetch (или cd /usr/ports/CATEGORY && make fetch) - скачается все или вся категория.

Тебе, видимо, нужно большего, поэтому пиши свой скрипт, который строит базу данных по /usr/ports/*/*/distinfo, и, после cvsup, проверяет, какие файлы присутствуют в старой базе данных и при этом отсутствуют в новой - их следует переместить в архив. Заодно для всего проверяет MD5. Так как cvsup пишет, какие файлы изменились, можно сэкономить время и пропускать не изменившиеся порты. Своим скриптом также можно качать несколько дистфайлов одновременно, чтобы канал не простаивал. Можно пойти дальше, и вообще отказать от make fetch, ftp искать перебором всех (или части) ссылок из ports/Mk/bsd.sites.mk, можно также воспользоваться ftpsearch.ru или чем-то подобным.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Поддержание актуального архива distfiles"
Сообщение от Beda emailИскать по авторуВ закладки(ok) on 21-Мрт-05, 02:42  (MSK)
>То есть нужно все-все дистфайлы выкачать?

да, хотелось бы... идея состоит в том, чтобы обновив по cvsup /usr/ports -  оставить в distfiles файлы только для текущего состояния... а предыдущие версии и все остальное, перенести в архив или на болванки.

>Тебе, видимо, нужно большего, поэтому пиши свой скрипт, который строит базу данных
>по /usr/ports/*/*/distinfo, и, после cvsup, проверяет, какие файлы присутствуют в старой

...тут я столкнулся с такой проблемой, некоторые порты не имеют distinfo, но имеют Makefile - что делать с такой ситуацией?

>базе данных и при этом отсутствуют в новой - их следует
>переместить в архив. Заодно для всего проверяет MD5.

...тут столкнулся с отсутствием MD5... точнее с отсутсвием хеша, в файле distinfo попадаются записи: MD5 (platon.tar.gz) = IGNORE
это значит что? что архив, даже если и изменился внутри - не изменил название?

>Можно пойти дальше, и вообще отказать от make fetch,
>ftp искать перебором всех (или части) ссылок из ports/Mk/bsd.sites.mk

...но даже в этом случае, будут недоступны архивы, лежащие на сайтах и требующие подтверждения с лицензией...
что можно придумать для этой проблемы?

А вообще-то странная ситуация... что во фре нет уже готового решения для создания такого хранилища архивов.
Например для создания зеркала официального веб-сайта есть настройки и решения, а для distfiles - нет... скорее всего из-за различия в политике лицензирования, но раз внесли в официальное дерево портов - то можно и облегчить доступ к архивам... и поддержания актуального состояния.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Поддержание актуального архива distfiles"
Сообщение от AMDmi3 Искать по авторуВ закладки on 21-Мрт-05, 22:03  (MSK)
>>То есть нужно все-все дистфайлы выкачать?
>
>да, хотелось бы... идея состоит в том, чтобы обновив по cvsup /usr/ports
>-  оставить в distfiles файлы только для текущего состояния... а
>предыдущие версии и все остальное, перенести в архив или на болванки.
А нахрен тебе вообще старые версии? Еще и на болванки писать... В помойку их!

>>Тебе, видимо, нужно большего, поэтому пиши свой скрипт, который строит базу данных
>>по /usr/ports/*/*/distinfo, и, после cvsup, проверяет, какие файлы присутствуют в старой
>...тут я столкнулся с такой проблемой, некоторые порты не имеют distinfo, но
>имеют Makefile - что делать с такой ситуацией?
Забить на них, так как это либо порты, которые ничего не делают, кроме того, что зависят от других портов (как x11/xorg), либо порты, являющиеся ссылками на другие порты с определением некоторых опций (как net/tethereal для net/ethereal). Если делать make fetch для всего, нужные дистфайлы в любом случае скачаются.

>>базе данных и при этом отсутствуют в новой - их следует
>>переместить в архив. Заодно для всего проверяет MD5.
>...тут столкнулся с отсутствием MD5... точнее с отсутсвием хеша, в файле distinfo
>попадаются записи: MD5 (platon.tar.gz) = IGNORE
>это значит что? что архив, даже если и изменился внутри - не
>изменил название?
Либо перекачивать их каждый раз и MD5 считать, либо один раз скачать и успокоиться, либо вообще не качать - на выбор.

>>Можно пойти дальше, и вообще отказать от make fetch,
>>ftp искать перебором всех (или части) ссылок из ports/Mk/bsd.sites.mk
>...но даже в этом случае, будут недоступны архивы, лежащие на сайтах и
>требующие подтверждения с лицензией...
>что можно придумать для этой проблемы?
ftpsearch.ru, например, такие файлы обычно находит (я находил, например, для net/socks5; хотя в distinfo не указан размер, пришлось сначала посмотреть каких размеров бывает файл с именем socks5-v1.0r11.tar.gz, потом скачать по экземпляру каждого размера и, наконец, найти нужный по MD5). Иначе никак. Разве что руками.

> А вообще-то странная ситуация... что во фре нет уже готового решения
>для создания такого хранилища архивов.
> Например для создания зеркала официального веб-сайта есть настройки и решения, а
>для distfiles - нет... скорее всего из-за различия в политике лицензирования,
>но раз внесли в официальное дерево портов - то можно и
>облегчить доступ к архивам... и поддержания актуального состояния.
Самое грамотное и умное решение - не заниматься фигней и просто поддерживать актуальную копию ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/. В упор не могу представить, чего тебе там не хватает. Ну, кроме портов с кривыми лицензиями, о них я написал выше. Я более чем уверен, что архив старья тебе не нужен совершенно, а ту горстку портов, которые не скачаются автоматом, можно будет стянуть и руками, если понадобятся.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Поддержание актуального архива distfiles"
Сообщение от butcher Искать по авторуВ закладки(ok) on 21-Мрт-05, 09:40  (MSK)
Советую посмотреть пакет утилит sysutils/portupgrade
С ней в составе идёт утилита portsclean, поможет удалить лишние distfiles'ы.

>2. 'make fetch' или 'make fetch-recursive'
>
>самое неудачное решение (лично для меня) - медлено... т.к. пробует для выкачивания
>весь списк доступных ftp
Ну почему же.. Вначале идёт проверка, есть ли требуемый дистриб на локальном диске, а затем уже идёт скачиваение (если необходимо).

Если покопаться в портах, то думаю можно найти и для этого утилиитку.. не было задачи, не искал..

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Поддержание актуального архива distfiles"
Сообщение от Beda emailИскать по авторуВ закладки(ok) on 21-Мрт-05, 10:48  (MSK)
>Советую посмотреть пакет утилит sysutils/portupgrade
>С ней в составе идёт утилита portsclean, поможет удалить лишние distfiles'ы.

как я понял - portsclean удаляет "лишние"... исходя из того, какие порты установлены у меня :) а мне нужны все порты.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Поддержание актуального архива distfiles"
Сообщение от butcher Искать по авторуВ закладки(ok) on 21-Мрт-05, 11:10  (MSK)
>>Советую посмотреть пакет утилит sysutils/portupgrade
>>С ней в составе идёт утилита portsclean, поможет удалить лишние distfiles'ы.
>
>как я понял - portsclean удаляет "лишние"... исходя из того, какие порты
>установлены у меня :) а мне нужны все порты.

Нет, он следит за тем, какие дистфайлы устарели и не используются ниодним портом. Я у себя переодически запускаю portsclean -D, чтобы удалить старые.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Поддержание актуального архива distfiles"
Сообщение от newser Искать по авторуВ закладки(ok) on 21-Мрт-05, 11:38  (MSK)
>>>Советую посмотреть пакет утилит sysutils/portupgrade
>>>С ней в составе идёт утилита portsclean, поможет удалить лишние distfiles'ы.
>>
>>как я понял - portsclean удаляет "лишние"... исходя из того, какие порты
>>установлены у меня :) а мне нужны все порты.
>
>Нет, он следит за тем, какие дистфайлы устарели и не используются ниодним
>портом. Я у себя переодически запускаю portsclean -D, чтобы удалить старые.
>

Непосредственно в портах есть скрипт ($PORTSDIR/Tools/scripts/distclean.sh), выполняющий те же самые задачи.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Поддержание актуального архива distfiles"
Сообщение от butcher Искать по авторуВ закладки(ok) on 21-Мрт-05, 11:46  (MSK)
>Непосредственно в портах есть скрипт ($PORTSDIR/Tools/scripts/distclean.sh), выполняющий те же самые задачи.

Я в курсе, просто пользуюсь portupgrade, да и набрать
# portsclean -D
для меня проще, чем полный путь к этому скрипту ;))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Поддержание актуального архива distfiles"
Сообщение от newser Искать по авторуВ закладки(ok) on 21-Мрт-05, 12:44  (MSK)
>>Непосредственно в портах есть скрипт ($PORTSDIR/Tools/scripts/distclean.sh), выполняющий те же самые задачи.
>
>Я в курсе, просто пользуюсь portupgrade, да и набрать
># portsclean -D
>для меня проще, чем полный путь к этому скрипту ;))

alias в помощь! :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Поддержание актуального архива distfiles"
Сообщение от Beda emailИскать по авторуВ закладки(ok) on 21-Мрт-05, 13:12  (MSK)
>>как я понял - portsclean удаляет "лишние"... исходя из того, какие порты
>>установлены у меня :) а мне нужны все порты.
>
>Нет, он следит за тем, какие дистфайлы устарели и не используются ниодним
>портом. Я у себя переодически запускаю portsclean -D, чтобы удалить старые.
>

...хм, я правильно понял? что 'portsclean -D' все равно, установлен порт у меня на машине, или нет ??

будет интересно узнать, а есть опция переноса, а не удаления архива? или как вариант - каким либо способом пометить архив (например изменить дату или владельца... и т.д.)?

и к сожалению - это только часть решения проблемы... более актуально - получение архивов в автоматическом режиме, особенно тех, что требуют регистрации на сайтах разработчиков.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Поддержание актуального архива distfiles"
Сообщение от butcher Искать по авторуВ закладки(ok) on 21-Мрт-05, 13:17  (MSK)
>...хм, я правильно понял? что 'portsclean -D' все равно, установлен порт у
>меня на машине, или нет ??
Да.

>будет интересно узнать, а есть опция переноса, а не удаления архива? или
>как вариант - каким либо способом пометить архив (например изменить дату
>или владельца... и т.д.)?

Установите наконец пакет portupgrade и почитайте мануалы
Пример, запускаем:
# portsclean -Dn
Получаем список файлов, который нужно удалить. Пишется скрипт, который перенесёт старый файлы в другой каталог, две минуты на это нужно..

>и к сожалению - это только часть решения проблемы... более актуально -
>получение архивов в автоматическом режиме, особенно тех, что требуют регистрации на
>сайтах разработчиков.

Всё автоматизировать точно не получится.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Поддержание актуального архива distfiles"
Сообщение от Beda emailИскать по авторуВ закладки(ok) on 21-Мрт-05, 13:41  (MSK)
>Установите наконец пакет portupgrade и почитайте мануалы

Ок, сегодня посмотрю... до просветления :)

>Всё автоматизировать точно не получится.

жаль...

что будет более правильно при написании своего скрипта - обход дерева портов через поиск distinfo или Makefile? или генерировать INDEX - и использовать его?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру