LINUX.ORG.RU
ФорумTalks

Ох эти странные новые пакеты...

 , ,


0

2

Давайте поговорим о Snap(py), FlatPak и AppImage!

Начну с последнего. На первый взгляд неплохо, одно приложение - один файл, ничего устанавливать не надо. Скачал, сделал

chmod +х *.AppImage
и можно запускать. Но кто гарантирует*, что оно запустится? В отличии от первых двух тут нет никаких зависимостей, никто не знает, будет ли на целевой системе нужная библиотека. И вообще это просто спецификация (да, есть эталонная реализация), в которой так и написано, что надо нацеливаться на наиболее старые версии дистрибутивов и всё носить с собой. Вопросы безопасности в AppImage никак не решаются и оставлены на усмотрения пользователя и применение стороннего ПО (Firejail). С одной стороны пользователь сам должен понимать, что он скачивает и что запускает. С другой - AppImage позиционируется именно как простой для пользователя, неискушённого терминалом, способ скачать ПО и сразу его запустить. Создатель AppImage (ник probonopd) явно фанатеет от macOS и их подхода установки программ с помощью перетаскивания бандла (директория с расширением ".app") из архива в «/Applications». Кстати, что забавно, у пользователей macOS это вызывает большие трудности и они знают 1000 и 1 способ как сделать это неправильно. Проблема с безопасностью не только в, что от пользователя требуются дополнительные знания, но и в том, что применение стороннего решения не всегда работает гладко. И это при том, что именно Firejail рекомендуется на главной странице AppImage. Существуют так же и другие небольшие трудности, вроде интеграции с рабочим столом или автоматических обновлений, но это решается установкой дополнительного демона. Хотя при этом концепция становится уже не такой красивой, как изначальное «перетащил, запустил».

Snap. В основном я им и пользуюсь, т.к. стоит Ubuntu 20.04 и это способ установки ПО по умолчанию в приложении Software**. В отличии от предыдущего варианта, тут есть зависимости и разработчик ПО имеет гарантию (наверное), что его ПО будет работать, если они удовлетворены. Есть также изоляция приложений. Но она несколько странная и достаточно слабая. У некоторых приложений можно изменить список прав (да и вообще посмотреть), у других - нельзя. Нет доступного и ясного объяснения, что при этих изменениях происходит под капотом. Ввели новые термины, вроде «Interface», «Plug», «Slot». Но что оно делает внутри? Монтирует разные директории и файлы устройств, меняет профили AppArmor или что? Я пока точного описания не нашёл. Нет нормальной интеграции этого всего с Software. С виду описание разных приложений может ничем и не отличаться, но если посмотреть с помощью
snap run --shell soft-name
изнутри snap-контейнера, то права доступа к файлам и каталогам различаются, и одно приложение получает «Permission denied» там, где у другого всё хорошо. Понятно, что всю это информацию можно получить с использованием консольных команд, но я за прозрачные и изучаемые системы. Даже Android при установке приложения выводит больше информации о требуемых правах доступа и позволяет их менять при первом использовании. Кажется, относительно недавно snap сделал шаг в правильном направлении и интегрировал xdg-portals, которые изначально появились во FlatPak. Это такой способ получения доступа к, например, файлам, когда пользователь видит обычный для него диалог открытия/сохранения файла и выбирает файл, но при этом диалог является отдельным демоном вне контейнера и по результатам выбора управляет доступом для приложения внутри. И это правильный шаг. Но я пока не видел snap приложений, которые это используют. И раз уж приложения запускаяются в некой песочнице, что мешало её сделать более полноценной, ближе к тем же LXC? Чтобы изнутри приложение не просто было ограничено в доступе к определённым файлам, а не видело их в принципе, так же, как и другие процессы. Кроме этого мне очень не нравится, как snap-приложения запускаются. Очень медленно! Хотя их образы всегда смонтированы. Из-за этого вывод информации консольными утилитами (mount, df, ...) сильно захламлён и читать его неудобно. Кстати, зачем? Для интеграции с рабочим столом разве не было бы достаточно копирования .desktop-файлов и подобного наружу? А ещё интересно, как у snap-а с установкой приложений извне магазина от Canonical и просто из скачанного файла? Похоже, что никак. Software по двойному клику на .snap открывается, но сообщает, что установить не в состоянии.

И, наконец, FlatPak. С ним я пока сталкивался недостаточно много, а внутрь заглядывал ещё меньше. На первый взгляд изоляция устроена более полноценно и работают те самые порталы. Хотя, пишут, всё это обман и не работает нормально. По пока неизвестной мне причине запуск приложений из FlatPak происходит быстрее, чем Snap (пробую на одной и той же Ubuntu 20.04). И, насколько я понимаю, магазинов (или их аналогов) тут может быть сколько угодно.

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

Интересно, насколько вообще нужно было создавать тот же Snap (или FlatPak) с нуля? Можно ли было использовать apt+dpkg? И тут и там есть пакеты, есть зависимости, действия, которые нужно выполнять при установке и удалении. Можно же было сделать отдельную директорию с отдельной базой для «толстых» пакетов, а управлять ими с помощью существующих средств?

А может быть всё это пути не в том направлении и будущее за NixOS/GUIX и подобными системами с более продвинутыми пакетными менеджерами?

* - предвижу ответ «На GNU/Linux тебе никто ничего не гарантирует, неосилятор!»
** - Как раньше было хорошо с уникальными необычными именами. А теперь «Software», «Files», «Text Editor», «Viewer». Даже в macOS названия и то более разнообразные.

★★★★★

Последнее исправление: ls-h (всего исправлений: 11)

Хотя, пишут, всё это обман и не работает нормально

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

магазинов (или их аналогов) тут может быть сколько угодно

Магазина нет, есть репозитории. Твой магазин — это GNOME Software и KDE Discover, где отображается совокупность программ в репозиториях.

Активно пользуюсь и вообще рад наличию Flatpak. От безысходности держу AppImage + appimaged. Snap ужасен, но в нём распространяют IDE, так что пользуюсь.

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

Snap ужасен

Чем именно? Ну, кроме тормозов и старнностей с правами, о которых я писал.

ls-h ★★★★★
() автор топика

У snap вроде сервер проприетарный, это жирный минус.

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

xaizek ★★★★★
()
Ответ на: комментарий от ls-h

Моя претензия в том, что он не агностичен к применяемому дистрибутиву и, более того, активно завязан на централизованную инфраструктуру Ubuntu/Canonical. У него есть специфичные баги на не-Ubuntu дистрибутивах. У него невнятный CLI — Flatpak и выразительнее, и по фичам вперёд ушёл.

Flatpak активно работает с уже существующими стандартами, командами GNOME и KDE, и активно внедряет новые вещи с помощью порталов. Он просто лучше с точки зрения здоровья сообщества и его будущего как свободный проект. Snap отстаёт и не сильно старается для сообщества.

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

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

ls-h ★★★★★
() автор топика
Ответ на: комментарий от commagray

AppImage + appimaged

Используешь ли Firejail или что-то аналогичное, или просто так запускаешь?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

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

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

рандомными файлами по системе и внешними носителями

Интересно, если GTK/Qt внутри достаточно свежей версии, можно ли использовать порталы?

ls-h ★★★★★
() автор топика
Последнее исправление: ls-h (всего исправлений: 1)

Оче много текста, не читал, кг/ам. Вот этот разброд и шатание, три разных формата, мне напоминают как в Союзе делали одновременно Т-64, Т-80 и Т-72. Хоть одно что-то довели бы до рабочего состояния, что бы оно было стандартом, что бы у всех работало, что бы независимые разработчики делали под это дело пакеты.

Но нет, получилось очередное говно.

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

Я просто распаковываю нужные мне штуки руками в /opt и пользуюсь. Всякие сложные штуки типа snap и flatpak идут лесом, это первое что я удаляю после установки системы.

Khnazile ★★★★★
()

будущее за NixOS/GUIX и подобными системами с более продвинутыми пакетными менеджерами

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

это первое что я удаляю после установки системы

Со временем может быть сюрприз, т.к. та же Canonical перетаскивает под это софт:
https://snapcraft.io/blog/chromium-in-ubuntu-deb-to-snap-transition
https://www.opennet.ru/opennews/art.shtml?num=53073

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

Хоть одно что-то довели бы до рабочего состояния

Flatpak, Snap, Appimage. Все вполне в рабочем состоянии.

что бы оно было стандартом

Flatpak и Appimage. Snap уже нет. Потому что снап - это убунта, которая работает в убунте, под управлением убунты. Надеяться что снап станет стандартом - это все равно что надеяться, что Arch или RHEL перейдут на APT. То есть, полный абсурд.

что бы у всех работало

Flatpak. Appimage частенько косячит, а Snap прибит костылями к убунте.

что бы независимые разработчики делали под это дело пакеты

Flatpak и Snap. Под Appimage серьезного софта не делают.

А теперь проходимся по пунктам и выбор становится очевидным.

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

Потому что снап - это убунта, которая работает в убунте, под управлением убунты.

А что внутри базового слоя (или как оно там называется?) в Flatpak?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от petyanamlt

А это список дистрибутивов, на которых снап принципиально возмозно установить и худо-бедно запускать. По факту снап полноценно поддерживается только в убунте и производных (и то не всех, Mint вон вообще его забанил).

gasinvein ★★★
()
Ответ на: комментарий от ls-h

Теоретически - что угодно, на практике - три стека на выбор: Freedesktop, Gnome и KDE (собираются из исходников).

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

Во-первых, половина из списка - производные убунты.

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

qtm ★★★
()
Ответ на: комментарий от ls-h

А что внутри базового слоя (или как оно там называется?) в Flatpak?

В рантаймах в смысле? Кеды, Гном и Фридесктоп.

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

Мне пофиг на изоляцию, я ставил в сусе и оно отлично работало.

petyanamlt ★★★★
()

Должен победить один.

Скорее всего это будет как всегда решение от Red Hat.

Космонавт как обычно наиграется и скажет, ну ладно, ребята, берём Flatpak. Как это уже было с upstart/Mir/Unity/Ubuntu Store и пр.

У AppImage, насколько я понимаю, серьёзные проблемы интеграции в систему. Те же системные темы не подхватываются и т. д. Для задачи быстро скачать и потыкать сборку разработчиков – норм, для задачи распространения софта как-то не оч.

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

Блджад, рантайм Снапа - Ubuntu Core

А во FlatPak под (слоем ниже) GNOME/KDE такого нет? Нет базовых утилит GNU, D-Bus, поддержки разных локалей, т.д.? Это всё берётся из системы или как?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

Рантаймы Gnome и KDE собираются поверх Freedesktop SDK, а он собирается «с нуля» из исходников, не используя пакеты никакого дистрибутива.

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

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

А в результате есть какая-то принципиальная разница? Какие-то проблемы с пакетами Ubuntu в Core?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от cobold

Конкуренция между КБ, безусловно, нужна. Надо делать тендер, и победивший проект производится на всех заводах. Между заводами конкуренция не нужна, они делают то, что им закажут.

А а опенсурсе как всегда. 14конкурирующихстандартов.jpg

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

зависимость от поставщика?

Я на самом деле не совсем в курсе, мешает ли что-то собирать пакеты Ubuntu без Canonical. Можно ли Core выкладывать на чужих серверах или это нарушает лицензию? Тут ведь речь не о последней версии дистрибутива. То, что лежит в Core, оно времён 16.04 или вроде того, насколько я понимаю.

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

Собирать - не мешает, выкладывать - мешает торговая марка. Да и зачем, если оригинальный core snap заменить всё равно нельзя?

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

gasinvein ★★★
()
Ответ на: комментарий от ls-h

Как во флатпаке уже ответили. Принципиальные отличия.

  1. Нет привязки к Сanonical.
  2. Модульные рантаймы. Нужен - ставь. Не нужен - не ставь (точнее флатпак сам поставит).
  3. Сами проги меньше. Прога во флатпаке и в репах практически не отличаются по размеру. Тогда как в снапе прога все свое носит с собой, зачастую раздуваясь до неприличных размеров.
qtm ★★★
()
Последнее исправление: qtm (всего исправлений: 1)
Ответ на: комментарий от K50

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

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

Угу, Т-64 первый раз воевал в 2014-ом, когда уже новое поколение танков готовили.

К тому же для разных задач нужны разные танки

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

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

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

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

Ага, и стоит как самолёт.
Потом ещё на хрюковском заводе сделали больного кадавра Т-80УД с хрюковским дизелем двухтактным. Шикарная просто унификация.

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

Так Т-14 по всем характеристикам намного лучше. И стоит вполне себе в рамках, около 5 млн $. А за каким хером нужны танки в Арктике, ты не расскажешь? Все нормальные танки делаются под европейский театр военных действий, а не под арктический, и не с вертикальной каруселью как у Т-64 и Т-80, что бы не то что башню, а верхнюю лобовую деталь метать. Выкинули это говно и правильно сделали.

K50
()
Последнее исправление: K50 (всего исправлений: 1)
Ответ на: комментарий от K50

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

Вот например одна из баз.

https://topwar.ru/113937-baza-arkticheskiy-trilistnik-inzhenernoe-chudo-i-vaz...

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

В курсе. Так зачем там танки? Угнетать пиндосский десант и укрепления? Они туда никогда не дойдут.

Бороться с их танками? Ты себе как вообще представляешь оперативную доставку танков в Арктику?

K50
()
Последнее исправление: K50 (всего исправлений: 1)
Ответ на: комментарий от petyanamlt

Да мало ли что они там на словах хотят, они бюджеты хотят. Попилят как FCS, да и всё. А даже если что-то и родят, и даже если реально будет война России и США, то уж точно не в Арктике.

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

Там дед уже и Луну колонизировать собирается. Знаешь что такое меморандум? Это всего лишь сообщение о намерениях.

K50
()

А ещё интересно, как у snap-а с установкой приложений извне магазина от Canonical и просто из скачанного файла? Похоже, что никак. Software по двойному клику на .snap открывается, но сообщает, что установить не в состоянии.

Традиционно. Из командной строки. Ubuntu пользуюсь этак лет десять. Магазин приложений там традиционно что-то такое, что вызывает лишь одно желание — свалить в консоль или в synaptic (ну это и про другие дистрибутивы можно сказать).

snap install ./pony.snap -dangerous

Кроме этого мне очень не нравится, как snap-приложения запускаются. Очень медленно!

Есть такое. Насколько понимаю это при первом запуске приложения после установки или апдейта. Если HDD, то калькулятор может этак 10 секунд запускаться.

На HDD сейчас уже жизни нет со всем этим…

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.