LINUX.ORG.RU
ФорумTalks

Категории пакетов и сторонние репозитории

 ,


0

1

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

Кроме этого ещё есть фича «репозитории сторонних разработчиков». Это когда команда дистрибутива настолько гадкая, что разработчики её сторонятся.

Сторонние репозитории делятся на два вида - либо по какой-нибудь технологии (типа Java, Haskell, Ruby), либо это персональные репозитории. Первые - командные, вторые - асоциальные.

Стандарта на то, как называть категории нет. Есть категория про текстовые редакторы, есть про серверы web-приложений и другие.

А что если категории называть по именам (командных) репозиториев? Какие ждут грабли, и чем это будет нехорошо?

★★★★

В своём личном оверлее категории пакетов можешь называть как угодно. Основные грабли - пользователи дистрибутивов с portage не поймут, зачем ты выбрал такие странные категории, засомневаются в твоей адекватности и не будут использовать твой оверлей. Если, конечно, ты его куда-нибудь попытаешься выложить.

shell-script ★★★★★
()

непорядок, порядок

В тэгах, традиционно, бардак и шизофазия.

Это когда команда дистрибутива настолько гадкая, что разработчики её сторонятся.

Первые - командные, вторые - асоциальные.

В ОП тоже. Ты так троллишь постоянно или тебе действительно плохо? Если второе, есть другие способы получить помощь.

Dimez ★★★★★
()
Ответ на: комментарий от shell-script

ты выбрал такие странные категории, засомневаются в твоей адекватности

Существует ли возможность легко и просто переименовать категорию?

Конечно не существует.

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

Что было бы, если бы пакеты именовались как-то по-другому, а не с использованием названий категорий? Возникало бы больше коллизий между одинаковыми именами проектов в разных областях деятельности (например у химиков и у математиков). А так есть две категории - sci-chemistry и sci-mathematics.

Математики объединяются в группы по интересам. И химики тоже, но в другие группы, не математиков, а химиков.

Поэтому было бы нормально, если бы у них были свои отдельные репозитории (про математику и про химию). Может быть дистрибутив должен для этого даже спецсредства предоставлять («создать клан», «форум клана» и т.п. что делают, например, игроделы и не обламываются).

У дистрибутиводелов для этого почему-то надо создавать отдельный дистрибутив. Пример - Альт-линукс «образование».

Итак, если не будем вписывать названия категорий внутрь скриптов, то как будем различать скрипты из разных сообществ?

Допишем к имени пакета имя сообщества. Я, кстати, ещё не понимаю, почему категория приписывается перед, а не после имени пакета. Во втором случае если имя пакета уникально, то категорию можно было бы не дописывать.

И в репозитории можно директорий для категорий не делать (они лишние, так как в одном репозитории коллизий быть и не может)

Итак, пусть в текстах скриптов имена пакетов теперь указываются с опциональным названием репозитория: мой_пакет::мой_репозиторий (но ты и сейчас можешь так делать, скажут они)

Зато теперь у меня можно такие пакеты расклассифицировать разными способами. и даже приписать одному пакету несколько классов (он одновременно относится к программированию, к языку, к IDE, к текстовым редакторам и чему-нибудь ещё) Такие классы надо хранить снаружи скрипта (например в виде симлинков). И категории станет можно переименовывать легко и просто.

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Потому что текстовое имя категории вписано в тысячи текстов скриптов

Чтобы пакет из твоего оверлея попал в какие-то тысячи скриптов, он должен быть кому-то нужен.

У дистрибутиводелов для этого почему-то надо создавать отдельный дистрибутив.

У дистрибутивов общего назначения такой необходимости нет.

И в репозитории можно директорий для категорий не делать (они лишние, так как в одном репозитории коллизий быть и не может)

└─> eix -c /mc$
[I] app-misc/mc (4.8.32-r1@24.10.2024): GNU Midnight Commander is a text based file manager
[N] net-fs/mc (~2024.11.05.11.29.45[1]): Minio client provides alternatives for ls, cat on cloud storage and filesystems
[N] sci-libs/mc (1.5): 2D/3D AFEM code for nonlinear geometric PDE

Зато теперь у меня можно такие пакеты расклассифицировать разными способами. и даже приписать одному пакету несколько классов (он одновременно относится к программированию, к языку, к IDE, к текстовым редакторам и чему-нибудь ещё)

Это совсем другая задача и решается она через пользовательские сеты.

shell-script ★★★★★
()

Некоторые гентушные оверлеи основное содержимое пихают в отдельную категорию.
Как я понимаю, проблема привязки категории к какой-то сопровождающей команде плохо тем, что в случае перехода пакета под сопровождение других людей и смены названии категории все зависящие пакеты придётся редактировать.
А если категории привязаны только к применению пвкета - сама категория будет редко меняться и будет лишь упрощать поиск пакета.
В gentoo категория нужна ещё для того, чтобы разрешить нескольким пакетам из разных категорий одинаково называться.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

в случае перехода пакета под сопровождение других людей

В проекте Apache есть практика перемещать старый код «в аттик». Я считаю они отлично придумали. Можно было бы сделать такой репозиторий и тоже туда перемещать скрипты (вместо того, чтобы стирать их насмерть в дереве).

То есть, группу людей идентифицировать по имени их репозитория. Это сразу решает и проблемы с форками. Как только форкнули, появился репозиторий с другим именем (а чтобы имена репозиториев не были одинаковые - есть же список всех репозиториев, он обеспечивает уникальность имён).

В случае если есть кому сопровождать - они и поменяют. Если некому сопровождать - код в ::attic.

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

Не ещё, а только для этого. А всё остальное - это слова. Однако другие дистрибутивы как-то умудряются обойтись без имён категорий. И как-то у них названия пакетов не совпадают между собой. Просто удивительно.

Shushundr ★★★★
() автор топика

Ты забыл написать юзкейс, и какую проблему решает твое нововведение.

Стандарта на то, как называть категории нет. Есть категория про текстовые редакторы, есть про серверы web-приложений и другие.

Ты не прав.

https://specifications.freedesktop.org/menu-spec/1.0/category-registry.html

И искать надо не в репе, а в спецификации к пакету.

Если очень нужно добавить свою информацию - ее тоже стоит добавлять в пакет, а уже ПМ должен уметь ее оттуда извлечь, сделать из нее категорию, и отобразить.

Иными словами, если четверо человек напишут четыре разных программы, и напишут в файле-описании Category=Порнософт - в пакетном менеджере «Порнософт» должен будет отобразиться в списке категорий.

windows10 ★★★★★
()
Ответ на: комментарий от Shushundr

Однако другие дистрибутивы как-то умудряются обойтись без имён категорий.

При сборке и добавлении пакета в репозиторий придумывают ему уникальное название.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Текст программы это артефакт. Текстовый документ это артефакт. Книга это артефакт. У артефактов есть год, авторы, название. Для названий есть классификации (много разных - УДК, ББК) по категориям. А есть ISBN - он по издателям. Тем не менее, в самих текстах работ ссылки делают как правило в виде аббревиатура-год. Аббревиатура это несколько уникальных в контексте документа букв, на основе фамилии автора или названия упоминаемого документа.

Разные люди разными названиями пользуются: библиотекари этими УДК/ББК, Авторы своими (потому что они не знают о существовании библиотекарей и издателей). Библиографы знают о существовании издателей и приписали им коды ISBN, и сделали стандарт для библиографической информации dublin core, или как-то так.

Скрипт мог бы быть устроен так же:

  • содержать в себе короткие ссылки
  • рядом могла бы лежать библиография (т.е. описания прочих скриптов, с указаниями, кто их издатели, откуда их брать)

Я веду к тому, что ISBN, по моим ощущениям, вытесняет УДК и ББК. Значит так могло бы быть и в скриптах пакетного менеджера.

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Классификация литературы в библиотеке и программ в репозитории - это две большие разницы. Но даже там, если ты был когда-нибудь в аналоговой библиотеке, классификация никогда не начинается с автора. Говоришь библиотекарю «Хочу Лема почитать», библиотекарь идёт в раздел «Художественная литература», ищет там «Фантастика», а там уже по алфавиту к букве «Л» идёт. Сейчас с компами стало чуть иначе. Но повторяю, это вообще не имеет никакого отношения к организации софта в репозитории.

Ты предлагаешь ввести новую абстракцию для классификации кода в репозитории, чтобы.... что? Чтобы потерять возможность искать софт по категориям на файловой системе? Ведь плюсов-то введение отвлечённого индекса не даёт никакого.

Сейчас я смотрю в app-editors/, вижу список доступных текстовых редакторов и выбираю vimтот, название которого я знаю и искал. С твоим «улучшением», мне нужно будет знать авторов всех текстовых редакторов, чтобы найти нужный, просмотрев 100500 директорий с именами этих авторов. А, кстати, если авторов много, в какую категорию попадает пакет? Или вот кто автор dev-vcs/git ? Торвальдс? Но он никак не участвует в разработке гита много лет и почти сразу передал всю разработку другому человеку(кстати, не подскажешь, как его зовут, чтобы найти и поставить git?). А если завтра этот автор передаст git кому-нибудь ещё?

Значит так могло бы быть и в скриптах пакетного менеджера.

В некоторых пакетных менеджерах уже есть категории, не привязанные ни к имени, ни к автору. Например, Section в apt. Много ли ты знаешь людей, которые умеют и/или хотят этим пользоваться?

И снова повторяю. В своём личном оверлее ты можешь делать всё, что угодно. Сделай, покажи прототип и тогда, если система окажется удобнее, её быстро перетянут к себе другие.

Пока что я вижу, что ты только всё усложняешь. Покажи на практике, посмотрим, может быть я неправ.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

кстати, не подскажешь, как его зовут, чтобы найти

Ну и отлично же. Требование лицензионности заставило везде к коду прикладывать лицензии. А требование указания автора добавит авторам известности.

Сделай, покажи прототип

Ой, всё.

Shushundr ★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)