Опубликована (https://github.com/flatpak/flatpak/releases/tag/1.2.0) новая стабильная ветка инструментария Flatpak 1.2 (http://flatpak.org/), который предоставляет систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux и выполняемым в специальном контейнере, изолирующем приложение от остальной системы. Поддержка выполнения Flatpak-пакетов обеспечена для Arch Linux, CentOS (https://copr.fedorainfracloud.org/coprs/amigadave/flatpak-epel7/), Debian, Fedora, Gentoo, Mageia, Linux Mint и Ubuntu. Пакеты с Flatpak включены в репозиторий Fedora и поддерживаются в штатной программе управления приложениями GNOME.Ключевые новшества (https://github.com/flatpak/flatpak/blob/master/NEWS) в ветке Flatpak 1.2:
- Добавлена новая команда "flatpak kill" для принудительного завершения работающих экземпляров flatpak-окружений;
- При установке пакетов в интерактивном режиме указание внешнего репозитория в числе аргументов командной строки теперь является необязательным (если не указан выводится интерактивный запрос);
- Во все команды с табличными результатами добавлена опция "--columns" для управления выводом;
- В команду "flatpak uninstall" добавлена опция "--delete-data" для удаления каталога с данными приложения (если не указать конкретное приложение, то будут удалены все каталоги с данными удалённых приложений);
- В команде "flatpak remote-ls" обеспечен показ runtime для каждого приложения в списке;
- В команду "flatpak repo" добавлены опции "--info" для отображения сведений о репозитории и "--commits" для вывода списка изменений в ветке;
- Обеспечено отображение транзакций в логе systemd при сборке с libsystemd;
- Удалена поддержка миграции с xdg-app (прошлое название flatpak);- Добавлена опция "flatpak --installations" для показа списка всех установленных приложений flatpak;
- В команды install, update и uninstall добавлена опция "--noninteractive" для выполнения операции из скриптов без дополнительных запросов и с минимальными выводом;
- Реализована начальная поддержка применения в sandbox-окружении системных параметров по умолчанию из dconf;
- Приложениям, использующим интерфейс DRI (Direct Rendering Infrastructure), для корректной поддержки CUDA и OpenCL предоставлен доступ к большему числу файлов устройств NVIDIA (/dev/dri/renderD*);
- Команда "permission-list" переименована в "permissions", а "document-list" в "documents" (старые имена не удалены для сохранения совместимости);- При выполнении привилегированных операций обеспечена возможность аутентификации в терминале при отсутствии агента policykit;
- Указание команды "update" без дополнительных аргументов теперь приводит к обновлению всех установленных пакетов.Напомним, что разработчикам приложений Flatpak даёт возможность упростить распространение своих программ, не входящих в штатные репозитории дистрибутивов, за счет подготовки (http://flatpak.org/developer.html) одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Для пользователей, заботящихся о безопасности, Flatpak позволяет выполнить вызывающее сомнение приложение в контейнере, предоставив доступ только к сетевым функциям и файлам пользователя, связанным с приложением. Для пользователей, интересующихся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений, без необходимости внесения изменений в систему. Например, в настоящее время Flatpak-пакеты уже собираются (https://flathub.org) для LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio и т.д.
Для уменьшения размера пакета, он включает лишь специфичные для приложения зависимости, а базовые системные и графические библиотеки (Gtk+, Qt, библиотеки GNOME и KDE и т.п.) оформлены в виде подключаемых типовых runtime-окружений. Ключевое отличие Flatpak от Snap заключается в том, что Snap использует компоненты окружения основной системы и изоляцию на основе фильтрации системных вызовов, в то время как Flatpak создаёт отдельный от системы контейнер и оперирует крупными runtime-наборами, предоставляя в качестве зависимостей не пакеты, а типовые системные окружения (например, все библиотеки, необходимые для работы программ GNOME или KDE).Помимо типового системного окружения (runtime), устанавливаемого через специальный репозиторий (http://sdk.gnome.org/repo/), поставляются дополнительные зависимости (bundle), требуемые для работы приложения. В сумме runtime и bundle образуют начинку контейнера, при том, что runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам, что позволяет обойтись без дублирования общих для контейнеров системных файлов. В одной системе может быть установлено несколько разных runtime (GNOME, KDE) или несколько версий одного runtime (GNOME 3.26, GNOME 3.28). Контейнер с приложением в качестве зависимости использует привязку только к определённому runtime, без учета отдельных пакетов, из которых состоит runtime. Все недостающие элементы упаковываются непосредственно вместе с приложением. При формировании контейнера содержимое runtime монтируется как раздел /usr, а bundle монтируется в директорию /app.
Начинка runtime и контейнеров приложений формируется с использованием технологии OSTree (https://www.opennet.me/opennews/art.shtml?num=37750), при которой образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree (http://rpm-ostree.cloud.fedoraproject.org/). Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, система обновляется не на уровне отдельных компонентов, а целиком, атомарно меняя своё состояние. Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении.
Формируемое изолированное окружение полностью независимо от используемого дистрибутива, не имеет доступа к файлам и процессам пользователя или основной системы, не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и сетевой подсистеме.
Вывод графики и организация ввода реализована (https://github.com/flatpak/flatpak/wiki) при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено на основе системы обмена сообщениями DBus и специального API Portals. Для изоляции используется (https://github.com/flatpak/flatpak/wiki/Sandbox) прослойка Bubblewrap (https://github.com/projectatomic/bubblewrap) и традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux. Для вывода звука применяется PulseAudio.
URL: https://github.com/flatpak/flatpak/releases/tag/1.2.0
Новость: https://www.opennet.me/opennews/art.shtml?num=50040
Flatpak - параллельная пакетная система. Snap же просто упаковывает галимую проприетарщину и другие проблемные вещи со всеми потрохами, хорошо решая именно эту задачу.
> Flatpak - параллельная пакетная система. Snap же просто упаковывает галимую проприетарщинуРазве они не _оба_ для упаковки проприертаршины?7
Там так и написано: Snap просто упаковывает, а Flatpak дополняет потритаращину голимой пакетной системой.
snap заметно хуже, ведь он централизован и не подхватывает системную тему, а также не поддерживает столько дистров.И мне нравится здесь то, что зависимости таки есть (например gtk3 пакет есть) и одни и те же либы не грузятся по нескольку экземпляров в память как в оффтопике. Именно поэтому docker тоже не фонтан для десктопа, даже если ему прикрутят GUI.
У различных контейнеров в docker могут использоваться общие слои файловой системы
> а также не поддерживает столько дистров.10 у snap против 14 у flatpak.
Ну не так уж и разгромно.
13 у flatpak. Я удивился, что он поддерживает ChromeOS, а на самом деле там ставится Debian в контейнере.
Без поддержки AppArmor в дистрибутиве Snap не предоставляет изоляции и бесполезен как песочница.
> Без поддержки AppArmor в дистрибутиве Snap не предоставляет изоляции и бесполезен как
> песочница.А какие дистрибутивы из поддерживаемых снапом, кроме федоры, не имеют поддержки AppArmor?
Arch Linux получил оф-поддержку только в конце прошлого года. Причём, LTS ядро пропатчили только в этом году.
За остальные дистрибутивы не скажу. Debian-based, по-идее, все должны поддерживать.
Вроде делают это для упрощения и юзабельности, а на деле всё так же куча команд, которые большинство нормальных людей не захотят даже узнавать. И не понятно, ради чего всё это. Сделали бы тогда сразу один официальный клиент с кнопочками.
Ну в федоре и в убунте (с некоторыми лишними для телодвржениями) есть.Неплохо бы сделать flatpak пакет с GUI для него.
Превозмогая фиксированные версии пакетов на десктопе
А нефиг однокнопочным лезть в терминал. В дистрибутивах для однокнопочных есть графические центры приложений или как их там. Считай еще одним бакендом для оных.
> один официальный клиент с кнопочкамиНапример, Gnome Software ?
Есть еще неофициальный Plasma Discover для тех, кто не хочет GTK.
Пробовал на убунте ставить несколько программ через снап и флэтпак, так снап показался полной шляпой, что-то не завелось совсем, что-то с грехом... И это не смотря на то, что каноникал продвигает снап. А флэтпак ничего так, имеет право на существование. Не понял только зачем в эти форматы пакуют программы смысл которых иметь доступ к оборудованию, т.к. доступа конечно нет.
appimage повкуснее выглядит
Да, но тут речь идёт об изоляции приложений, которой в appimage в принципе нет.
> Указание команды "update" без дополнительных аргументов теперь приводит к обновлению всех установленных пакетов.А раньше типа не было. :D (На Арче с версии 1.0.0 было.)
Да, тоже это в ступор ввело. Сколько помню, все время обновлялся через flatpak update.
flatpack update обновлял не все, после него надо было индивидуальные запускать. Похоже ты просто не обновлялся.
> собраны с правами "filesystem=host", "filesystem=home" или "device=all"А пользователь это не контролирует, не может изменить?
Может, конечно, но не станут же распространители FUD об этом упоминать.
Скажите, друзья!
А видел ли кто Вайн в виде flatpak?
https://github.com/winepak
оно?
Это вряд ли будет, потому что Flatpak больше для софта с GUI, а не CLI.
На этот вопрос ответа не знаю, зато скажу что сегодня попробовал Lutris, и он крут - для конкретного приложения позвоняет добавить нужную версию Wine (там в коллекции Wine начиная с 1.7-какого-то). Прекрасно заработала Civ3, которая жестко глючит в современном Wine.
было хотел что все что есть во flatpak ставить во flatpak.
>несколько версий одного runtimeвот у меня несколько версий тяжеленного kde runtime образовалось. И че-то как-то расхотелось.
По snap-у, благодаря этой новости, стал кажется понимать. Не понимал почему пакеты останутся. То есть начинаю снизу, дробим все мелко, идем выше выше, и в момент сборки уже конечного приложения можно срезать и запихнуть недостающее в snap. Компромисс между усилиями (либо свежестью) и размером.
Но тот же firefox весил как-то дико, но, вроде, в дебиане.
>вот у меня* и вот у меня
Тоже помню такой прикол когда kdenlive на посмотреть, пришла как казалось, светлая, идея через snapack. Оказалось больше мегабайт с пакетами выкачивать чем системным менеджером. Ну на х..
Мда уж. Была одна единственная проблема - dependency hell.Даунское решение этой проблемы - таскать за собой в одном архиве все необходимые либы.
Правильным решением этой проблемы было всего лишь упростить установку необходимых либ, вплоть до ручного скачивания одной .so-шки и последующего размещения ее в директории с программой, если основная системная не подходит. Это не правильно, когда бинарник вайбера работает на libcurl3, в системе установлен libcurl4 с которым вайбер тоже работает, но грьобанный apt не разрешает устанавливать вайбер, а предлагает снести libcurl4 (и еще пол-системы заодно) и поставить libcurl3. До такой ереси даже индусский Майкрософт не додумался.Что мы получили в итоге: огромные наборы программ и либ, какие-то контейнеры, какие-то sandbox-окружения, работы с dconf, кучу новых комманд, изоляцию окружений, пробросы сокетов X11, сообщения через Dbus, какие-то новые API Portals, прослойки Bubblewrap.
ШТОЭТА??!!111
Это ты о snap? Просто flatpak работает немного по-другому.
> до ручного скачивания одной .so-шки и последующего размещения ее в директории с программойВсе поисковики загажены запросами "скачать msvc100500.dll бесплатно". Нам в линуксе такого не надо.
> Все поисковики загажены запросами "скачать msvc100500.dll бесплатно". Нам в линуксе такого
> не надо.Угу. Нам надо либо трахание с зависимостями, либо изобретение нескольких новых проблем взамен решения одной единственной.
Контейнеры, контейнеры everywhere
https://discourse.nixos.org/t/fyi-building-docker-image-with...
> https://discourse.nixos.org/t/fyi-building-docker-image-with...Что это и зачем это ?
Чукча не читатель
я глупостей не чтец, тем паче - образцовых
инструкция как собрать ненужноконтейнеризацию в ненужно-контейнерной ос не в контейнере.
Была такая же проблема с curl. Подсмотрел решение в файле BZU от Редрута. В данном случае оно помогло.3.2а УСТАНОВКА ОДНОВРЕМЕННО libcurl3 + libcurl4 В UBUNTU 18.04.1+
#для решение этой проблемы есть специальный репозиторий который устанавливает обе библиотеки, чтобы они друг другу не мешали.
sudo add-apt-repository ppa:xapienz/curl34
sudo apt install curl
Автор: Яцына М.А.
> Была такая же проблема с curl. Подсмотрел решение в файле BZU от
> Редрута. В данном случае оно помогло.Пойми, бро, проблема не в том что curl. Любая проблема на Linux в принципе решаема. Вопрос только в потраченном времени и в количестве прочитанного дреьма чтобы решить тривиальную задачу.
Звонит тебе киса говорит "дорогой, хочу скинуть тебе парочку фоток ню, сегодня для тебя сделала, поставь вайбер". И ты такой: "ща ... ой извини, тут libcurl неправильной версии ... упс я тут пол-системы угрохал, щас поставлю обратно ... мля теперь вайбер удалился ... короче пошел я гуглить ... о нагуглил совет №1, не помог ... наяндексил еще один совет, тоже не работает, гуглю дальше ... о, подсмотрел решение в файле BZU от Редрута, жди". Киса похлопает ресничками, полюбуется светящимся яблочком на ноуте, и придет к справедливому выводу, что она тебе не нужна, ты и без нее справляешься :)
Брехня!
Дай мыло, скину телефон кисы, она подтвердит.
Чем браузерный телеграм, вайбер, васпп, зум и комания не угодили?
А зачем пихать эти трояны в и так одну из самых уязвимых и популярных программ?
Без мата сложно высказаться о таком "решении".
как автор решения могу сказать, что проще вариант найти не получилось =) каноникал устроили ад в зависимостях
>sudo add-apt-repositoryНет.
>ШТОЭТА??!!111"Светлое будущее" десктопного линукса, кхе-х.
Переезжай на "плохой, нестабильный, ат-та-та" арчлинкус и будет тебе счастье, депенденсихела нет потому что pacman.при этом можно безболезненно удалять любой пакет, даже который пытается утащить пол системы зависимостей (если тебе то сдалось то просто флаг -Rdd) и прочие фишки ненужного, нецарского, неготового для десктопа дистрибутива :P
А если библиотека или программа необходимы для функционирования других программ тоже утащит? Так это и без нестабильной свалки пакетов, склеенных системдой и пакманом можно делать. Например убрав пакет руками. Правда зависимые сломаются. Вот можешь ты к примеру с помощью своего наикрутейшего пакмана без "nрахен-coмпиляхен" снести пульсу не сломав звук?
Если приложение использует и пуль и не пульс (как у автора комента старая/нова либа), то если выпилить пульсу звук будет через алса (если не запиленны какие-нибудь скрипты или приложение наглухо собрано онли под пульсу (как с лисой без алсы например).
Поэтому - да, можно, потому что эта "нестабильная свалка пакетов" в первую очередь нормально прописывает зависимости и создаёт такую вот "нестабильную" структуру без депенденсихелов и срущих под себя пакетиков, часть из которых несчастным владельцам дебьянбейзед приходится собирать вручную удаляя проверку зависимостей из скрипта. Я не знаю в чём прикол, наверное в безумной инерции, так прям цепляются за эту разваливающуюся структуру деб пакетов, защищают её и кидаются во всех какахами кто смеет намекнуть что король уже давно голый :)
Флатпаки и аппимейджи ещё всякие придумывают, только бы не возиться с горой мусора которую сами активно поддерживают и защищают.
> Мда уж. Была одна единственная проблема - dependency hell.хмм.. таки единственная проблема - эт межплечевая жопа вместо нужного органа и 4 (четыре, Карл!) ноги, вместо пары рук и ног.. есть LSB (/opt/$pkg_name/$pkg_version, Карл..), есть опции статической сборки, есть $LD_PRELOAD и вагон опций у юзверя сообщить ldconfig-у о наличии сета либ, помимо системных.. и т.д. и т.п.. но Карл, эт же ж фтыкать маны надо.. хайпа не будет, оверхедов тоже мизер, а новое железо.. нувыпонели, да?
"Стыд и Срам, Товарищи! Срамота!"(ц)
От количества пакетных менеджеров кружит голову, какой выбрать полегче или более тяжелый, куда дальше в какую сторону иди да так чтоб скриптами радоватся по пути :)Да пакетных менеджеров дохерища развелось, в винде ни одного нормального и никто не жалуется...
По сабжу, чем сие творение поможет админам крупных сетей? 100-3000 узлов. Думаю в этом сегсенте уже не имеет значения пакетный помощник - terrafofm, ansible, chef, salt, faremen в любом случае унифицировали более менее развертывание...
Вот действительно другого уровня подход, так это у NixOS и GuixSD
Runtime KDE - это, конечно, хорошо. А как вот мне поставить этим flatpack'ом Plasma Desktop?
Думаю, что никак. Flatpak для более прикладных вещей.
Это тебе в snap
> Добавлена команда "flatpak kill" для принудительного завершения работающих экземпляров flatpak-приложений;Добавлена команда "flatpak ps" для просмотра информации о flatpak-процессах (в будущем ожидается отображение информации о потреблении ресурсов);
Даже этого в них не было несмотря на невменяемые,чудовищные зависимости.
>только к сетевым функциям и файлам пользователя, связанным с приложением.Всего-то )
Не надо на десктопе в угоду фиктивной безопасности переусложнять систему. Если лопух-пользователь привык всё хранить к примеру, в браузере, никакая изоляция не спасёт.
FreeMind кто-нибудь может зафлатпакать, пожалуйста?
Хотя нет, не надо. Багу так и не поправили https://sourceforge.net/p/freemind/bugs/1280/
> При установке пакетов в интерактивном режиме указание репозитория и полного имени в командной строке теперь является необязательным.Наконец-то, блин. Очень задалбывало, что если приложение есть только в одном репозитарии, то оно всё равно спрашивало, в каком репозитарии его искать. При этом исполняемые среды искало само, в результате у меня два раза стоял гном 3.26, один с флатхаба, другой с гнома.
Теперь заживём.
> Ключевое отличие Flatpak от Snap заключается в том, что Snap использует компоненты окружения основной системы иSnap не использует компоненты окружения основной системы. Он точно также тащит runtime, пакет с которым называется, внезапно, core.
Ключевое различие заключается в том, что флатпак позволяет разработчикам самим создавать рантаймы, в то время как в snap рантаймы предоставлены Canonical.
Не, всё, это тупик> Для решения проблемы ненадлежащей настройкой доступа в пакетах разработчики Flatpak намерены в будущем реализовать детальное информирование пользователей о запрошенных приложением полномочиях
Разработчики психологически деформированы. Вместо того, что бы пофиксить причину и в корне отсечь лишнюю усложненную логику, они еще больше наваливают на юзера всякого шлака. Отличненькое упрощение!
Надежда на фп была, но он разжирел в угоду непонятно чему, честно говоря. На примере VSCode, вообще смешно - приложение изолировано для пользователя до уровня неюзабельности, но неизолировано для уязвимостей. И так повсеместно.
Ушел обратно в ~/.local/opt, буду держать вас в курсе.
Зачем все это теперь городить, когда уже есть более менее сносный докер?
Уже есть полноценные контейнеры с любой хренью внутри, какую только пожелал разработчик. Причем он сам все это собрал за пол часа с мануалом докера и гуглом. Есть система доставки и установки. Есть оптимизации. И все это такой же зоопарк из троянов и уязвимостей, но по крайней мере изолированных.
Сравнили мягкое с холодным?
Типа того. Но все равно факта это не отменяет.
Например https://hub.docker.com/r/woahbase/alpine-gimp вполне себе работает.
Зачем это всё нужно, если есть Android x86 и ChromeOS.
Андроид просто Г, а вот хромось уже совсем для дегенератов, они даже ойфоночеловекам фору дадут!
> можно отметить, появление ресурса flatkill.org с критикой FlatpakМожно, конечно. Если бы с момента его внезапного появления не прошло и года, и половина проблем не стала бы неактуальна, а другая - не была высосана из пальца ещё тогда.
К тому же, судя по описанию, критика в большей мере адресована Flathub, нежели Flatpak.
> популярные приложения, доступные в формате Flatpak .. имеют полный доступ к ФС, домашнему каталогу пользователяДаже Steam давно собирают без "--filesystem=home". Забудьте про ~/.bashrc и т.п.
Плюс, можно перекрыть локальные разрешения глобальными установками без перепакетирования отдельных приложений.
> при установке показывается пиктограмма "sandbox"Разрешения требуемые приложению показываются явно перед установкой. В консоли. Проблемы молчаливых Software Manager'ов - это проблемы молчаливых Software Manager'ов. Отец-основатель flatkill.org по-прежнему может прислать патч в любимый one. Ну или с высоты своего полёта засмузить ещё один очень важный и нужный сайт (gnomesoftwarekill.org?). На его усмотрение.
> авторы не спешат выпускать обновления .. VSCode, Android Studio и SublimeПривыкайте, проприетарщина заботится о нас.
> VSCode
> проприетарщиначто-то тут не так
>> VSCode
>> проприетарщина
> что-то тут не такКоняшка с близорукостью.
подскажите как безболезненно избавиться от этого мерзкого шлака? (Fedora 32WS Gnome)