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)
Ответ на: комментарий от quiet_readonly

Угу, не dll hell, а stable api nonsense. Но от этого не легче.

vitalif ★★★★★
()

Всё. Убунту прошла точку невозврата....

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

Если будет базовое гарантированное окружение с гарантированными дырами - то поэтому...

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

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

кривых рук пользователей

http://ru.wikipedia.org/wiki/Blaster_(компьютерный_червь)

setup.exe

не, это очень плохо.

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

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

http://ru.wikipedia.org/wiki/Blaster_(компьютерный_червь)

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

не, это очень плохо.

Это очень очень хорошо.

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

Давно уже не считаю Убунту линуксом. И с каждым разом убеждаюсь в своих словах!

Ubuntu пока еще linux, но верно и уверенно катится в оффтопик. Жду не дождусь, когда все программы будут весить тонны (дублируя все библиотеки) и все будут устанавливаться в /ProgramFiles в угоду адептам оффтопика.

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

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

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

пострадали лишь те, кто его отключал.

Или только что поставил ось, спасибо. Нет, венда не дырявая, что вы))

setup.exe

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

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

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

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

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

Беда в том, что космонавтская контора ничего принципиально нового не придумала (даже Unity на первых порах была сильно переделанным Gnome 2), а все или почти все их громкие заявление пока-что ничем не закончились... Извините, Поттеринг проталкивает свои systemd pulseaudio и проч. сетевые извраты, при всей неоднозначности этих решений у него хватает сил и желания проталкивать их. А Canonical только позавчера научили Unity не падать на каждый [неразборчиво]. Дело, еще раз повторяю, не в том, что космонавт анонсирует, а в том что он 90% этих анонсов не доводит до исполнения...

90% твоего сообщения чушь
90% линуксойдов используют убунту. А вот systemd, меж тем, не используют даже оставшиеся 10%. Проталкивает, проталкивает.. куда?))

Раньше Unity был плагином для компиза, который работал поверх Gnome 2, сейчас это плагин для компиза, который работает поверх Gnome 3. Unity Next - пока темная лошадка, но скорее всего, как все работало поверх гнома, так и продолжит работать.

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

Поттеринговский пульсаудио - уже есть практически везде и оно работает.

Systemd тоже очень даже внедряется и, такими темпами, скоро будет практически везде, и на серверах, и на десктопах. Просто не быстрое это дело, т.к. большинство разработчиков дистрибутивов - рассудительные спокойные люди. Их не шатает из стороны в сторону как Марка. Но даже в убунту, которая кичится своим апстартом, есть куски systemd.

Gris
()
Ответ на: комментарий от special-k

Или только что поставил ось, спасибо. Нет, венда не дырявая, что вы))

Ога, червь морриса наверно под виндой работал

Плохо, ужасно, т.к. программы обновляются на свое усмотрение

Обычно проверка обновлений делается на старте программы. У тебя сразу все программы стартуют при загрузке системы?

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

исправление появилось

И да, напомню, что некоторые дистрибутивы вообще не обновляются (slackware в частности) и ничего..

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

Да я не пойму, почему нет-то?

Один из use-case'ов установки программы в хомовик — поставить нужную версию программы когда зависимостей для неё нет и никогда будет в дистрибутиве.

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

Слава Неуловимому Джо, который стоит на страже линукса.

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

Давно уже не считаю Убунту линуксом. И с каждым разом убеждаюсь в своих словах!

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

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

Проще должно быть со стороны поддержки и внесения изменений.

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

В случае же если у вас будет большой «толстый» пакет, в который включены необходимые библиотеки вам нужно будет переустанавливать этот пакет целиком, а не обновлять лишь библиотеку и так с каждым «толстым» пакетом.

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

Это всё на совести разработчиков и мантейнеров пакетов.

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

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

Согласен. В сферической операционной системе в вакууме я, как пользователь, точно бы предпочёл принцип установки софта через системы отслеживания зависимостей, ибо это в теории действительно удобно и практично. НО! В нашей суровой реальности ввиду неидеальности систем контроля версий такой подход оказывается более проблематичным (для того же конечного пользователя). Принцип all-in-one избыточен, неприемлем перфекционистами да и вообще приближает тепловую смерть вселенной. Но он менее проблематичен, поэтому в дружелюбной к пользователям системе и предпочтителен.

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

Ну, во-первых, по-моему, без стабильного АПИ (который nonsense) ты это всё равно не сделаешь. Например, может зависеть от видеодров или от новых X'ов, или от мезы.

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

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

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

Ога, червь морриса наверно под виндой работал

точно не под линукс..

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

поэтому _все_ юзерские программы должны идти в «толстых» пакетах

Поэтому это будет не система а хлам, кому так нужно пусть идут на Windows.

А как быть с пересекающимися файлами и разными зависимостями? Например, новая версия хочет boost 1.50 и c 1.46 из 12.04 она даже не соберется.

Кхм, скажите пожалуйста почему Internet Explorer 9 не сиавится на Windows 2000 ?

Установить пакет с новым boost.

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

>> Давно уже не считаю Убунту линуксом. И с каждым разом убеждаюсь в своих словах!

> Завтра ты слакварь не будешь считать линуксом, а потом тебя запрут в дурку, потому что ты давно утратил связь с реальностью.

Правильно он всё говорит. А что, кроме слаквари и убунты дистрибутивов Linux нет, только «красноглазое»? А как же дружелюбные к начинающему пользователю RPM-based?

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

Ну, во-первых, по-моему, без стабильного АПИ (который nonsense) ты это всё равно не сделаешь.

user space API стабилен, nonsense это про ядерный API

Во-вторых, ПукПакеты это не совсем решают - они же прибиты гвоздями к убунте.

замечательно

В-третьих, опять-таки, и совместимость с разными дистрами можно сделать

совместимость с разными дистрами не нужна

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

завязались на багнутую функциональность

Если они завязались на багнутую функциональность, то их софт ДОЛЖЕН сломаться. Иначе будет идиотизм с поддержкой в новых версиях всех старых багов. Как в IE. Спасибо, не надо.

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

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

У тебя хромает логика.

А пластичность, быстрая развёртываемость, защищённость от вирусов ?

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

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

Поэтому это будет не система а хлам, кому так нужно пусть идут на Windows.

Она сейчас хлам и статистика это подтверждает. Системы, которые осознали эту проблему резко взлетели по популярности (пример: андроид)

Кхм, скажите пожалуйста почему Internet Explorer 9 не сиавится на Windows 2000 ?

Потому что в винде IE является системообразующим приложением таким как libc в линуксах и так просто его обновить нельзя

Установить пакет с новым boost.

Откуда его взять? Новый буст есть только в новой версии дистрибутива и он собран новым g++ с новым glibc, поэтому их тоже надо обновлять, а они потянут за собой еще 100500 пакетов ... добро пожаловать в dependency hell

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

совместимость с разными дистрами не нужна

Ааааа, так вот оно как! Тогда идите вы лесом со своей убунтой. Не хватало ещё несовместимых линуксов.

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

Угу, иди скажи юзеру Васе, что его рабочая софтина вдруг внезапно насильно будет приведена в нерабочее состояние, допустим, на пару дней, пока её свободный разработчик-студент проспится после последней пьянки, только потому что это ИДЕОЛОГИЧЕСКИ НЕВЕРНО.

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

Не хватало ещё несовместимых линуксов.

На уровне бинарных пакетов они и так несовместимы.

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

Тут так и есть. Когда каноникл с кем-то не договорится или их патчи не примут, так все - сволочи, а каноникл - мученики. А как сами что-то пилят, так пофиг на совместимость изначально.

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

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

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

Это как это внезапно? Рабочие софтины они на стейбл версиях дистрибутивов. Там ничего внезапно не случается. А если Вася работает на анстейбл, то он ССЗБ.

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

поэтому их тоже надо обновлять, а они потянут за собой еще 100500 пакетов

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

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

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

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

Но есть одно «но»: не факт, что обновление разделяемой библиотеки, пусть даже ради благой цели безопасности, не обрушит связанные с ней программы

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

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

Какой автор ? Мантейнер пакета ? Он и так должен протестировать пакет на работоспособность с новой библиотекой это раз. Два, в системе могут быть установлены две версии библиотеки, т.к. в имени файла библиотеки присутствует указание её версии.

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

Это всё на совести разработчиков. Возможно они сами не далеко ушли от пользователей. А сами пользователи этого дистрибутива не особо стремятся писать баг репорты.

Согласен. В сферической операционной системе в вакууме я, как пользователь, точно бы предпочёл принцип установки софта через системы отслеживания зависимостей, ибо это в теории действительно удобно и практично. НО! В нашей суровой реальности ввиду неидеальности систем контроля версий такой подход оказывается более проблематичным (для того же конечного пользователя). Принцип all-in-one избыточен, неприемлем перфекционистами да и вообще приближает тепловую смерть вселенной. Но он менее проблематичен, поэтому в дружелюбной к пользователям системе и предпочтителен.

Это всё на совести разработчиков, предложением по созданию «толстых» пакетов они по просту признают свою не достаточную компетентность и не готовность решать проблемы. Благо жёсткие диски сейчас большие и система, расползгаяся на 50-100 Гб пользователя не сильно будет удручать. Кроме всего прочего Ubuntu - это не роллинг релиз дистрибутив, возможно пока, так что оттестировать работоспособность пакетов из репозитория на корректность при работе и установке вполне возможно.

kostik87 ★★★★★
()
Ответ на: комментарий от special-k

Потому что ruby это скриптовый язык? Как ты себе это представляешь держать в репозитории по 100500 вариантов каждой либы, собранной разными компиляторами с разными опциями и зависимостями?

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

У тебя хромает логика.

С чего это ?

Так что ты не в тему, ибо, напомню, этот топик про дружелюбную к непрофессиональным пользователям ОСь.

Это топик про признание разработчиками Ubuntu своей некомпетентности в вопросах устранения проблема в системе установки пакетов.

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

Речь идёт об обновлениях, исправляющих ошибки, а значит вполне может прилететь и в stable дистр.

А если Вася работает на анстейбл, то он ССЗБ.

Давно подмечено, что слово «unstable» в контексте линукса заставляет сердце ёкать сильнее, чем под окнами, где от него - лишь покер фейс. Ибо виндовый unstable юзерский (т.е. не серверный) софт в среднем стабильнее юзерского линуксового.

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

Откуда его взять? Новый буст есть только в новой версии дистрибутива и он собран новым g++ с новым glibc, поэтому их тоже надо обновлять, а они потянут за собой еще 100500 пакетов ... добро пожаловать в dependency hell

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

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

Андроид резко взлетел по популярности не из-за гениальной организации системы, а благодаря моменту - он же оказался первой ОС для тач-смартфонов, которую можно было ставить на свои девайсы производителям, отличным от Apple. Плюс нормальная оптимизация и удобство UI, плюс поддержка ($$$) гугла и маркет.

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

Кроме того, конкретная версия андроида прибита гвоздями к конкретной версии ядра, и в итоге почти на всех телефонах есть гарантированные ДЫРЫ, через которые получается root. Причём, на дыры я лично не жалуюсь - хорошо, что они там есть! Ведь ИДИОТСКИЙ гугл получение root'а считает криминалом (действительно, как можно! иметь контроль над СОБСТВЕННЫМ ТЕЛЕФОНОМ! преступление просто)

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

Потому что ruby это скриптовый язык

Ага, потому что гладиолус. Потому что захотели и решили.

держать в репозитории по 100500 вариантов каждой либы

Технически так и есть..
oldstable, stable, testing, unstable
[lucid] [lucid-updates] [lucid-backports] [precise] [precise-updates] [precise-backports] [quantal] [quantal-updates] [quantal-backports] [raring] [raring-updates] [raring-backports] [saucy]

special-k ★★★★
()
Ответ на: комментарий от Valkeru

В смысле брать ноут с виндой туда где нету быстрого интернета?

О, это еще как проще. Особенно учитывая то, что производительность ноута в 2 раза выше благодаря прямому драйверу для моей видюхи в Windows . Батарея в Windows живет в 1.5-2 раза дольше без многочасового копания в laptop-mode-tools, а нагревается примерно в 1.5 раз меньше (еще и не известно получится этого добиться или нет, так как на максимуме Windows vs Linux нагрев у последней больше).

Но я надеюсь что когда-нить ubuntu станет такой же адекватной вот только все дистры linux кажутся обрубками. Потому как винда работает везде в отличии от linux дистров с тысячами зависимостей.

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

Обратитесь к разработчикам дистрибува

Почему я должен это делать, когда в нормальных системах я просто беру и ставлю что хочу?

Несколько версий boost могут быть установлены параллельно

буст взят для примера, он может, а другие либы не могут

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

«толстые» пакеты это единственное возможное решение, другого просто не существует

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

Ага, потому что гладиолус. Потому что захотели и решили.

Нет, потому что изначально проблемы просто не было

Технически так и есть..

Да и оно друг с другом несовместимо.

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

Последняя версия на линуксячьем языке значит unstable, stable она станет после многолетней мариновки, и никого не волнует, что за много лет с этой версии _ничего_ не делали и никакие патчи не накатывали.

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

@Reset @special-k

Вы оба не правы. Но с Reset я согласен больше. Setup.exe или правильнее будет сказать MSI ставится без бубнов, без зависимостей и только в ответственности разработчика. Пользователь НЕ должен нести ответственность за кривизну рук разработчика, яко бы последний должен им предоставлять пакет для КАЖДОГО сотого дистра и обеспечивать совместимость с ранними версиями тех самых дистров. Для special-k хочу заметить, что ЛЮБАЯ программа в Винде уже сто лет как блокируется и без необходимости иметь накрученные фаэрволы. Любая уважающая себя прога уже давно имеет удобно расположенные опции отключения обновлений, а те, что не имеют, легко блокируются брандмауэром через wf.msc или хотя бы тем же hosts.txt . Способы есть и их более, чем достаточно. Кому не нужно, те не будут обновляться. Что касается Адоба, то же непонятки. Все обновления прекрасно отключаются. Тот же Flash Player при каждой установке СПРАШИВАЕТ, хочет ли пользователь получать обновления автоматически, устанавливать вручную или не устанавливать вообще. Никаких с этим проблем нет.

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