====== Flatpak ====== * https://flatpak.org/ * 리눅스 데스크탑 환경을 위한 소프트웨어 패키지, 실행 샌드박스 기능. * [[linux:snap|Snap]]과 유사 * 샌드박스 형태로 애플리케이션을 설치하기 때문에 의존 패키지에 신경을 덜써도 되고 모든 리눅스 배포판에서 사용가능한 애플리케이션 배포 형태가 된다. * Flatpak 을 통해 패키징하고 https://flathub.org/ 를 통해 배포하면 어떠한 리눅스 배포판에서도 사용 가능하다. * 최근 나오는 리눅스 배포판들이 많이 지원하고 있는 듯 보인다. [[linux:mint|Mint Linux]], [[linux:mxlinux|MX Linux]] 등에 기본 설치돼 있음. * [[https://itsfoss.com/flatpak-guide/|Using Flatpak on Ubuntu and Other Linux [Complete Guide]]] * [[https://wiki.archlinux.org/index.php/Flatpak|Arch Linux flatpak]] * [[https://wiki.debian.org/FlatpakHowto|FlatpakHowto - Debian Wiki]] ===== Install / Ubuntu ===== * [[https://flatpak.org/setup/Ubuntu/|Flatpak—the future of application distribution]] sudo apt install flatpak # flathub 추가 flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # kdeapps 추가 flatpak remote-add --if-not-exists kdeapps --from https://distribute.kde.org/kdeapps.flatpakrepo # reboot * [[https://community.kde.org/Guidelines_and_HOWTOs/Flatpak|Guidelines and HOWTOs/Flatpak - KDE Community Wiki]] * kdeapps 에 있는 앱도 대부분 flathub 에 있는 경우가 많음. 그러나 없는 것도 있긴하다. ===== 사용법 ===== * 앱 조회 flatpak remote-ls * 검색 flatpak search <검색어> * 설치 # gimp 설치 flatpak install flathub org.gimp.GIMP * 사용하지 않는 runtime 삭제 flatpak uninstall --unused # --user 불필요. system/user 둘다 삭제함. ===== gnome-software-center ===== gnome-software-center 에서 flatpak 검색 및 설치 가능하게 설정. sudo apt install gnome-software-plugin-flatpak ===== bauh ===== * [[linux:snap|Snap]], [[linux:arch:aur|AUR Arch User Repository]], flatpak 을 지원하는 패키지 관리 GUI * https://github.com/vinifmor/bauh ===== winepak ===== * [[https://www.winepak.org/|winepak]] [[linux:wine|Linux Wine]] 애플리케이션을 위한 repository ===== 설정 / 환경변수 override ===== * [[https://www.systutorials.com/docs/linux/man/1-flatpak-override/|flatpak-override: Override application requirements - Linux Man Pages (1)]] * [[https://unix.stackexchange.com/questions/559129/how-do-i-permanently-set-an-environment-variable-for-a-specific-flatpak-applicat|linux - How do I permanently set an environment variable for a specific Flatpak application? - Unix & Linux Stack Exchange]] # --user 빼면 전역 설정 flatpak override --user --env=VARIABLE_NAME=VARIABLE_VALUE full.application.Name # 여러건일때 flatpak override --env="VARIABLE_NAME_ONE=VARIABLE_VALUE_ONE VARIABLE_NAME_TWO=VARIABLE_VALUE_TWO" full.application.Name ===== 구 버전 설치 ===== * [[https://askubuntu.com/questions/1349179/how-to-install-a-previous-version-of-gimp-with-flatpak-on-ubuntu-20-04|software installation - How to install a previous version of Gimp with Flatpak on Ubuntu 20.04? - Ask Ubuntu]] # gimp 로 예시 flatpak remote-info --log flathub org.gimp.GIMP # commit 버전들이 출력된다. 이중에서 설치하고 싶은 commit hash 선택 # root 권한 필요. sudo flatpak update --commit= org.gimp.GIMP # 현재 버전 유지하고 업그레이드 안하게 막기 flatpak mask org.gimp.GIMP ===== 한글 입력기 관련 문제 flatpak/snap 공통 ===== * [[https://github.com/flatpak/flatpak/issues/3350|half apps don't support cjk input. · Issue #3350 · flatpak/flatpak]] * [[https://kldp.org/node/163341|오픈소스 큰행님들의 snap, flatpak | KLDP]] * [[linux:inputmethod|Input Method (입력기, 한글)]]가 올바로 작동하지 않는 현상이 발생하고있음. * 입력기 관련 환경 변수를 강제로 지정해줘야 하는 것으로 보임. # nimf 로 바꾼다고 할 때, # 아래 실제로 작동 안함. flatpak override --env="GTK_IM_MODULE=nimf XMODIFIERS=@im=nimf QT_IM_MODULE=nimf" full.application.Name flatpak override --env="GTK_IM_MODULE=nimf XMODIFIERS=@im=nimf QT_IM_MODULE=nimf" com.todoist.Todoist ===== Theme ===== * [[linux:theme|Linux Themes]] flatpak 을 설치하면, **시스템의 GTK/QT 테마와 동일한 이름**의 flatpak theme 가 발견되면 자동 적용된다. * 이름이 불일치 하면 설치가 안된다. * [[https://docs.flatpak.org/en/latest/desktop-integration.html|Desktop Integration — Flatpak documentation]] * [[https://www.linuxuprising.com/2018/05/how-to-get-flatpak-apps-to-use-correct.html|How To Get Flatpak Apps To Use The Correct Gtk Theme - Linux Uprising Blog]] * [[https://itsfoss.com/flatpak-app-apply-theme/|Apply GTK System Themes on Flatpak Apps in Linux]] : 커스텀 설치한 테마 적용. * Flatpak 의 경우 yaru 테마를 주황색 말고 다른 것으로 변경할 경우 관련 패키지를 찾아서 설치해줘야한다. * GTK/Icon 테마 목록 flatpak remote-ls flathub | grep org.gtk.Gtk3theme flatpak remote-ls flathub | grep org.freedesktop.Platform.Icontheme * QT 테마 flatpak remote-add kdeapps https://distribute.kde.org/kdeapps.flatpakrepo # 테마 설치 flatpak install kdeapps org.kde.KStyle.Adwaita//5.9 flatpak install kdeapps org.kde.PlatformTheme.QGnomePlatform//5.9 * Yaru 테마 목록 flatpak remote-ls flathub | grep org.gtk.Gtk3theme \ | grep stable | grep Yaru | cut -f 2 -d$'\t' ===== Permission ===== * [[https://flathub.org/apps/details/com.github.tchx84.Flatseal|Flatseal]] 로 플랫팩 애플리케이션 퍼미션 제어 가능. ===== flatpak 내부의 명령 실행하기 ===== * [[https://github.com/flatpak/flatpak/issues/1483|Is it possible to run command line tools from platforms/apps? · Issue #1483 · flatpak/flatpak]] * flatpak 패키지 안에 cli 명령이 존재하는 경우 이를 실행할 수 있다. # 예 : org.darktable.Darktable flatpak 안에 있는 darktable-cli 명령 실행 flatpak run --command=darktable-cli org.darktable.Darktable <--arguments-go-here> ===== 참조 ===== * [[https://unix.stackexchange.com/questions/559129/how-do-i-permanently-set-an-environment-variable-for-a-specific-flatpak-applicat|linux - How do I permanently set an environment variable for a specific Flatpak application? - Unix & Linux Stack Exchange]] : 환경변수 지정 * [[https://www.youtube.com/watch?v=GkgPIJp8_30|What are Flatpaks? | How to install and use them. - YouTube]] * [[https://www.youtube.com/watch?v=IG2wTCacEtQ|What's the deal with Flatpak? (Linux Crash Course Series) - YouTube]]