Для генерирования общего отчета по всем пакетам Gnome возникла необходимость их всех скачать. Каждый пакет представлен отдельным репозиторием, к которому необходимо обращаться отдельно.
Всего пакетов 653 (см. далее как удалось определить количество), соответственно надо обратиться к 653 репозиториям.
На странице https://git.gnome.org/browse/ представлен полный список пакетов с указанием разделов, к которым они относятся и описаний пакетов.
Скачать отдельный пакет можно командой:
"D:\Program Files\Git\bin\git" clone git://git.gnome.org/MODULE
где MODULE - название пакета.
Пример команды приведен для windows.
Проблема в том, что необходимо выполнить 653 команды с названиями пакетов.
Если хватит терпения скопировать 653 раза строку команды и 653 раза через буфер скопировать с сайта название модуля в эту строку, то можно дальше не читать... :)
Попробовав так сделать... я быстро понял, что это не решение... это отдельная проблема.
Далее привел мое решение генерирования списка команд для скачивания пакетов:
1) Копируем список с сайта в NotePad++.
Далее производим замену текста регулярными выражениями и обязательно указываем учитывание регистра в NotePad++.
2) Производим замену ^(\S+\s).*$ на $1 - удаляем все описания.
Получится список первых слов в предложениях, содержащих названия пакетов.
3) Производим замену ^[A-Z].*$ на "пусто" для удаления заголовков.
4) Производим замену \s+$ на "пусто" для удаления лишних пробелов и пустых строк (кроме первой).
Получилось 653 названия.
5) Заменяем ^(.+)$ на \"D:\\Program Files\\Git\\bin\\git\" clone git:\/\/git\.gnome\.org\/$1
Получаем полный список команд с пакетами.
6) В начало bat-файла добавил cd "i:\gnomegit" для указания каталога в который будут загружены пакеты, просто перестраховка.
В начало и конец bat-файла добавил time /t , а также при запуске bat-файла указал вывод информации в файл - 1>log.txt
На экран будет выводится служебная информация о скорости скачивания, а общая информация будет передаваться в лог.
Возможно лучше будет разделить bat-файл на несколько для повышения скорости скачивания (см. далее).
Выводы после скачивания:
Средняя скорость скачивания: около 290КБ/с.
Время скачивания: примерно 9 часов.
Объем каталога со всеми пакетами после их скачивания: 12.6ГБ, 229217 файлов, 29761 каталог.
Статистика по каталогу содержит служебные каталоги .git и специальные файлы.
Скорость скачивания вероятно ограничена сервером на каждый пакет, так как при запуске одновременно нескольких скачиваний скорость каждого составляет примерно 290КБ/с, соответственно можно разделить bat-файл на части и запустить их одновременно, что в разы (по количеству bat-файлов) увеличит скорость.
Но, так как файлов большое количество, то это повысит и нагрузку на винчестер при одновременной записи большого количества файлов.
Скорость можно повысить за счет использование команд git ограничивающих количество ревизий для скачивания и пр.
Сгенерированные отчеты по данным пакетам опубликую поздней вместе с информацией по другим открытым система.
Всего пакетов 653 (см. далее как удалось определить количество), соответственно надо обратиться к 653 репозиториям.
На странице https://git.gnome.org/browse/ представлен полный список пакетов с указанием разделов, к которым они относятся и описаний пакетов.
Скачать отдельный пакет можно командой:
"D:\Program Files\Git\bin\git" clone git://git.gnome.org/MODULE
где MODULE - название пакета.
Пример команды приведен для windows.
Проблема в том, что необходимо выполнить 653 команды с названиями пакетов.
Если хватит терпения скопировать 653 раза строку команды и 653 раза через буфер скопировать с сайта название модуля в эту строку, то можно дальше не читать... :)
Попробовав так сделать... я быстро понял, что это не решение... это отдельная проблема.
Далее привел мое решение генерирования списка команд для скачивания пакетов:
1) Копируем список с сайта в NotePad++.
Далее производим замену текста регулярными выражениями и обязательно указываем учитывание регистра в NotePad++.
2) Производим замену ^(\S+\s).*$ на $1 - удаляем все описания.
Получится список первых слов в предложениях, содержащих названия пакетов.
3) Производим замену ^[A-Z].*$ на "пусто" для удаления заголовков.
4) Производим замену \s+$ на "пусто" для удаления лишних пробелов и пустых строк (кроме первой).
Получилось 653 названия.
5) Заменяем ^(.+)$ на \"D:\\Program Files\\Git\\bin\\git\" clone git:\/\/git\.gnome\.org\/$1
Получаем полный список команд с пакетами.
6) В начало bat-файла добавил cd "i:\gnomegit" для указания каталога в который будут загружены пакеты, просто перестраховка.
В начало и конец bat-файла добавил time /t , а также при запуске bat-файла указал вывод информации в файл - 1>log.txt
На экран будет выводится служебная информация о скорости скачивания, а общая информация будет передаваться в лог.
Возможно лучше будет разделить bat-файл на несколько для повышения скорости скачивания (см. далее).
Выводы после скачивания:
Средняя скорость скачивания: около 290КБ/с.
Время скачивания: примерно 9 часов.
Объем каталога со всеми пакетами после их скачивания: 12.6ГБ, 229217 файлов, 29761 каталог.
Статистика по каталогу содержит служебные каталоги .git и специальные файлы.
Скорость скачивания вероятно ограничена сервером на каждый пакет, так как при запуске одновременно нескольких скачиваний скорость каждого составляет примерно 290КБ/с, соответственно можно разделить bat-файл на части и запустить их одновременно, что в разы (по количеству bat-файлов) увеличит скорость.
Но, так как файлов большое количество, то это повысит и нагрузку на винчестер при одновременной записи большого количества файлов.
Скорость можно повысить за счет использование команд git ограничивающих количество ревизий для скачивания и пр.
Сгенерированные отчеты по данным пакетам опубликую поздней вместе с информацией по другим открытым система.
Комментариев нет:
Отправить комментарий