LINUX.ORG.RU

Полная изоляция GUI приложений в Linux

 , , ,


0

2

Приветствую всех любителей чистоты системы. Предположим есть необходимость поставить QT софт на десктоп. При этом нет никакого желания тащить в систему половину KDE и кучу либ. Какие инструменты можно использовать для максимальной изоляции запускаемого ПО от основной системы? Желательно чтобы софт запускался в каком нибудь контейнере. Первое, что приходит на ум это docker контейнер, но настройка GUI там какая-та мутная. У кого есть подобный опыт? Как хорошо работает изолированный софт? Что можно использовать для этих целей?

Ставь дистрибутив с кедами и не страдай.

anonymous
()

При этом нет никакого желания тащить в систему половину KDE и кучу либ

чё за тупак? без этой кучи либ просто не будет работать то, что их использует

и чё за «в систему»? ты думаешь есть какая-то магическая разница между /usr/lib/ и /opt/lib/ ?

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

без этой кучи либ просто не будет работать то, что их использует

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

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

ты можешь сложить их рядом с приложением, главное чтобы ld.so был в состоянии их найти

sparks ★★★★
()

настройка GUI там какая-та мутная

Настройка GUI там совершенно элементарная. Достаточно дать контейнеру доступ к X сокету. Возможно, еще понадобится DRM и MIT-SHM, в зависимости от приложения.

i586 ★★★★★
()

Используй snap/flatpak/appimage.

KivApple ★★★★★
()

Почему никто не сказал про пакетный менеджер Nix?

unfo ★★★★★
()

Первое, что приходит на ум это docker контейнер

Нет. Первое и единственное что приходит на ум это flatpak.

qtm ★★★
()

Можно AppImage ещё склепать, только возможно будут трудности с переносимостью и размером сего чуда, правда изоляция будет не полная, но библиотеки встроить можно, правда опять же больно, поэтому докер возможно будет проще.

AKonia ★★★
()

Fedora Silverblue или openSUSE MicroOS Desktop, но второй еще в начале своего развития. Либо просто Flatpak на привычном тебе дистре. Если интересует изоляция, то следует держаться этого, ничего сильнее такому направлению развития не соответствует.

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

Да, ты именно хочешь Flatpak. Когда ставишь Qt/KDE приложение загружается оно и рантайм с либами, они хранятся отдельно от системы и не засоряют её, ни $PATH, а в систему лишь пробрасывается desktop файл, иконка и appdata, для интеграции в список установленных приложений.

anonymous
()

Snap очень просто собрать в большинстве случаев. С Flatpak работы может быть гораздо больше (придётся собирать зависимости), но тоже жить можно.

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

Достаточно дать контейнеру доступ к X сокету.

Недостаточно. Там ещё нужно dbus, доступ к звуку + пользователь должен быть готов, что открыть/сохранить файл работает несколько непривычно. Всё это преодолеваемо, но зачем, когда есть Guix?

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

доступ к X сокету

разве иксы можно нормально изолировать?

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

dbus

доступ к звук

При чем тут X11?

разве иксы можно нормально изолировать?

Контейнеры – это не про изоляцию и не про безопасность.

i586 ★★★★★
()

Для изоляции виртуалки, на худой конец firejail, а для страдания фигнёй при обострении тулкитофобии флатпак.

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

для страдания фигнёй при обострении тулкитофобии флатпак

Это чтобы ставить telegram с 1 ГБ зависимостями от KDE.

Моментально вылечит от любой тулкитофобии

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

При чем тут X11?

При том, что для того, чтобы запущенное в контейнере приложение работало так же, как и запущенное вне контейнера, придётся сделать несколько больше телодвижений, чем только пробросить X-socket.

ugoday ★★★★★
()

но настройка GUI там какая-та мутная

А в чем мутность-то? Внутри иксы должны быть, извне контейнера их дергаешь. Как-то так:

docker run -it --net=host -e "TERM=xterm-256color" -e DISPLAY -v /tmp/.X11-unix container/name bash -l
JAkutenshi ★★
()
Последнее исправление: JAkutenshi (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.