LINUX.ORG.RU

Ubuntu обдумывает внедрение нового формата установочных пакетов

 


0

1

В листе рассылки разработчиков Ubuntu появилось сообщение Колина Уотсона (главного человека в Canonical по вопросам установки системы и отдельных пакетов) о том, что ведется работа над новым, упрощенном форматом прикладных пакетов, с возможностью установки приложений «в один клик». В первую очередь целевыми платформами являются мобильные версии Ubuntu, хотя новая система по планам должна функционировать также на десктопах и даже в других ОС. При этом текущий вариант установки традиционных deb-пакетов должен сущестововать параллельно, использование утилит apt или dpkg все еще останется возможным и безпроблемным.

Введение новых «клик-пакетов» («Click packages») имеет главную цель — максимально упростить сборку пакетов для Ubuntu, забыть о зависимостях, установочных скриптах и разместить каждое приложение в собственном каталоге.

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

  • Никаких взаимных зависимостей между пакетами.
  • Каждое приложение устанавливается в отдельный каталог.
  • Конфигурация установочного пакета пишется в простом декларативном стиле, никаких скриптов.
  • Скорость. Неоптимизированная, написанная на Python система работает приблизительно на полсекунды дольше, чем стандартный dpkg. Сборщик пакетов также написан на Python.
  • Возможность установки пакета от обычного пользовательского аккаунта.
  • Для сборки нужно написать файл-манифест, разместить его в корне каталога с бинарными файлами, после чего произвести сборку с помощью скрипта.

Отмечается, что авторы «клик-установщика» руководствовались наработками проектов Listaller or 0install. Более подробное рассмотрение предложения Колина и его коллег ожидается в ходе его доклада на Ubuntu Developer Summit, который будет проходить с 14 по 16 мая.

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

★★★★★

Проверено: Aceler ()
Последнее исправление: maxcom (всего исправлений: 3)

Ответ на: комментарий от ZenitharChampion

Только что отправил на e-mail автора Click Packages своё предложение переименовать DEB в UBU :-)

И вот, через неделю новость на ЛОРе: «Разработчики Ubuntu собираются сменить расширение пакетов...»

proud_anon ★★★★★
()

Прослеживается windows way...А ваще все кроме первого дикий треш и ненужность, не дай бог они примут это, я выдам пароль анонимуса и выпилюсь с лора

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

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

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

Поддерживаю. Школы ещё приплюсуем, но там немножечко новее.

ZenitharChampion ★★★★★
()

Эпоха маленьких винчестеров закончилась, так что вполне логичный шаг. Сейчас Linux заходит в тупик со всем этим адом зависимостей. А это прямо явление Мессии народу, столь долгожданное!

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

O_O

Да с такой киллерфичей сама убунта станет не нужна, а не остальные дистрибутивы.

Ненавижу людей, которые из линукса пытаются сделать мак или винду (наверняка в угоду каким-нибудь уродам-проприетарщикам). Ё-маё, КОМПОНЕНТНОСТЬ - это ж одна из главных киллерфич линукса. Без неё - это будет очередной Андроид: хрен обновишь по частям, в итоге комбинаторный взрыв - вместо общего репозитория для всех девайсов туева хуча «ПРОШИВОК», разложенных на сраных файлообменниках.

Ну, либо Колин придумал, условно говоря, tar.gz, пусть и завёрнутый в deb и сам распаковывающийся в отдельную папку. Но если это так, то ТЕМ БОЛЕЕ не нужно этот дебильный способ установки глобально пропагандировать - будет DLL HELL в полный рост.

Ужос какой-то, как дети малые...

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

А другой софт в этой системе распространяться и не должен.

Угу и кто это гарантирует? Стоит внедрить, и распространяться в этой системе будет всё подряд.

vitalif ★★★★★
()

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

Pantera: «Reinventing the Nuget» 2013

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

наверняка в угоду каким-нибудь уродам-проприетарщикам

А то, без «уродов-проприетарщиков» так и будет 1%. Не нравится, никто не заставляет использовать убунту, благо есть 100500 маргинальных дистрибутивов от вясей пупкиных и прочих поповых.

Но если это так, то ТЕМ БОЛЕЕ не нужно этот дебильный способ установки глобально пропагандировать - будет DLL HELL в полный рост.

Не будет никакого dll hell. Можно будет поставить любую программу любой версии без dependency hell'а как сейчас.

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

Мельчает шо-то ЛОР, мельчает. То Excel, то pulseaudio, то уход от зависимостей одобряют. Так и до реестра докатимся. :-(

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

Да с такой киллерфичей сама убунта станет не нужна, а не остальные дистрибутивы.

Ой...

Нинужна кому-профессионалам,т.е. 1%.Так вот 99%,у которых есть дела поваженее(срать жрать размножаться) чем эти ваши компьютеры,смотрят на вас-как на нинужно.А убунта удобная.

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

КОМПОНЕНТНОСТЬ - это ж одна из главных киллерфич линукса

Селф-киллерфич, да.

вместо общего репозитория для всех девайсов туева хуча «ПРОШИВОК»

потому что линукс ниасилил зоопарк железа, и только. Иначе был бы iOS, единый и неделимый, и это было бы хорошо.

будет DLL HELL в полный рост

В линуксе dll hell плотно прописался с самого рождения и поныне, просто его принято разруливать руками и делать вид, что это так и надо.

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

Так и до реестра докатимся. :-(

Твои слова да богу в уши.

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

Да не будет DLL HELL. DLL HELL это когда в libjpeg.dll нельзя поменять API/ABI, чтобы приложения не сломались. А в линуксе можно, только переименовав libjpeg.so.62 на что-нибудь другое. Старые программы будут использовать старую библиотеку, а новые - новые.

Я поддерживаю. Большая часть системных библиотек, используемых приложениями, перечислена в стандарте LSB: 1, 2. Это берём из системы, а оставшиеся зависимости кладём в архив с программой. И это уже работает. В архиве с игрой Braid лежат библиотеки libSDL, libstdc++.so.6 (последний C++ Runtime) и libCg (NVIDIA Cg). Все прочие зависимости есть в стандарте и обязаны быть в любом десктопном линуксе. Игра везде работает.

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

gentoo, portage, slots

Спасибо, сами это ешьте :D

с python такое работает

Ну, у него virtualenv есть.

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

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

quiet_readonly ★★★★
()

Ой вей, в Каноникал заново переизобрели /opt, но по какой-то причине запихали его в /home. Это победа!

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

Винда отошла от конфигов к реестру не забавы ради. Принципиально избегать идеи реестра (лишь бы не как в винде) - тупиковый путь. МС признает фейлы, опенсорс - никогда. И кто в итоге лидер?

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

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

> Ой...

> Нинужна кому-профессионалам,т.е. 1%.Так вот 99%,у которых есть дела поваженее(срать жрать размножаться) чем эти ваши компьютеры,смотрят на вас-как на нинужно.А убунта удобная.

А «убунта с киллер-фичей» по-твоему тоже удобная?

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

Что «все подряд»? Апач с мускулем? Не думаю. Если убунтоиды и осилят какой-то надувной менеджер, то будет это цацка для установки свистелок за копеечку, а внутри ее - голый SFX.

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

Ещё попробуй заняться сексом не снимая трусы.

Ты так говоришь, будто это невозможно. Есть трусы с ширинкой.

Естественно, их кто-то должен собрать, либо разработчики, либо ты сам.

Кто угодно, только не пользователь. Им ничто не мешает собирать один дистронезависимый тарбол, который можно распаковать в любое место. Некоторые разработчики ПО предоставляют такой, например Mozilla, Blender, Ardour и др.

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

90% населения,за мкадом находятся в селах,имея свое хозяйство и видя компьютер в сельсовете.

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

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

Угу и кто это гарантирует?

Canonical и сообщество Ubuntu/Debian. Или вы утверждаете, что на аппсторе распространяется всё подряд?

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

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

А, с dll hell погорячился, это немного для другого термин. Dependency hell'а я никакого не вижу. Ну ставится много пакетов - и чего? Они у меня кушать не просят. Стоят себе и пусть стоят. Обновляются все вместе - ну и прекрасно. Зато целостность же.

А так - шо значит любую программу любой версии? Значит либо все *.so рядом с ней будут лежать, либо вообще статическая сборка будет. Ну и нафига мне эта винда?

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

Как Марку написать чтобы он клик-установщик назвал Trud?

Не примут. В русской локали получится «Гонво».

dogbert ★★★★★
()

Дениска изобрёл морду к .tar.gz?

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

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

И в каком месте МС признаёт фейлы? И в каком месте их не признаёт FOSS? Наоборот - что ни день, то революция. Один systemd вон чего стоит.

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

Винда отошла от конфигов к реестру не забавы ради. Принципиально избегать идеи реестра (лишь бы не как в винде) - тупиковый путь. МС признает фейлы, опенсорс - никогда. И кто в итоге лидер?

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

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

> А так - шо значит любую программу любой версии? Значит либо все *.so рядом с ней будут лежать, либо вообще статическая сборка будет. Ну и нафига мне эта винда?

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

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

Кстати, вот если бы прикрутили к dpkg мультиверсионную установку в отдельные каталоги С ЗАВИСИМОСТЯМИ, я бы слова дурного не сказал. И это таки было бы киллерфичей.

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

Значит либо все *.so рядом с ней будут лежать, либо вообще статическая сборка будет.

Внезапно, это уже сейчас работает: QtCreator опирается на libbotan (и то лишь после наложения патча от Canonical) и различные модули Qt, а остальное таскает с собой.

В новом формате пакетов Qt определённо попадёт в базовую систему, и libbotan вероятно тоже. То есть размер пакета с QtCreator изменится ровно на 0 байт.

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

Во-первых, я не вижу, зачем для решения такой проблемы УБИРАТЬ ЗАВИСИМОСТИ. Ещё раз повторяю - ну не хочу я статически слинкованную систему. Т.к. уязвимости, баги, забивание болта на поддержку новых версий и прочие атрибуты винды.

Во-вторых, описанная ситуация редка и даже без изобретения СуперПуперКосмонавтСистемы её ручками можно исправить (раз уж так раздражает). УГУ СОБРАТЬ ХОТЯ БЫ ИЗ ИСХОДНИКОВ.

Глюк с панельками в гимпе - это какой-то бред, никогда такого не видел; в 2.8, правда, всё-таки есть дебильная «„„фича““», от которой я бы отказался - разделение export/save. Бесит нереально. Но хрен бы уж с ним, проще привыкнуть. Всё равно же 2.8 в целом лучше.

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

Кстати, вот если бы прикрутили к dpkg мультиверсионную установку в отдельные каталоги С ЗАВИСИМОСТЯМИ, я бы слова дурного не сказал.

Это невозможно в принципе, потому что дерево зависимостей доходит до libc и ядра (с учётом версии). Или вы собираетесь где-то разорвать зависимости? Надеюсь, в курсе, что ни один разработчик или ментейнер не захочит ручками прописывать, какую именно зависимость можно переиспользовать, а какую надо затащить в отдельный каталог?

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

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

И это таки было бы киллерфичей.

В генту есть, в портах фряхи есть. Нифига это не киллерфича, особенно в том виде, что сейчас - все рулится через симлинки (один единственный выбор для всего). В идеале, у каждой программы должен быть свой файл-манифест, что ей нужно, каких версий и т.п. Странно, что никто не решился на такой шаг, т.к. для линукса модель файла просто идеальна. Это в винде взяли и сбацали реестр, но на тот момент это было оправдано. Сейчас управлять десятком тысяч файлов не так сложно, как казалось 15 лет назад.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)

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

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

Пройдет какое-то время, оси станут настолько невъ*бически сложными, а вы все будете лезть в них своими когтистыми линуксячьими пальцами и безумными от жажды глазами чтобы что-то «изменить под себя». Вам не кажется, что ОС - это основа, незыблемый базис, на которую устанавливается софт, с которым работает человек? Откуда такая мания представлять себя, компьютер, ОС и ПО как единое целое? Сейчас вы ляпнете что-нибудь про администрирование серверов, огромные требования к кастомизации и вновь забудете, что Убунта пилится для десктопа, где извращения нахрен не сдались.

linuxhater
()

интересно, то есть получается, запустим какой-нибудь гимп, файерфокс, гном-терминал или ещё что-нибудь с разными версиями ГТК, то эти библиотеки подгрузятся в память и каждая будет жрать свою долю?

А как быть с фундаментальными libc библиотеками? Каждому драйверу/приложению по персональному файлу?

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

Ну хехе. Радоваться тут нечему. А это в убунте такой весёлый QtCreator, или везде?

Он такой везде, как и большинство приложений. Как все кроссплатформенные приложения.

Это под линуксом можно подтянуть ogre-dev и ffmpeg-dev и оно даже будет собираться в одном дистрибутиве до обновления. Под видной и маком так не побалуешь, поэтому у кроссплатформенных программ попросту нет лишних зависимостей.

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

Ещё раз повторяю - ну не хочу я статически слинкованную систему.

Бедняжка. Путин тебя так - приставил КГБшников и заставляет использовать «статически слинкованную»? Адресок шоль, напиши, мы тебе динамически испеченных пирожков пришлем.

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

Во-первых, уж до ЯДРА-то оно стопудово не доходит)) и если реально если зависимость от старого ЯДРА, ничем этот ОдинТыкПукПакет не поможет.

Во-вторых, очень многие зависимости «>=» и соответственно более старые пакеты встанут в новую систему.

В-третьих, всякие зависимости было бы круто тоже научиться просто дублировать в системе - т.е., ставить несколько версий одной либы. Кстати и костыли с зоопарком всяких libboost1.49, libboost1.50, libboost1.51 и так далее сразу бы ушли в туман.

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

Спасибо за информацию. Кстати, глянул listaller (разработчик которого написал второе письмо в треде), вот где действительно велосипеды: для сборки требуется внести правки в код приложения и использовать обёртку над gcc вместо собственно gcc.

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

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

Убунта пилится для десктопа, где извращения нахрен не сдались.

Вот именно. Все извращения прячут от пользователя в виде няшной gui-шной програмки, такой как regedit :) А вот те, кто решит что-то переделывать внутри увидят бардак, да. Но чем-то надо жертвовать. А пока линукс десктоп с его /etc файлами и vim/emacs в качестве средства настройки мало кому нравится. Ибо это нифига неудобно, а во-вторых, переизбыток информации, который все усложняет.

Однако, если у каноникал это уйдет в мейнстрим, то они реально могут потерять серверный рынок, где gui вообще не сдались. Все управляется через скрипты. И тут есть выход, который надо бы донести до каноникал - делать все через сервисы и стандартные апи. Например, управление iptables - пишется демон, который общается только по хорошо документированному API (json, rest, xml - неважно). При этом легко пишется свой gui для десктопа и скрипты автоматизации под сервера. И везде и всегда соблюдается целостность. Но такой подход, как и все другие, не без недостатков. А именно, плохо продуманные интерфейсы и частая их модификация будут дергать третьесторонних разработчиков на перечитывание changelog на каждый чих. Но что поделать?

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

интересно, то есть получается, запустим какой-нибудь гимп, файерфокс, гном-терминал или ещё что-нибудь с разными версиями ГТК, то эти библиотеки подгрузятся в память и каждая будет жрать свою долю?

Незачем там разные версии GTK. Ещё раз: будет базовый набор библиотек, скорее всего с Qt, поскольку она всё равно будет на ubuntu phone.

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

Не, нам не кажется. ОС - такая же программа, как и всё остальное. Пишут их всё равно ЛЮДИ, следовательно сложнее чем может понять человеческий разум, оно не станет.

Ну а «извращения» - они даже в винде людям «сдались», даже там люди «извращаются». Потому что это не извращения, а нормальный рабочий процесс. Без утилит Руссиновича, например, винда бы вообще сдохла уже по-моему :)))

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

Ещё раз: будет базовый набор библиотек, скорее всего с Qt, поскольку она всё равно будет на ubuntu phone.

Да, даже если Qt, они один раз поломали взаимосвязь между 3 и 4 версиями, что мешает сделать подобное между 5 и 6? А убунтойдам необходимо всеже стремится поддерживать широкую аудиторию: и тех кто успевает все переделывать и тех кто не успевает. Иначе, может наступить момент, когда половины софта в системе просто не запустится. Клиентам это не надо.

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