LINUX.ORG.RU

Планы по кросс-форматному пакетному API в LSB


0

0

Одна из главных проблем в поддержке GNU/Linux - огромное количество пакетных менеджеров и их несовместимость. Однако, следующая версия Linux standart base (LSB) может помочь решить эту проблему предоставляя программный интерфейс (API), который выполнит функции связующего звена между основными пакетами программного обеспечения, системами и установщиками. Ян Мердок, директор Free Standards Group утверждает, что эти решения могут быть включены в наиболее распространённые дистрибутивы уже в начале 2008 года. Он отмечает, что установка ПО для конечного пользователя значительно упростилась в последние годы, dpkg и yum стали нормой. Мердока поддержали представители Novell и Red Hat. Руководитель проекта Fedora Макс Спевак: "Похоже, хороший способ выйти из тупика -- API, который может работать поверх существующих систем установки, представляется более вероятным, чем пытаться создавать новую систему с нуля". Мердок надеется, что такое API станет частью LSB версии 4.0, и что следующие версии Red Hat Enterprise Linux, SUSE, Debian и дистрибутивы основанные на них переработают свои пакетные менеджеры с поддержкой этого стандарта.

>>> Подробности

★★

Проверено: Shaman007 ()

Лучшая система управления пакетами - /dev/hands + /dev/brain. ./configure && make && checkinstall + installpkg тоже не помешают

Все остальное от лукавого, и не UNIX WAY ))

anonymous
()
Ответ на: комментарий от ugenk

это не синонимы. просто стандарты в том или ином дистрибутиве.

aim1159 ★★★★★
()

>dpkg и yum стали нормой

Это, видимо, ошибка --- apt и yum стали нормой. А то получается сравнение тёплого с мягким. Да и dpkg стало нормой только в Debian, где он и был нормой :) Рекурсия :)

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

>dpkg стало нормой только в Debian

Если учесть количество debian-based дистров, то dpkg ненамного менее распостранён, чем rpm.

Xellos ★★★★★
()

emerge все равно никуда не денется. Как прикрутить поверх него API не представляю и не вижу необходимости, помоему все и так достаточно удобно. Только новые костыли сделают, которые опять же будут не во всех дистрибутивах.

grokin
()

Это здорово!!! Хорошая новость!!!

hibou ★★★★★
()

Мердок атец!

anonymous
()
Ответ на: комментарий от grokin

Если всё таки этот API засунут в LSB, и если в генте его (API) не прикрутят к emerge, то она (гента) не будет стандартизована LSB <какая-то версия>... :-P

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

Интересно, Shaman007 так проверяет, или специально закладки подобные лепит --- ни одной новости без ошибок. Кто-нибудь, подарите ему spell-checker [[;

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

> Лучшая система управления пакетами - /dev/hands + /dev/brain.

> ./configure && make && checkinstall

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

anonymous
()
Ответ на: комментарий от grokin

> emerge все равно никуда не денется. Как прикрутить поверх него API не представляю и не вижу необходимости, помоему все и так достаточно удобно. Только новые костыли сделают, которые опять же будут не во всех дистрибутивах.

Такой API нужен корпорациям для продвижения своих продуктов в массы Linux-юзеров, потому что это упростит установку проприетарного софта. Коммерческие софтостроители давно ориентируются на RedHat, Suse, Fedora, Ubuntu, Debian. Gentoo их не особо интересует, т.к. им известен цвет глаз основной массы пользователей Генты, которые софт покупать всё равно не будут. Так что поддержки вышеперечисленных вполне достаточно, чтобы обеспечить удобной инсталляцией большинство своих потенциальных клиентов.

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

>> apt is the best > Нет такого пакетного менеджера.

"Advanced Packaging Tool, or APT, is a package management system used by Debian GNU/Linux and its derivatives."

ajvol
()

> "What the standard will do is enable the installer at specific points in the script to call out to the package system," Murdock says. "Instead of having to have specific knowledge about specific distributions, ISVs can simply rely on the LSB and the interfaces that the LSB will have present." All that ISVs will need to know is whether a distribution is LSB compliant or not.

Замечательно! Если сейчас всякое левое барахло с собственными инсталляторами отправляется в /usr/local, то по этому стандарту, оно спросит у менеджера пакетов пути и засрёт /usr. Винда forever!

Неужели так тяжело сделать мета-систему описания пакетов, которая из одного описания автоматически генерит пакеты под кучу дистрибутивов? А то развели, блин, сопли --- инсталляторы им тяжело делать. В софтине более Блокнота, создание исталлятора --- исчезающе малая задача.

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

>пучок вытекает..

:D

Только это и есть true. Система управления пакетами в слакваре самая лучшая, удобная и понятная. Но если думать непривычно, то, конечно, да, юзайте rpm.

anonymous
()

Мне вот всё-таки интересно. Основных пакетных систем - 2 штуки: rpm и dpkg. Допустим, некая фирма портировала свой продукт под линукс, потратив на это некоторое количество средств и времени.

Вот у них уже есть продукт в бинарном виде. Они уже знают, от каких либ зависит их продукт (они ж его смогли собрать в итоге?).

Неужели после всей проделанной работы они не осилят простой процесс создания rpm/deb пакета?

Зачем для них изобретать ещё один велосипед?

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

> Замечательно! Если сейчас всякое левое барахло с собственными инсталляторами отправляется в /usr/local, то по этому стандарту, оно спросит у менеджера пакетов пути и засрёт /usr. Винда forever!

> Неужели так тяжело сделать мета-систему описания пакетов, которая из одного описания автоматически генерит пакеты под кучу дистрибутивов? А то развели, блин, сопли --- инсталляторы им тяжело делать. В софтине более Блокнота, создание исталлятора --- исчезающе малая задача.

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

Истинно говорю вам - рано или поздно мы все придём к Патрегоугодному .tgz или гентушным ебмлдам.

Gharik
()
Ответ на: комментарий от watashiwa_daredeska

А почему собственно другие софтины имеют право "засирать" /usr, а эта нет? Если она умеет прибрать за собой - то сколько угодно!

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

>Gentoo их не особо интересует, т.к. им известен цвет глаз основной массы пользователей Генты, которые софт покупать всё равно не будут.

т.е. по твоему софт покупают только красноглазики? да тебе в кащенку пора

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

> Замечательно! Если сейчас всякое левое барахло с собственными
> инсталляторами отправляется в /usr/local, то по этому стандарту, оно
> спросит у менеджера пакетов пути и засрёт /usr.

с чего это вдруг ? будет ставиться туда куда и раньше хотело - в /usr/local ли в /opt ли или еще куда
просто теперь ты будешь видеть этот пакет в своем пакетном менеджере (возможно даже сносить и апдейтить через него), а оно научится удовлетворять свои зависимости через этот пакетный менеджер

при этом кудо оно все свое барахло положило интересно только пакетному менеджеру, главное чтоб родные файлы не затирало

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

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

alien ?

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

>Вот у них уже есть продукт в бинарном виде. Они уже знают, от каких либ зависит их продукт (они ж его смогли собрать в итоге?). >Неужели после всей проделанной работы они не осилят простой процесс создания rpm/deb пакета? >Зачем для них изобретать ещё один велосипед?

Ну наверное гимор в том, что в одном дистрибутиве конкретная либка идет ввиде отдельного пакета, в другом - в составе другого, более обшего. А с этим API наверно сделают так что инсталер скажет - нужно вот это и вот это, а ОС уже сама подберет что та хочет конкретно исходя из своих особенностей

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

> А почему собственно другие софтины имеют право "засирать" /usr, а эта нет?

Другие софтины тоже не имеют права. Есть лишь одна софтина, которая имеет право это делать --- пакетный менеджер.

> Если она умеет прибрать за собой - то сколько угодно!

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

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

> alien ?

Я имел в виду несколько иное. Murdok в блоге (ссылка в статье) говорит о какой-то мифической "ecosystem" third party софта. В случае какого-то ублюдочного API, никакой "ecosystem" никогда не будет (см. Винды). Чтобы была "ecosystem", нужны взаимосвязанные third party репозитарии. Как пример --- third party софтине Foo нужен Adobe Flash (который тоже third party). То, что предлагает Murdok перестает работать так, как привыкли _пользователи_Linux_ и начинается геморрой, к которому привыкли _пользователи_Windows_.

В случае нормальной системы генерации пакетов (а может даже, сразу и репозитариев) из единого источника, есть репозитарий Foo, есть репозитарий Adobe, где есть Flash. Всё ставится _и_автоматически_обновляется_средствами_системы_. Задача, которую нужно решить --- добавление репозитария[ев] и установка в два клика, как описал Murdok: клик --- скачал файл на десктоп, клик --- поставил. При этом, затраты на пакетирование для third party --- минимальны.

watashiwa_daredeska ★★★★
()

ну и брЭд... нормальному человеку наплевать, чем пользоваться, yum-ом или apt-ом. нах ещё какой-то API сцаный?

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

> нормальному человеку наплевать, чем пользоваться, yum-ом или apt-ом. нах ещё какой-то API сцаный?

Это не для людей, это для разработчиков :)

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

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

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

>Gentoo их не особо интересует, т.к. им известен цвет глаз основной массы пользователей Генты, которые софт покупать всё равно не будут.

так им такой софт и не нужен, они "ждут ебилдов" :)

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

>В случае нормальной системы генерации пакетов (а может даже, сразу и репозитариев) из единого источника, есть репозитарий Foo, есть репозитарий Adobe, где есть Flash. Всё ставится _и_автоматически_обновляется_средствами_системы_

В таком случае понадобится система обмена информацией между репозитариями как минимум. Это обеспечить еще сложнее чем в совместимость пакетов из разных репозитариев в рамках одной системы. Просто перегенерация пакета из одной системы пакетирования в другую этого само собой не обеспечивает. ImHO для такой глобальной системы нужно ну как минимум уйти от системы _жестких_ зависимостей но по любому это не гарантирует что пакет из репозитария А встанет на систему, родным для которой является репозитарий Б. ImHO такое API это попытка "построить" репозитарии основных коммерческих "в шеренгу по 2". Как там поживает предыдущая попытка подобного "построения" всея и всех под названием "United Linux" ;) ?

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

> и какие же проблемы из этого вытекают?

Эти проблемы уже обсосаны 1e6 раз.

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

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

Я понимаю минимизаторов для спец. решений, но создание спец. решения --- это отдельная работа, за которую платят. И если есть возможность взять что-то подходящее уже готовое, его берут.

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

> понадобится система обмена информацией между репозитариями как минимум

М-м-м... Какой информацией? Допустим, у Adobe есть аптовый репозитарий для debian/ubuntu: http://adobe.com/debian, там раздается пакет adobe-flashplayer (adobe-flashplayer_9.0_i386.deb). Что мне, как разработчику Foo, еще нужно?

1. Собственный репозитарий http://foo.com/debian, где лежит пакет foo-fooprogram (foo-fooprogram_1.0_i386.deb) с зависимостью на adobe-flashplayer (>=9.0).

2. Некоторый механизм, который позволит пользователю скачать один файл, кликнуть на него, получить в списке репозитариев http://foo.com/debian и http://adobe.com/debian и установить пакет foo-fooprogram _средствами_стандартного_менеджера_пакетов_.

Какой еще информацией я должен обменяться с Adobe?

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

>Все остальное от лукавого, и не UNIX WAY ))

В каком месте это не unix way?

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

> для такой глобальной системы нужно ну как минимум уйти от системы _жестких_ зависимостей но по любому это не гарантирует что пакет из репозитария А встанет на систему, родным для которой является репозитарий Б.

Что такое "родной репозитарий"? Из предыдущего примера: Adobe раздает Flash Player, по стандарту LSB об именовании пакетов, она должна предварять имена пакетов доменным имененм или именем, зарегистрированным в LANANA, например: adobe.com-flashplayer. Это референсное имя. Его будут прописывать в зависимостях. Этот пакет раздается с сайта Adobe в binary-only виде. Это значит, что нет сотни репозитариев с сотней разных сборок, значит нет конфликтов. Если еще в одном репозитарии заваляется пакет adobe.com-flashplayer, то это тот же самый пакет от Adobe.

Могут возникнуть "пересборки" пакетов, например исправления ошибок пакетирования от дистрибутивной команды. На этот случай есть всевозможные Provides:, Conflicts:, приоритеты репозитариев и прочие средства. Они, конечно, далеки от совершенства, но именно потому, что нет массового использования.

watashiwa_daredeska ★★★★
()

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

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

>Вот именно, "если". Когда я ставлю любой пакет из дистрибутива, у меня не возникает никаких "если" --- всё ставится и удаляется одним и тем же пакетным менеджером, который уже много лет исправно пашет.

Не знаю чего вы тут фантазируете но yast отлично ставит левые rpmы и показывает их в своем менеджере и рулит ими.

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

>Из предыдущего примера: Adobe раздает Flash Player, по стандарту LSB об именовании пакетов, она должна предварять имена пакетов доменным имененм или именем, зарегистрированным в LANANA, например: adobe.com-flashplayer. Это референсное имя. Его будут прописывать в зависимостях. Этот пакет раздается с сайта Adobe в binary-only виде. Это значит, что нет сотни репозитариев с сотней разных сборок, значит нет конфликтов. Если еще в одном репозитарии заваляется пакет adobe.com-flashplayer, то это тот же самый пакет от Adobe.

Да статиком проще тогда будет собрать если чем разрешать зависимости из вендорского репозитария ;)

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

> с чего это вдруг ? будет ставиться туда куда и раньше хотело - в /usr/local ли в /opt ли или еще куда

VMWare, например, по-умолчанию хочет с префиксом /usr. Хорошо, что позволяется заменить на /usr/local. А по этому стандарту, VMWare спросит, "куда ставить бинари?", ей скажут: /usr/bin и вуаля! Хорошо, если админу системы дадут возможность настраивать то, что будет выдавать это API.

> просто теперь ты будешь видеть этот пакет в своем пакетном менеджере

Это не всё, что мне нужно. Например, я сохраняю в бэкапе список установленных пакетов. На случай, если винт отправится навестить предков. Сейчас, полноценное восстановление системы --- дело минут. При наличии псевдопакетов, которые неоткуда ставить --- п...ц a la Windows. 58 программулин, устанавливаем врукопашную.

> (возможно даже сносить и апдейтить через него)

А как оно будет взаимодействовать с пакетным менеджером при апдейте, если нет пакетов? Пример: есть софтина A-1.0 и B-1.0, зависящая от A-1.0. Выпущена версия A-2.0, про которую известно, что она конфликтует с B-1.0. Мне нельзя обновлять A до 2.0, пока не выйдет очередная версия B, не конфликтующая с A-2.0. Сейчас это в зависимостях можно прописать и никаких более телодвижений и API не нужно --- менеджер пакетов сам разберется.

> оно научится удовлетворять свои зависимости через этот пакетный менеджер

А удовлетворять чужие зависимости?

> главное чтоб родные файлы не затирало

Это отдельная песня.

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

>Другие софтины тоже не имеют права. Есть лишь одна софтина, которая имеет право это делать --- пакетный менеджер.

Так оно и будет через него ставиться! Или я чего-то не понял?

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

>yast отлично ставит левые rpmы и показывает их в своем менеджере и рулит ими.

А что будет если в зависимостях версия glibc в "левом RPM" не совпадёт с вашей текущей установленой ;) ?

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

> yast отлично ставит левые rpmы и показывает их в своем менеджере и рулит ими.

Речь о том, что не будет RPM'ов, вместо RPM'а --- инсталлер (как привыкли в Винде) и API (как в Винде --- можно спросить где Program Files, куда ярлыки для десктопа сваливать). И yast'у будет нечем рулить. Точнее, будет --- через API установочным скриптом будет создаваться запись о пакете, которого нет и никогда не было. Т.е. yast превратится в API для Control Panel->Add/Remove Programs, правда чуть более навороченное.

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

>Речь о том, что не будет RPM'ов, вместо RPM'а --- инсталлер (как привыкли в Винде) и API (как в Винде --- можно спросить где Program Files, куда ярлыки для десктопа сваливать). И yast'у будет нечем рулить. Точнее, будет --- через API установочным скриптом будет создаваться запись о пакете, которого нет и никогда не было. Т.е. yast превратится в API для Control Panel->Add/Remove Programs, правда чуть более навороченное.

Да такой "инсталлер" можно прямо сейчас из alien + собственно пакета (в любом, понимаемом) и скриптовой обвязки написать ;) толку только от него будет ровно как от alien-а ;)

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

>А по этому стандарту, VMWare спросит, "куда ставить бинари?", ей скажут: /usr/bin и вуаля!

Ты какой-то странный. Во первых с чего ты взял что он скажет /usr/bin а не /usr/local/bin? Во вторых если твой дистрибутив все время так говорит - какие претензии к стистеме? Так сделали дистрибутив.

> При наличии псевдопакетов, которые неоткуда ставить --- п...ц a la Windows. 58 программулин, устанавливаем врукопашную.

А что скинуть на отдельный носитель доставляемый недистровые пакеты религия не позволяет? То есть свой addon cd сделать? ДЕшево быстро просто и сердито. Если захочется можно даже в формате репозитария зафигачить.

>Сейчас это в зависимостях можно прописать и никаких более телодвижений и API не нужно --- менеджер пакетов сам разберется.

Так все и останется. Не понимаю с чего паника.

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

>yast превратится в API для Control Panel->Add/Remove Programs, правда чуть более навороченное

Не "чуть более навороченное", а умеющее управлять софтом и зависимостями, запускать pre- и postinstall скрипты, то есть такое API, какое и должно быть, и нечего его сравнивать с виндовым недоразумением.

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

>Не понимаю с чего паника.

Из религиозных соображений. Хотят сделать "как в винде", понимаете ли.

Xellos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.