[devel] именование пакетов
Ivan Zakharyaschev
imz на altlinux.org
Пн Фев 17 20:55:48 MSK 2020
On Mon, 17 Feb 2020, Vladimir D. Seleznev wrote:
> On Fri, Feb 14, 2020 at 03:00:24AM +0300, Vitaly Lipatov wrote:
> > Скрылевъ Малъ писал 13.2.20 23:34:
> > ...
> > > Заметки к этой таблице таковы, как из неё видно, во-первых для
> > > некоторых языков программирования используются несколько разных
> > > хранилищ, так для ruby есть три разных хранилища основное rubygems, и
> > > специфические puppet и ansible, для python это pypi и conda, для r это
> > > cran и тот же conda, для perl это cpan и metacpan, для swift это
> > > родной swiftpm и дополнительные carthage, cocoapods, ну и чемпион js,
> > > у которого налюдается настоящий бардак: например для системы node как
> > > правилно используется хранилище npmjs, но пакеты его так устроены, что
> > > могут быть написаны на чистом js, и ноды и не требовать, это явно
> > > прописывается в требованиях движка, пакеты хранилища atom
> > conda это такой облачный rpm, там нет ничего уникального, как я понял,
> > поэтому странно было бы на него ориентироваться.
> > Пакеты npmjs паковать в rpm было бы неправильно, потому что они уже
> > упакованы. А вот пакеты для nodejs, использующие нативные библиотеки,
> > паковать нужно обязательно, иначе невозможно обеспечить сборку бинарной
> > части такого пакета.
> >
> > Но префикс rpm-пакета должен определяться не хранилищем, а местом, куда
> > он будет положен в файловой системе (местом поиска — откуда будут взяты
> > его файлы, если угодно). И ассоциироваться такой префекс должен не с
> > хранилищем (то есть с сайтом, который и поменяться может), а с названием
> > экосистемы для пакетов, среды их исполнения.
> > Например, так сделано для ruby, python, perl, php. Возможно, кому-то
> > показалось, что это названия языков. Но зачастую такие модули написаны
> > на C, а не на php :)
>
> Именно! Префикс имени пакета для языковых систем показывает, расширение
> какого языка поставляет этот пакет. И совершенно не важно, из какого
> хранилища приехал этот пакет.
Ну бывают такие язык-специфичные системы управления пакетами, которые
видят, что уже стоит из пакетов из дистрибутива в системе, и при
необходимости сам доставляют ещё какие-то.
Тогда может иметь смысл как-то отмечать, что наш пакет будет этой системой
понят.
Не уверен, что название яхык-специфичной системы управления пакетами всё
же совпадёт с названием репозитория. Например, есть hackage, stackage (на
Haskell), а пакетный менеджер, наверное, в основе один и тот же...
--
Best regards,
Ivan
Подробная информация о списке рассылки Devel