Flatpak은 시간이 지남에 따라 엄청난 인기를 얻으며 앱 설치를 위한 일종의 보편적인 표준으로 자리 잡았습니다. 여기에는 장점이 많으며, 주요 Linux 배포판에서 지원되어 설치도 매우 편리합니다.

또한 Flatpak은 본질적으로 샌드박스 환경에서 실행됨으로써 어느 정도의 "보안"을 제공합니다. 즉, Flatpak으로 설치된 애플리케이션은 시스템으로부터 어느 정도 격리된 별도의 컨테이너에서 실행됩니다.

그렇긴 하지만, 이러한 앱 번들에는 몇 가지 보안 위험을 포함하여 수많은 문제가 따릅니다. 매우 간단한 GUI 도구를 사용하여 광범위하게 관리하지 않는다면, 이러한 권한을 관리하는 것은 다소 번거로운 일입니다.

Flatseal을 사용하여 Flatpak 권한을 올바르게 관리하기

내장 토글이 있는 간단한 GUI 인터페이스

기본 Flatpak 설치 방식은 아쉬운 점이 많습니다. 대부분의 애플리케이션은 잘 실행되지만, 나중에 권한 및 경로 문제에 직면하게 될 것입니다. 설치에 접근하는 더 나은 방법은 해당 Flatpak의 속성과 액세스 지점을 수동으로 제어하는 것입니다.

명령줄에서 이러한 권한을 관리하는 것이 완전히 가능하지만, 여기서는 GUI의 장점을 아무리 강조해도 지나치지 않습니다. 앱별로 Flatpak 권한을 관리하는 그래픽 사용자 인터페이스인 Flatseal을 소개합니다.

Flatseal 설치는 매우 쉬웠으며, AUR에서 액세스하기만 하면 되었습니다. 준비가 완료되면 Flatseal은 선택할 수 있는 다양한 옵션을 제공합니다. 여기에는 액세스 지점 제어부터 실행 환경 변수 변경까지 포함됩니다.

다시 한번, 사용 사례에 따라 달라지는 두 가지 주요 조정 사항이 있습니다.

Wayland 윈도잉 시스템에 대한 액세스 모든 USB 장치에 대한 액세스 비활성화 첫 번째는 설명이 필요 없을 정도로 명확합니다. 많은 Flatpak이 기본적으로 X11 또는 Xwayland를 사용하므로 Wayland에서 스케일링 문제가 발생합니다. "Wayland windowing system" 토글이 활성화되어 있는지 확인하면 문제없을 것입니다.

기본적으로 Flatpak은 호스트 머신의 모든 장치에 액세스할 수 있으며, 여기에는 USB 주변 장치도 포함됩니다. 사용 중인 앱이 USB 장치 액세스를 필요로 하지 않는다면, 이 설정을 비활성화하는 것이 가장 좋습니다.

문제가 발생하면 언제든지 다시 활성화할 수 있습니다.

이 글도 확인해 보세요:  개발자를 위한 최고의 Linux 배포판 10가지

저장소 관리는 설계상 본질적인 문제입니다

네이티브 번들이 훨씬 더 효율적입니다

Flatpak은 독립적인 배포 방식을 지향합니다. 이는 많은 종속성(dependencies)과 함께 패키징되어 다소 비대해질 수 있음을 의미합니다. 이러한 종속성을 설치하면 저장 공간도 꽤 많이 차지하게 됩니다.

반면 네이티브 앱(AUR – Arch User Repository와 같은 소스에서 제공)은 시스템 앱을 사용하므로 동일한 프로그램을 (Flatpak 형태로) 다시 다운로드할 필요가 없습니다.

이로 인해 네이티브 번들이 더 효율적이며, 만약 사용 중인 배포판에 해당 프로그램에 대한 네이티브 패키지가 있다면(그리고 잘 관리되고 있다면) Flatpak보다 그것을 사용하는 것이 훨씬 합리적입니다.

Flatpak이 가진 많은 장점, 그중에서도 부분적인 샌드박싱 기능을 부정할 수는 없지만, 저는 무엇보다 효율성을 선호합니다.

기타 기이한 점과 불편 사항

여전히 Snap보다는 훨씬 낫습니다

Flatpak을 사용해 보셨다면 Flatpak 앱 자체와 일반 데스크톱 환경 간의 테마 불일치를 눈치채셨을지도 모릅니다. 타일링 윈도우 매니저를 사용하는 경우 이러한 현상이 훨씬 더 흔합니다.

몇 가지 불편함에도 불구하고, 저는 여전히 언제든 Snap보다는 Flatpak을 선택할 것입니다. Snap이 기술적으로는 데스크톱 앱과 터미널 명령 모두에 액세스할 수 있어 더 많은 기능을 보유하고 있을지라도 말입니다.

제 경험상 Flatpak은 일반적으로 더 안정적이고 실행 속도가 빨랐으며, 모든 배포판에 걸쳐 거의 보편적인 호환성을 제공한다는 점은 고민할 필요도 없는 선택이 되게 합니다. 특히 이 형식이 커뮤니티에서 훨씬 더 많이 지원된다는 점을 고려하면 더욱 그렇습니다.

제 불만의 상당 부분은 Ubuntu 자체의 느린 특성에 기인할 수 있지만, 개인적으로는 대부분의 Linux 운영 체제의 기본 형식인 Flatpak에서 전환할 이유가 전혀 없습니다.

하지만 보편적인 호환성을 다른 모든 것과 맞바꾸는 것은 가치가 없을 수도 있으며, Flatpak은 일반 사용자에게 금세 권한 관리의 악몽이 될 수 있습니다.

유망한 대안, AppImage

우리는 이 분야의 세 번째 경쟁자인 AppImage에 대해 이야기하지 않았습니다. 본질적으로 AppImage는 자체 포함 파일로 패키징되는 휴대용 실행 파일 형식입니다.

이 글도 확인해 보세요:  우분투 프로로 노후화된 우분투 18.04 설치를 확장하는 방법

이들은 Windows의 .exe 파일과 공통점이 많으며, 앱을 위한 간단한 스테이저(stager) 역할을 합니다. AppImage는 휴대성이 뛰어나다는 장점도 있어, 파일을 새 시스템으로 드래그 앤 드롭하기만 하면 (최소 종속성이 충족되었다고 가정할 때) 바로 작동합니다.

안타깝게도 단점이 없는 것은 아닙니다. AppImage는 본질적으로 크기가 꽤 크며 자체적으로 자동 업데이트할 방법이 없습니다. 즉, 업데이트된 버전이 나올 때마다 직접 다운로드해야 합니다. 시스템을 통해 모든 것을 업데이트하는 편리함과는 거리가 있습니다.

앞서 언급한 내용으로 돌아가서, 사용 중인 Linux 배포판에 네이티브 패키지가 있다면 그것을 사용하는 것이 더 좋습니다.

##### Flatpak

Flatpak은 사용자가 부분적으로 샌드박스화된 환경에서 Linux 앱을 실행할 수 있게 해주는 유틸리티입니다. 또한 Flatpak을 사용하면 패키지 관리자가 배포판별로 거칠 필요 없이 독립적으로 앱을 업데이트하고 릴리스할 수 있습니다.

By 김민수

안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.