Прошли очередные полгода и проект Repology (https://repology.org/), в рамках которого регулярно собирается и сравнивается информация о версиях пакетов во множестве репозиториев, публикует очередной отчёт.
- Число поддерживаемых репозиториев увеличилось почти в два раза и достигло 146. Добавлена поддержка Linux дистрибутивов AntiX, AOSC, Deepin, Devuan, Funtoo, KaOS, LEDE, MX Linux, OpenMandriva, Parrot, Rosa Server, Sparky, репозиториев Homebrew, Linuxbrew, OpenIndiana, HaikuPorts, vcpkg, Ravenports, UnitedRPMs, CRAN и новостного сайта Distrowatch.com. К сожалению, приостановлена поддержка репозитория Python модулей PyPi, из-за прекращения последним публикации полного списка всех пакетов.- Улучшены возможности по фильтрации и поиску пакетов. Теперь, например, можно (https://repology.org/metapackages/?category=games&inrepo=ubu...) посмотреть список пакетов из категории games, присутствующих в Ubuntu и ещё 5 дистрибутивах, но отсутствующих в OpenBSD.- Улучшена нормализация, обработка и сравнение версий. Помимо улучшений библиотеки libversion (https://github.com/repology/libversion) добавлена поддержка devel/unstable версий (даже при наличии в одном из репозиториев свежайшей нестабильной версии, последняя стабильная версия более не считается устаревшей (пример (https://repology.org/metapackage/wine/versions))) и legacy версий (при наличии в репозитории одновременно свежей и более старых версий, последние более не считаются требующими обновления (пример (https://repology.org/metapackage/wine/versions#gentoo))). Добавлена возможность ручной нормализации версий с помощью правил, т.е. теперь набор версий 0.0.22, alpha22 и 22-alpha (разные написания одной официальной версии) можно привести к одному виду и корректно сравнить (пример (https://repology.org/metapackage/0ad/packages)).- Добавлен поиск родственных пакетов, у которых указана одна и та же домашняя страница (пример (https://repology.org/metapackage/0ad/related)). Помимо непосредственного просмотра родственных пакетов это упростит связывание пакетов, для которых в различных репозиториях используются разные названия.- Добавлена главная страница (https://repology.org/) со статистикой и основными инструментами- Добавлено больше статистики по репозиториям и мантейнерам и новые графики (https://repology.org/statistics#graphs)
Общая статистика:- 146 репозиториев- 130082 пакета (+10060 или +8.4% за полгода)- 23278 мантейнеров (+2190 или +10.4% за полгода)
Топ репозиториев (https://repology.org/statistics/total) по общему количеству пакетов:
- AUR (40522)- Debian и производные (28741) (лидирует Deepin)- FreeBSD (26177)- Fedora (20386) (с прошлого отчёта обогнала Gentoo)- Gentoo (19394)
Топ репозиториев по количеству неуникальных пакетов (т.е. пакетов, присутствующих также в других дистрибутивах):
- Debian и производные (21892)- FreeBSD (20248)- Fedora (16851)- AUR (15821)- Funtoo, Gentoo (14116)
Топ репозиториев (https://repology.org/statistics/newest) по количеству свежих пакетов:
- FreeBSD (15025)- Debian и производные (13817)- Fedora (12514)- AUR (9415) (с прошлого отчёта обогнал Gentoo)- Gentoo (9415)
Топ репозиториев (https://repology.org/statistics/pnewest) по процентному соотношению свежих пакетов (только для репозиториев с 1000 и более пакетов и не считая upstream коллекций типа CPAN, Hackage, PyPi):
- Ravenports (98.95%)- Homebrew (81.84%)- Arch и производные (81.59%)- KaOS (81.36%)- Fedora (74.20%)
URL: https://repology.org/
Новость: http://www.opennet.me/opennews/art.shtml?num=47581
Респект автору!
AUR учитывают, а оверлеи в Gentoo забыли.
AUR централизован, а репозитории в Gentoo отдельные.
Правда, есть и постоянно обновляемый список пакетов из всех доступных в layman репозиториев: http://git.exherbo.org/layman_repositories.tar.bz2 (используется в paludis для поиска пакетов).
> AUR централизован, а репозитории в Gentoo отдельные.
> Правда, есть и постоянно обновляемый список пакетов из всех доступных в layman
> репозиториев: http://git.exherbo.org/layman_repositories.tar.bz2 (используется
> в paludis для поиска пакетов).Подскажите обычному дебсидоводу. В AUR-е число пакетов, надеюсь, не из-за васянских хелловорлдов выше? :) Там софт больше разделён на части по сравнению с Дебом?
>В AUR-е число пакетов, надеюсь, не из-за васянских хелловорлдов выше?Там скорее число пакетов такое из-за того, что для него, по сути, легче всего их создавать, и нет никаких ограничений. Написал скриптик для сборки/перепаковки и всё. Ещё нет проблем с лицензиями, ведь, по факту, каждый, использующий AUR для установки проприетарщины, просто скачивает официальный пакет себе на локальный компьютер и уже на нем делает с ним всё, что захочет.
> Подскажите обычному дебсидоводу. В AUR-е число пакетов, надеюсь, не из-за васянских хелловорлдов выше? :) Там софт больше разделён на части по сравнению с Дебом?Разделение софта на части для Repology неактуально, поскольку она всегда считает source пакеты, а source пакеты и в Debian не разделяются. Как, естественно, и PKGBUILD'ы, иначе пришлось бы дублировать слишком много кода. А AUR встречаются "варианты" (например, nginx-devel, nginx-libressl, nginx-rtmp, nginx-boringssl, nginx-custom, nginx-custom-dev), но их не так много и они по мере обнаружения склеиваются правилами в один nginx. Большая часть - это действительно уникальные пакеты, можно их посмотреть:
https://repology.org/metapackages/?inrepo=aur&maxspread=1
и AUR тут сам по себе уникален, так как если в обычном репозитории таких пакетов не больше 20-30%, то в AUR все 60%. А уж что это - действительно "васянские хелловорлды" которые никому кроме их авторов не нужны, или полезный софт, который постепенно появится и в других репозиториях, я пока не знаю.
Следующий большой milestone в Repology - добавление истории каждого пакета, по ней можно будет такие вещи оценивать.
>В AUR-е число пакетов, надеюсь, не из-за васянских хелловорлдов выше? :)AUR - это огромная свалка. Там есть место всему - и хелловордам, и тому, чего в других дистрах нет и (по разным причинам) не будет никогда. Много дев-пакетов, собираемых прямиком из гита, например i3 в офрепе и i3-git AURе.
Васянские пересборочки под разным соусом там есть в большом количестве. Фактически тот же пакет, но с другими опциями, например несколько фрикадов, несколько клементин и т.д. Они добавляют количество пакетов, но снижают количество актуальных версий, хотя если выкинуть заброшенные и просто устаревшие, то будет вообще вперде планеты.
Я уже писал про это - оверлеи, равно как PPA и дополнительные репозитории openSUSE добавляются по запросу. Так, ребята из Pentoo не только попросили добавить репозиторий, но и активно сообщают о проблемах когда что-то в нём некорректно сравнивается. А всё подряд добавлять смысла я не вижу, ибо в массе это маленькие, устаревшие и плохо поддерживаемые репозитории.
>в массе это маленькие, устаревшие и плохо поддерживаемые репозитории.В том же AURе заброшенного неподдерживаемого старья овер дофига.
> Добавлен поиск родственных пакетов, у которых указана одна и та же домашняя страница (пример). Помимо непосредственного просмотра родственных пакетов это упростит связывание пакетов, для которых в различных репозиториях используются разные названия.Можно связывать пакеты с разными названиями в различных репозиториях, которые собраны из одних сорцов, по имени архива с исходным кодом, упакованного в исходный пакет.
Это не будет работать - во-первых, лишь в небольшом количестве репозиториев доступна информация о URL исходников (см. колонки WWW против Downloads в https://github.com/repology/repology#repository-support таблице), во-вторых, URL меняются от версии к версии и в-третьих, часто используются зеркала. WWW же, как правило, доступен и однозначен.
> Это не будет работать - во-первых, лишь в небольшом количестве репозиториев доступна
> информация о URL исходников (см. колонки WWW против Downloads в https://github.com/repology/repology#repository-support
> таблице), во-вторых, URL меняются от версии к версии и в-третьих, часто
> используются зеркала. WWW же, как правило, доступен и однозначен.При чём тут URL? Моя мысль была использовать поле Source для связывания.
Что такое "поле Source"?
> Что такое "поле Source"?Примеры:
https://src.fedoraproject.org/rpms/libxslt/blob/master/f/lib...
https://src.fedoraproject.org/rpms/openssh/blob/master/f/ope...
https://gitweb.gentoo.org/repo/gentoo.git/tree/net-misc/open...
https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-libs/libx...Для rpm кверится по тегу %{SOURCE}. В нём содержится имя файла архива, из которого собирается пакет, или другие исходные материалы, которые будут упакованы или участвовать в сборке ПО.
Даже если указан меняющийся url, то в нём всё-равно можно выделить регулярную часть: отсечь всё до последнего вхождения '/' включительно, суффикс формата архива и версию, которую можно вытащить из соответствующего поля.
> Примеры:Ровно это я имел в виду. Или это вдруг перестало быть URL'ами?
> Даже если указан меняющийся url, то в нём всё-равно можно выделить регулярную часть: отсечь всё до последнего вхождения '/' включительно, суффикс формата архива и версию, которую можно вытащить из соответствующего поля.
Т.е. оставить только имя пакета, по сути. Это ещё хуже, ибо будет много false positive - проектов с повторяющимися названиями накопилось предостаточно. Версию не всегда можно отсечь, ибо её формат в дистфайле может не совпадать с официальной версией. Но главная проблема в том что, повторюсь, эта информация доступна для очень небольшого числа репозиториев.
>> Примеры:
> Ровно это я имел в виду. Или это вдруг перестало быть URL'ами?Я привык в терминах rpm: там Url — это домашняя страница проекта, а в поле Source не обязан быть url, может быть просто имя архива с исходниками, как тут:
https://build.opensuse.org/package/view_file/openSUSE:Factor...
>> Даже если указан меняющийся url, то в нём всё-равно можно выделить регулярную часть: отсечь всё до последнего вхождения '/' включительно, суффикс формата архива и версию, которую можно вытащить из соответствующего поля.
> Т.е. оставить только имя пакета, по сути. Это ещё хуже, ибо будет
> много false positive - проектов с повторяющимися названиями накопилось предостаточно.
> Версию не всегда можно отсечь, ибо её формат в дистфайле может
> не совпадать с официальной версией. Но главная проблема в том что,
> повторюсь, эта информация доступна для очень небольшого числа репозиториев.Да, не всегда. Похоже, в общем случае это невозможно сделать.
Вот подобные случаи сейчас не отслеживаются:
https://repology.org/metapackage/nss-ldap/versions
https://repology.org/metapackage/libnss-ldap/versionsГлазами видно, что они содержат одно и то же ПО. Пока не знаю, как можно их связать.
Так они связываются, см. раздел Related. Просто правила всегда создаются только руками.
Autoimports для ALT Linux забыли.
> Autoimports для ALT Linux забыли.и sourceforge "new release" RSS.
На SourceForge не стоит тратить время - там остались единицы живых проектов. А вот добавить поддержку релизов GitHub было бы здорово.