LINUX.ORG.RU

Какие зависимости можно не включать в самодостаточный пакет?

 , , ,


0

1

Задача: сделать для аудиоплеера максимально долгоживущий самодостаточный пакет.

До какого уровня достаточно вынести зависимости, чтобы приложение работало, допустим, 10 лет? Как обычно комплектуют приложухи в AppImage?

Deleted

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

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

Оглянись на десять лет назад, если бы тогда собирал AppImage, ты бы, наверняка, компилял всё под x86, а сегодня это работало бы примерно нигде (в убунте точно. либу перемещали). Нельзя загадывать так далеко и надеяться, что ничего не изменится. Тем более, если ты расчитываешь на множество дистрибутивов.

Тут кто-то активно собирает ( mandala?) портативные версии софтин, но не помню кто, его бы спросить. На гитхабе в вики рекомендации довольно поверхностные и по ним складывается ощущение, что никто и не предполагает срок годности AppImage более лет трёх.

WitcherGeralt ★★ ()

Для 10 лет нужны все зависимости. Только ядерный ABI остается обратно совместимым.

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

Другой вариант, собрать контейнер на ubuntu 18.04, у нее 10 лет поддержки как раз.

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

То, что AppImage выполняется в окружении хоста ещё не значит что он это что-то обязательное и правильное. AppImage сделан так, чтобы он просто работал в типовых окружениях, которым вполне может любой дистрибутив выступать. В контейнере, например. Для сравнения, AppImage + LTS дистр в качестве рантайма даст больше самодостаточности, чем flatpak бандл + специфический рантайм флатпака.

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

даст больше самодостаточности, чем flatpak бандл + специфический рантайм флатпака

Это как понимать? flatpak бандл + рантайм запускаются в своём пространстве имён, и от хоста используют только ядро. Чтобы добиться того же с AppImage, придётся туда запихать целый дистрибутив, начиная c libc и xorg.

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

Целые дистры уже есть в виде OCI рантаймов для того же докера. Так что ничего никуда пихать не нужно, просто пишется простенький Dockerfile, который будет собирать контейнтер с AppImage на базе желаемого дистра.

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

Такое, что AppImage более самодостаточен и переносим, чем flatpak бандлы. Тут только разница в том, что flatpak изкоробки умеет докачивать необходимый рантайм и запускать с ним, а тут потребуется в ручную. Но никто не запретит тем же bubblewrap'ом запускать.

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

Для АppImage рантаймом является то окружение, в котором он запускаетя. Это может быть ОС хоста, или независимый от хоста рантайм в отдельном неймспейсе. Это вообще фича линукса - запустить бинарь в с желаемым рантаймом, независимо от того, что там в /. Это не какая-то уникальная фича флатпака, флатпак только дает удобную обертку, не более.

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

То есть ты на полном серьёзе сравниваешь встроенную в дизайн функциональность с необходимостью руками, явно готовить чруты/контейнеры и запускать прогу в них? А зачем тогда вообще appimage, если можно просто бинарь запускать в нужном, специально подготовленном окружении?

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

Кстати, ладно бы бинарники либ за это время менялись. Так ведь и конфиги в $HOME за это время перехреначивали. Так что гипотетический статический бинарник с гуём сделанный 10 лет назад сейчас в лучшем случае бы выглядел как-то сильно дефолтно, а в худшем - ломал бы конфиги при первом удобном случае (?)

А как подход AppImage/flatpack/snap решает вопрос совместимости GUI-TK`шных конфигов в $HOME?

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

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

То есть ты на полном серьёзе сравниваешь встроенную в дизайн функциональность

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

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

AppImage выгодно отличается тем, что может работать на разных окружениях

...но гарантированно корректно будет работать только на тех, под которое собран. В этом и суть «самодостаточности», которой appimage не обладает.

Зайди на flathub

Трусь там уже почти год.

Там половина софта, если не больше, это пересборка бинарных DEB и AppImage

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

оно больше используется ... как прослойка для запуска тех же AppImage

Это такая чушь, даже возражать не буду.

gasinvein ★★★ ()