Flatpak 요약: 보편적인 리눅스 패키지 관리자
Flatpak 및 Flathub를 활용한 크로스 디스트리버 앱
Flatpak는 Linux에서 데스크탑 애플리케이션을 빌드하고 배포하는 다음 세대 기술로, 보편적인 패키징, 샌드박싱, 그리고 분배 버전 간의 호환성을 제공합니다.
이미지는 AI 모델 Flux 1 dev에 의해 생성되었습니다.
Flatpak이란?
Flatpak(이전에는 xdg-app으로 알려짐)은 Linux 데스크탑 컴퓨터를 위한 소프트웨어 배포, 애플리케이션 가상화, 패키지 관리용 소프트웨어 유틸리티입니다. Red Hat의 Alexander Larsson에 의해 개발된 Flatpak은 사용자가 시스템의 나머지 부분과 분리된 환경에서 애플리케이션을 실행할 수 있는 샌드박싱 환경을 제공합니다. 다른 패키지 관리자와 달리 Flatpak은 공유 런타임을 사용하며 백그라운드 데몬이 없어 가볍고 Bubblewrap 샌드박싱을 통해 보안을 유지합니다.
주요 특징:
- 공유 런타임: 앱이 기초 라이브러리(GNOME, KDE, Freedesktop)를 공유하여 전체 디스크 사용량을 줄임
- 수동 업데이트: 업데이트 시점을 사용자가 제어(자동 백그라운드 업데이트 없음)
- Bubblewrap 샌드박싱: XDG 데스크탑 포털을 통한 권한으로 강력한 컨테이너화
- 백그라운드 데몬 없음: 가볍고 필요할 때만 실행
- 사용자 수준 설치: sudo/root 접근 없이 앱 설치 가능
- 분산형: 단일 회사에 의해 통제되지 않는 개방형 생태계
- 데스크탑 중심: GNOME 및 KDE 데스크탑 애플리케이션에 이상적
패키지 관리자 비교
Ubuntu는 여러 패키지 관리 시스템을 지원합니다. 주요 작업의 비교는 다음과 같습니다:
| 작업 | Flatpak | APT | Snap |
|---|---|---|---|
| 검색 | flatpak search keyword |
apt search keyword |
snap find keyword |
| 설치 | flatpak install flathub app.id |
sudo apt install package |
sudo snap install package |
| 설치된 항목 보기 | flatpak list --app |
apt list --installed |
snap list |
| 정보 보기 | flatpak info app.id |
apt show package |
snap info package |
| 모든 업데이트 | flatpak update |
sudo apt update && sudo apt upgrade |
sudo snap refresh |
| 단일 업데이트 | flatpak update app.id |
sudo apt install --only-upgrade pkg |
sudo snap refresh package |
| 제거 | flatpak uninstall app.id |
sudo apt remove package |
sudo snap remove package |
| 정리 | flatpak uninstall --unused |
sudo apt autoremove |
snap remove --revision=N |
| 저장소 | flatpak remote-add로 추가 |
/etc/apt/sources.list |
Snap Store(내장) |
빠른 기능 비교
| 기능 | Flatpak | APT | Snap |
|---|---|---|---|
| 자동 업데이트 | 없음 | 없음 | 있음 |
| 샌드박싱 | 있음 | 없음 | 있음 |
| 의존성 | 공유 런타임 | 시스템 라이브러리 | 묶음 |
| 패키지 크기 | 중간 (20-200MB) | 작음 (5-50MB) | 큼 (50-500MB) |
| 루트 권한 필요 | 없음 (사용자 설치) | 예 | 예 |
| 시작 속도 | 빠름 | 빠름 | 느림 |
| 최적 사용 시나리오 | 데스크탑 앱 | 시스템 패키지 | 보편적 앱 |
이 가이드에 대해
이 가이드는 Flatpak에 초점을 맞추고 있습니다 - 데스크탑 애플리케이션을 위한 분산형 보편 패키지 관리자로, 세부적인 권한 제어가 가능합니다. Flatpak은 GNOME 및 KDE 애플리케이션, 업데이트에 대한 수동 제어가 필요한 시나리오, 그리고 루트 접근 없이 사용자 수준 설치가 필요한 경우에 이상적입니다.
다른 패키지 관리자에 대한 가이드:
- 📦 APT 패키지 관리자 가이드 - Ubuntu의 전통적인 시스템 패키지 및 라이브러리 관리
- 📦 Snap 패키지 관리자 가이드 - 자동 업데이트 및 샌드박싱이 있는 보편 패키지
각 패키지 관리자는 자신의 강점이 있습니다. Flatpak은 세부적인 권한 제어가 필요한 데스크탑 앱에, APT는 시스템 패키지 및 라이브러리에, Snap은 자동 업데이트 및 버전 간 호환성이 필요한 앱에 적합합니다.
Flatpak 패키지 관리 - 상세 가이드
Flatpak 설치
Ubuntu 및 Debian 기반 시스템
새로운 Ubuntu 시스템을 설정 중이라면, 우분투 24.04 설치 가이드를 참고하여 시스템 설정 및 필수 도구에 대한 전체 가이드를 확인하세요.
Ubuntu 18.04+:
# Flatpak 설치
sudo apt install flatpak
# GNOME Software 플러그인 설치 (Ubuntu Software Center용)
sudo apt install gnome-software-plugin-flatpak
# Flathub 저장소 추가
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# 시스템 재시작하여 설정 완료
sudo reboot
Ubuntu 16.04:
# 새로운 Flatpak PPA 추가
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
# Flathub 추가
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
다른 리눅스 배포판
Fedora (25+에 사전 설치됨):
# Flatpak 사전 설치됨, Flathub 추가만
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Arch Linux:
# Flatpak 설치
sudo pacman -S flatpak
# Flathub 추가
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
openSUSE:
# Flatpak 설치
sudo zypper install flatpak
# Flathub 추가
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Linux Mint:
# Flatpak 설치 (Mint 18.3+에 사전 설치됨)
sudo apt install flatpak
# Flathub 추가
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Linux Mint에서 처음부터 Linux를 설치하는 경우, Linux Mint 재설치 가이드를 참고하여 설치 과정 및 필수 도구와 설정을 확인하세요.
설치 확인
# Flatpak 버전 확인
flatpak --version
# 설정된 저장소 목록 확인
flatpak remotes
# 설치 테스트
flatpak search gimp
필수 Flatpak 명령
애플리케이션 설치
기본 설치:
# Flathub에서 설치
flatpak install flathub app.id
# 확인 후 설치
flatpak install -y flathub app.id
# 특정 버전 설치
flatpak install flathub app.id//version
# 특정 브랜치 설치
flatpak install flathub app.id//stable
실제 사례:
# GIMP 설치
flatpak install flathub org.gimp.GIMP
# VLC 설치
flatpak install flathub org.videolan.VLC
# LibreOffice 설치
flatpak install flathub org.libreoffice.LibreOffice
# VS Code 설치
flatpak install flathub com.visualstudio.code
# Spotify 설치
flatpak install flathub com.spotify.Client
# Discord 설치
flatpak install flathub com.discordapp.Discord
# Telegram 설치
flatpak install flathub org.telegram.desktop
# Blender 설치
flatpak install flathub org.blender.Blender
# Kdenlive (비디오 편집기) 설치
flatpak install flathub org.kde.kdenlive
# Inkscape 설치
flatpak install flathub org.inkscape.Inkscape
사용자 vs 시스템 설치:
# 사용자 설치 (기본값, sudo 필요 없음)
flatpak install --user flathub app.id
# 시스템 전체 설치 (sudo 필요)
flatpak install --system flathub app.id
애플리케이션 검색
# Flathub 검색
flatpak search keyword
# 열거 형식으로 검색
flatpak search --columns=name,application,version,branch keyword
# 특정 저장소에서 검색
flatpak search --remote=flathub keyword
# 예시
flatpak search editor
flatpak search video
flatpak search game
flatpak search office
Flathub 온라인 브라우징:
- https://flathub.org 방문
- 카테고리별로 둘러보기
- 스크린샷 및 설명 확인
- 평점 및 리뷰 확인
설치된 애플리케이션 목록
# 설치된 앱 모두 보기
flatpak list
# 애플리케이션만 보기 (런타임 제외)
flatpak list --app
# 런타임만 보기
flatpak list --runtime
# 상세 정보 보기
flatpak list --app --columns=name,application,version,size,installation
# 사용자 설치만 보기
flatpak list --user
# 시스템 설치만 보기
flatpak list --system
애플리케이션 정보 보기
# 앱 정보 보기
flatpak info app.id
# 권한 보기
flatpak info --show-permissions app.id
# 메타데이터 보기
flatpak info --show-metadata app.id
# 커밋 정보 보기
flatpak info --show-commit app.id
# 설치된 크기 보기
flatpak info --show-size app.id
# 예시
flatpak info org.gimp.GIMP
flatpak info --show-permissions org.videolan.VLC
애플리케이션 실행
# Flatpak 앱 실행
flatpak run app.id
# 특정 브랜치로 실행
flatpak run app.id//stable
# 명령줄 인수로 실행
flatpak run app.id --arg1 --arg2
# 환경 변수로 실행
flatpak run --env=VAR=value app.id
# 특정 커밋으로 실행
flatpak run --commit=abc123 app.id
# 예시
flatpak run org.gimp.GIMP
flatpak run org.videolan.VLC /path/to/video.mp4
flatpak run com.visualstudio.code ~/projects/
앱 통합:
설치된 Flatpak 앱은 자동으로 애플리케이션 메뉴에 나타납니다. 또한 데스크탑 바로가기를 생성할 수 있습니다.
애플리케이션 업데이트
모든 앱 업데이트:
# 모든 앱 및 런타임 업데이트
flatpak update
# 확인 없이 업데이트
flatpak update -y
# 앱만 업데이트
flatpak update --app
# 런타임만 업데이트
flatpak update --runtime
# 사용자 설치 업데이트
flatpak update --user
# 시스템 설치 업데이트
flatpak update --system
특정 앱 업데이트:
# 특정 앱 업데이트
flatpak update app.id
# 특정 버전으로 업데이트
flatpak update app.id//version
# 예시
flatpak update org.gimp.GIMP
업데이트 확인:
# 업데이트 가능한 앱 목록 보기
flatpak remote-ls --updates
# 특정 앱 확인
flatpak remote-info --log flathub app.id
애플리케이션 제거
# 앱 제거
flatpak uninstall app.id
# 확인 없이 제거
flatpak uninstall -y app.id
# 데이터도 제거하면서 제거
flatpak uninstall --delete-data app.id
# 사용자에서 제거
flatpak uninstall --user app.id
# 사용되지 않는 런타임 및 의존성 제거
flatpak uninstall --unused
# 모든 Flatpak 앱 제거
flatpak uninstall --all
# 예시 작업 흐름
flatpak uninstall org.gimp.GIMP
flatpak uninstall --unused
Flatpak 아키텍처 이해
런타임
런타임은 공통 라이브러리를 포함하는 공유 기초 환경입니다:
주요 런타임:
- org.freedesktop.Platform: 핵심 라이브러리가 포함된 기본 런타임
- org.gnome.Platform: GNOME 데스크탑 라이브러리
- org.kde.Platform: KDE/Qt 라이브러리
- org.freedesktop.Sdk: 개발 도구 및 라이브러리
런타임 관리:
# 설치된 런타임 목록 보기
flatpak list --runtime
# 특정 런타임 설치
flatpak install flathub org.gnome.Platform//45
# 런타임 크기 확인
flatpak info --show-size org.gnome.Platform
# 사용되지 않는 런타임 제거
flatpak uninstall --unused
애플리케이션 ID
Flatpak은 앱 ID에 역 DNS 표기법을 사용합니다:
형식: tld.domain.AppName
예시:
org.gimp.GIMPorg.mozilla.Firefoxcom.visualstudio.codeio.github.username.AppName
브랜치 및 버전
# 사용 가능한 브랜치 목록 보기
flatpak remote-info --log flathub app.id
# 특정 브랜치 설치
flatpak install flathub app.id//stable
flatpak install flathub app.id//beta
# 브랜치 전환
flatpak update --commit=branch-commit app.id
저장소(리모트)
# 설정된 리모트 목록 보기
flatpak remotes
# 리모트 추가
flatpak remote-add --if-not-exists remote-name https://remote-url
# 리모트 제거
flatpak remote-delete remote-name
# 리모트 수정
flatpak remote-modify remote-name --url=new-url
# 리모트 내 앱 목록 보기
flatpak remote-ls remote-name
# 앱만 보기
flatpak remote-ls --app flathub
# 리모트 정보 보기
flatpak remote-info flathub app.id
인기 있는 리모트:
- Flathub: 주 저장소 (https://flathub.org)
- Flathub Beta: 베타 앱
- GNOME Nightly: GNOME 개발 빌드
- KDE: KDE 앱
- Fedora: Fedora 레지스트리
권한 및 샌드박싱
포털 이해
Flatpak은 제어된 시스템 접근을 위해 XDG 데스크탑 포털을 사용합니다:
포털 유형:
- 파일 선택기: 호스트 파일 선택기를 통해 파일 선택
- 인쇄: 인쇄 기능 접근
- 스크린샷: 화면 캡처
- 스크린캐스트: 화면 녹화
- 알림: 알림 표시
- 장치: 장치 접근 (카메라, 마이크)
- 위치: 지리 정보 접근
- 네트워크: 네트워크 접근
권한 보기
# 앱 권한 보기
flatpak info --show-permissions app.id
# 메타데이터 보기
flatpak info --show-metadata app.id
# 예시
flatpak info --show-permissions org.videolan.VLC
권한 범주:
- 파일시스템 접근:
--filesystem=home,--filesystem=host - 장치 접근:
--device=dri,--device=all - 소켓 접근:
--socket=x11,--socket=wayland,--socket=pulseaudio - 네트워크:
--share=network - IPC:
--share=ipc
CLI를 통한 권한 관리
권한 부여:
# 홈 디렉토리 접근 권한 부여
flatpak override --filesystem=home app.id
# 특정 디렉토리 접근 권한 부여
flatpak override --filesystem=/path/to/directory app.id
# 호스트 파일시스템 접근 권한 부여 (주의 필요)
flatpak override --filesystem=host app.id
# 장치 접근 권한 부여
flatpak override --device=dri app.id
# 네트워크 접근 권한 부여
flatpak override --share=network app.id
# IPC 접근 권한 부여
flatpak override --share=ipc app.id
# 예시
flatpak override --filesystem=home org.gimp.GIMP
flatpak override --device=all org.audacityteam.Audacity
권한 회수:
# 파일시스템 접근 권한 회수
flatpak override --nofilesystem=home app.id
# 장치 접근 권한 회수
flatpak override --nodevice=all app.id
# 모든 오버라이드를 기본값으로 재설정
flatpak override --reset app.id
# 현재 오버라이드 보기
flatpak override --show app.id
# 예시
flatpak override --nofilesystem=host org.videolan.VLC
시스템 전체 vs 사용자 오버라이드:
# 사용자 수준 오버라이드 (기본값)
flatpak override --user --filesystem=home app.id
# 시스템 전체 오버라이드
sudo flatpak override --system --filesystem=home app.id
Flatseal (GUI)를 통한 권한 관리
Flatseal 설치:
flatpak install flathub com.github.tchx84.Flatseal
기능:
- 시각적 권한 관리
- 권한 켜기/끄기
- 모든 앱 권한 보기
- 기본값으로 재설정
- 사용자 친화적인 인터페이스
실행:
flatpak run com.github.tchx84.Flatseal
또는 애플리케이션 메뉴에서 “Flatseal"을 찾아 실행하세요.
고급 Flatpak 사용법
명령줄 옵션
사용자 정의 옵션으로 실행:
# 특정 파일시스템 접근으로 실행
flatpak run --filesystem=/mnt/data app.id
# 환경 변수로 실행
flatpak run --env=DEBUG=1 app.id
# 다른 개발 세션으로 실행
flatpak run --devel app.id
# flatpak 내부에서 특정 명령 실행
flatpak run --command=bash app.id
# 자세한 출력으로 실행
flatpak -v run app.id
# 예시
flatpak run --filesystem=/media/usb org.gimp.GIMP
flatpak run --command=sh com.visualstudio.code
쉘 접근
# flatpak 내부 쉘 실행
flatpak run --command=sh app.id
# bash가 있다면 실행
flatpak run --command=bash app.id
# 전체 파일시스템으로 접근 (디버깅용)
flatpak run --filesystem=host --command=bash app.id
# 예시: GIMP 환경 디버깅
flatpak run --command=bash org.gimp.GIMP
로컬 Flatpak 빌드 및 설치
.flatpak 파일에서 설치:
# flatpak 빌드 설치
flatpak install package.flatpak
# 원격 URL에서 설치
flatpak install https://example.com/app.flatpakref
# flatpakref 파일에서 설치
flatpak install app.flatpakref
저장소에서 설치:
# 사용자 정의 저장소 추가
flatpak remote-add --if-not-exists custom-repo https://repo-url
# 사용자 정의 저장소에서 설치
flatpak install custom-repo app.id
내보내기 및 백업
앱 내보내기:
# flatpak 빌드 빌드
flatpak build-bundle repo-dir bundle.flatpak app.id
# ref 내보내기
flatpak build-export repo-dir build-dir
# 단일 파일 빌드 생성
flatpak create-usb /path/to/usb app.id
설치된 앱 백업:
# 설치된 앱 목록
flatpak list --app --columns=application > flatpak-apps.txt
# 다른 시스템에서 복원
while read app; do
flatpak install -y flathub "$app"
done < flatpak-apps.txt
앱 다운그레이드
# 사용 가능한 커밋 목록 보기
flatpak remote-info --log flathub app.id
# 특정 커밋 설치
flatpak update --commit=commit-hash app.id
# 현재 버전 고정 (업데이트 방지)
flatpak mask app.id
# 고정 해제 (업데이트 허용)
flatpak mask --remove app.id
Flatpak 문제 해결
일반적인 문제 및 해결 방법
앱이 실행되지 않음
# 자세한 출력으로 실행
flatpak run -v app.id
# 권한 확인
flatpak info --show-permissions app.id
# 오버라이드 재설정
flatpak override --reset app.id
# 런타임 설치 여부 확인
flatpak list --runtime | grep Platform
# 앱 재설치
flatpak uninstall app.id
flatpak install flathub app.id
권한 거부 오류
# 필요한 파일시스템 접근 권한 부여
flatpak override --filesystem=home app.id
# 장치 접근 권한 부여
flatpak override --device=all app.id
# 현재 권한 확인
flatpak override --show app.id
# Flatseal을 통해 GUI 관리
flatpak run com.github.tchx84.Flatseal
앱이 메뉴에 나타나지 않음
# 데스크탑 데이터베이스 업데이트
update-desktop-database ~/.local/share/applications
# 아이콘 캐시 재생성
gtk-update-icon-cache ~/.local/share/icons/hicolor
# 데스크탑 환경 재시작
# 또는 로그아웃 후 다시 로그인
느린 다운로드 또는 업데이트
# 리모트 상태 확인
flatpak remote-ls flathub
# 캐시 삭제
rm -rf ~/.local/share/flatpak/repo/tmp
# 다른 미러 사용
flatpak remote-modify flathub --url=https://mirror.example.com
# 네트워크 연결 확인
flatpak remote-info flathub org.gimp.GIMP
저장소 오류
# Flathub 재추가
flatpak remote-delete flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# 저장소 메타데이터 업데이트
flatpak update --appstream
# 설치 복구
flatpak repair
# ostree 문제 확인
ostree fsck --repo=/var/lib/flatpak/repo
디스크 공간 문제
# Flatpak 디스크 사용량 확인
du -sh ~/.local/share/flatpak
du -sh /var/lib/flatpak
# 사용되지 않는 런타임 제거
flatpak uninstall --unused
# 오래된 버전 제거
flatpak uninstall --delete-data app.id
# 캐시 정리
rm -rf ~/.cache/flatpak
디버깅 명령
# 자세한 실행
flatpak run -v app.id
# 디버그 출력 보기
flatpak run --log-session-bus --log-system-bus app.id
# Flatpak 설치 확인
flatpak info
# Flatpak 복구
flatpak repair --user
sudo flatpak repair --system
# OSTree 확인
ostree --repo=/var/lib/flatpak/repo refs
# Flatpak 프로세스 보기
ps aux | grep flatpak
성능 및 최적화
디스크 사용량 감소
사용되지 않는 콘텐츠 제거:
# 사용되지 않는 런타임 제거
flatpak uninstall --unused -y
# 오래된 버전 제거
# 참고: Flatpak은 기본적으로 여러 버전을 유지하지 않음
# 임시 파일 정리
rm -rf ~/.cache/flatpak
디스크 사용량 스크립트:
#!/bin/bash
echo "=== Flatpak 디스크 사용량 ==="
echo "시스템: $(du -sh /var/lib/flatpak 2>/dev/null | cut -f1)"
echo "사용자: $(du -sh ~/.local/share/flatpak 2>/dev/null | cut -f1)"
echo ""
echo "애플리케이션:"
flatpak list --app --columns=name,size
echo ""
echo "런타임:"
flatpak list --runtime --columns=name,size
시작 성능 개선
팁:
- 가능하면 XWayland 대신 Wayland 사용
- 필요한 권한을 사전에 부여하여 포털 오버헤드 방지
- 네이티브 런타임 사용 (GNOME 앱은 GNOME, KDE 앱은 KDE)
- 신뢰할 수 있는 앱에 대한 샌드박싱 비활성화
# 호스트 IPC로 실행하여 성능 향상
flatpak override --share=ipc app.id
# 호스트 X11 소켓 사용
flatpak override --socket=x11 app.id
업데이트 최적화
수동 업데이트 일정:
systemd 타이머 또는 cron 작업 생성:
# 업데이트 스크립트 생성
cat > ~/bin/flatpak-update.sh << 'EOF'
#!/bin/bash
flatpak update -y
flatpak uninstall --unused -y
EOF
chmod +x ~/bin/flatpak-update.sh
# cron에 추가 (주간 업데이트)
crontab -e
# 추가: 0 2 * * 0 ~/bin/flatpak-update.sh
systemd 타이머:
# 타이머 파일 생성
sudo tee /etc/systemd/user/flatpak-update.timer << EOF
[Unit]
Description=Flatpak 앱 업데이트
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
EOF
# 서비스 파일 생성
sudo tee /etc/systemd/user/flatpak-update.service << EOF
[Unit]
Description=Flatpak 앱 업데이트
[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak update -y
EOF
# 타이머 활성화
systemctl --user enable --now flatpak-update.timer
인기 있는 Flatpak 애플리케이션
생산성
flatpak install flathub org.libreoffice.LibreOffice # 오피스 스위트
flatpak install flathub org.gnome.Evolution # 이메일 클라이언트
flatpak install flathub com.discordapp.Discord # 디스코드
flatpak install flathub com.slack.Slack # 슬랙
flatpak install flathub us.zoom.Zoom # 줌
flatpak install flathub org.joplinapp.joplin # 메모
flatpak install flathub md.obsidian.Obsidian # 오비디언
flatpak install flathub com.bitwarden.desktop # 비밀번호 관리자
개발
flatpak install flathub com.visualstudio.code # VS Code
flatpak install flathub com.sublimetext.three # 서브라임 텍스트
flatpak install flathub org.gnome.Builder # GNOME Builder
flatpak install flathub com.jetbrains.IntelliJ-IDEA-Community # 인텔리제이
flatpak install flathub com.getpostman.Postman # 포스트맨
flatpak install flathub io.dbeaver.DBeaverCommunity # 데이터베이스 도구
flatpak install flathub com.github.Eloston.UngoogledChromium # 브라우저
그래픽 및 디자인
flatpak install flathub org.gimp.GIMP # 이미지 편집기
flatpak install flathub org.inkscape.Inkscape # 벡터 그래픽
flatpak install flathub org.blender.Blender # 3D 제작
flatpak install flathub org.krita.Krita # 디지털 그림 그리기
flatpak install flathub com.rawtherapee.RawTherapee # RAW 편집기
flatpak install flathub org.darktable.Darktable # 사진 편집
flatpak install flathub org.kde.kdenlive # 비디오 편집기
flatpak install flathub com.obsproject.Studio # OBS 스튜디오
미디어
flatpak install flathub org.videolan.VLC # VLC 플레이어
flatpak install flathub com.spotify.Client # 스포티파이
flatpak install flathub io.mpv.Mpv # MPV 플레이어
flatpak install flathub org.gnome.Lollypop # 음악 플레이어
flatpak install flathub org.audacityteam.Audacity # 오디오 편집기
flatpak install flathub com.calibre_ebook.calibre # 전자책 관리자
인터넷
flatpak install flathub org.mozilla.Firefox # 파이어폭스
flatpak install flathub com.google.Chrome # 크롬
flatpak install flathub com.brave.Browser # 브레이브
flatpak install flathub org.telegram.desktop # 텔레그램
flatpak install flathub org.qbittorrent.qBittorrent # 토렌트 클라이언트
flatpak install flathub org.filezillaproject.Filezilla # FTP 클라이언트
유틸리티
flatpak install flathub com.github.tchx84.Flatseal # 권한 관리자
flatpak install flathub io.gitlab.librewolf-community # 프라이버시 브라우저
flatpak install flathub org.gnome.Calculator # 계산기
flatpak install flathub org.gnome.clocks # 시계
flatpak install flathub com.github.phase1geo.minder # 마인드 맵
flatpak install flathub org.gnome.Extensions # GNOME 확장
Flatpak 최고의 실천 방법
보안
- 앱 출처 확인: 신뢰할 수 있는 원격지(예: Flathub)에서만 설치
- 권한 확인: 설치 전 권한을 확인
- 엄격한 샌드박싱 사용: 지나치게 허용되는 오버라이드를 피함
- 정기 업데이트: 앱과 런타임을 최신 상태로 유지
- 사용하지 않는 앱 제거: 공격 표면을 최소화
# 설치된 앱 감사
flatpak list --app
flatpak info --show-permissions app.id
# 오버라이드 확인
flatpak override --show app.id
유지보수
주간 유지보수 루틴:
#!/bin/bash
echo "=== Flatpak 유지보수 ==="
echo "앱 업데이트 중.."
flatpak update -y
echo "사용되지 않는 런타임 제거 중.."
flatpak uninstall --unused -y
echo "문제 확인 중.."
flatpak repair --user
echo "디스크 사용량:"
du -sh ~/.local/share/flatpak
echo "완료!"
데스크탑과의 통합
소프트웨어 센터 통합:
# Ubuntu/GNOME
sudo apt install gnome-software-plugin-flatpak
# KDE
sudo apt install plasma-discover-backend-flatpak
파일 관리자 통합:
대부분의 파일 관리자는 Flatpak 앱을 파일 연관성을 위해 자동으로 인식합니다. Flatpak 앱과 데스크탑 환경을 관리할 때 생산성을 높이려면, 우리의 Ubuntu 키보드 단축키 가이드를 참조하여 창 관리, 워크스페이스, 앱 전환을 완벽하게 마스터하세요.
스크립트에서 Flatpak 사용
bash 스크립트를 사용하여 Flatpak 설치를 자동화할 수 있습니다. 더 많은 bash 스크립팅 기술과 명령어를 보려면, 우리의 Bash 가이드를 참조하세요.
#!/bin/bash
# 예시: 개발 환경 설치
apps=(
"com.visualstudio.code"
"com.github.Eloston.UngoogledChromium"
"org.gnome.Builder"
"com.getpostman.Postman"
)
for app in "${apps[@]}"; do
echo "$app 설치 중.."
flatpak install -y flathub "$app"
done
echo "개발 환경 준비 완료!"
Flatpak 명령어 참조
완전한 명령어 가이드
# 검색 및 설치
flatpak search keyword # 앱 검색
flatpak install flathub app.id # 앱 설치
flatpak install --user flathub app.id # 사용자 설치
# 목록 및 정보
flatpak list # 설치된 앱 목록
flatpak list --app # 앱만 보기
flatpak list --runtime # 런타임만 보기
flatpak info app.id # 세부 정보 보기
flatpak info --show-permissions app.id # 권한 보기
# 실행
flatpak run app.id # 앱 실행
flatpak run --command=sh app.id # 쉘 접근
# 업데이트
flatpak update # 모든 앱 업데이트
flatpak update app.id # 특정 앱 업데이트
flatpak remote-ls --updates # 업데이트 확인
# 제거
flatpak uninstall app.id # 앱 제거
flatpak uninstall --unused # 사용되지 않는 런타임 제거
flatpak uninstall --all # 모든 앱 제거
# 권한
flatpak override --filesystem=home app.id # 홈 디렉토리 접근 허용
flatpak override --device=all app.id # 장치 접근 허용
flatpak override --share=network app.id # 네트워크 접근 허용
flatpak override --reset app.id # 오버라이드 초기화
flatpak override --show app.id # 오버라이드 보기
# 원격지
flatpak remotes # 원격지 목록
flatpak remote-add name url # 원격지 추가
flatpak remote-delete name # 원격지 제거
flatpak remote-ls name # 원격지 앱 목록
# 문제 해결
flatpak repair # 설치 복구
flatpak repair --user # 사용자 복구
flatpak repair --system # 시스템 복구
# 마스킹/핀 설정
flatpak mask app.id # 업데이트 방지
flatpak mask --remove app.id # 업데이트 허용
적절한 패키지 관리자 선택
Flatpak 사용 시기 ✅
가장 적합한 경우:
- 데스크탑 앱 (GNOME, KDE 앱)
- 모든 배포판에서의 호환성이 필요할 때
- 세부적인 권한 제어가 중요할 때
- 백그라운드 데몬을 원하지 않을 때
- 공유 런타임을 선호할 때 (디스크 공간 효율적)
- 수동 업데이트 제어를 원할 때
- sudo 없이 사용자 수준 설치가 필요할 때
- 개방형 생태계를 선호할 때
다른 패키지 관리자 사용 시기
- APT: 시스템 패키지, 라이브러리, 전통적인 우분투 패키지 관리에 대한 가이드를 보려면, 우리의 APT 패키지 관리자 가이드를 참조하세요.
- Snap: 자동 업데이트와 IoT/임베디드 시스템에 대한 패키지에 대한 가이드를 보려면, 우리의 Snap 패키지 관리자 가이드를 참조하세요.
결론
Flatpak은 Linux 애플리케이션 배포에 대한 현대적인 접근 방식을 제공하며, 샌드박싱을 통한 보안과 함께 보편적인 패키징을 결합합니다. 분산된 구조, 공유 런타임, 세부적인 권한 시스템 덕분에 모든 Linux 배포판에서의 데스크탑 애플리케이션에 이상적인 선택입니다.
사용자가 최신 애플리케이션에 쉽게 접근하고자 하거나, 개발자가 여러 배포판에서의 배포를 원하거나, 시스템 관리자가 여러 시스템을 관리하고자 한다면, Flatpak은 견고하고 보안이 강화되며 사용자 친화적인 솔루션을 제공합니다.
주요 장점:
- 진정한 모든 배포판 호환성
- 샌드박싱을 통한 보안 강화
- 공유 런타임으로 총 디스크 사용량 감소
- 백그라운드 데몬 필요 없음
- 사용자 수준 설치 가능
- 포털을 통한 세부적인 권한 제어
- Flathub에서의 대규모 생태계
시작 방법:
- 시스템에 Flatpak 설치
- Flathub 저장소 추가
- 앱 탐색 및 설치
- Flatseal을 사용하여 권한 관리
- 앱을 정기적으로 업데이트
오늘 Flathub를 탐색하고 Linux 애플리케이션 배포의 미래를 경험해 보세요!