[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