All streams
Search
Write a publication
Pull to refresh

Comments 5

Сделай видео с сборки AppImage. Бери приложение с GitHub и собери на видео приложение в формате AppImage, это будет лучше и проще

Про зависимости не очень понятно.

Я правильно понял, что если я установлю несколько AppImage-й с разными приложениями, каждое из которых требует, к примеру, Qt, то у меня будет несколько копий Qt?

И где граница между внешними зависимостями, которые надо положить в AppImage, и системными библиотеками, которые не надо туда класть?

С libc понятно, а, скажем, GStreamer? Или та же Qt для KDE? Они очень даже тянут на звание системных.

Да, всё верно — каждая AppImage содержит собственный набор библиотек .so, включая Qt, если приложение её требует. Это нормальная практика: Qt-библиотеки занимают не так много места, зато гарантируют, что приложение запустится одинаково на любой системе.

Если исключить Qt из пакета, то при запуске AppImage динамический линковщик будет искать её в системных путях (/usr/lib, /lib и т.д.). Поэтому можно не включать библиотеку, если вы уверены, что нужная версия есть в целевой системе, но это делает образ менее переносимым.

AppImage-сообщество и проект linuxdeploy придерживаются следующего практического правила:

  • Не включаются системные библиотеки, которые гарантированно присутствуют во всех дистрибутивах Linux (так называемые base system libraries).
    Это, например:

    libc.so.6, libm.so.6, libpthread.so.0, libdl.so.2,
    librt.so.1, libgcc_s.so.1, libstdc++.so.6,
    libX11.so.6, libXext.so.6
  • Включаются внешние зависимости, которые не входят в стандартную базу Linux или могут отличаться между дистрибутивами и версиями.
    Это, например:

    Qt*, GStreamer, OpenCV, SDL2, FFMPEG, libpng,
    libjpeg, libtiff

    Такие библиотеки считаются «частью приложения» и должны поставляться вместе с ним.

А есть опция использовать системно установленную библиотеку, и если ее нет, то свою, поставляемую?

Да, просто поменяй порядок в переменной

Sign up to leave a comment.

Articles