package manager for Distro
나는 개인적으로 Flatpak, Snap, Appimage로 프로그램을 설치하는 것을 선호한다. 이 3개는 다양한 리눅스 배포판에서 똑같은 방법으로 프로그램을 설치 및 사용할 수 있도록 해준다. 현재 우분투, 페도라, 아치 등 다양한 리눅스 배포판이 존재한다. 패키지를 설치하기 위해 우분투는 apt, 페도라는 dnf, 아치는 pacman을 사용한다. 하지만 어떤 리눅스 배포판을 사용하더라도 Flatpak, Snap, 그리고 Appimage를 사용한다면 패키지 설치를 위한 명령어가 하나로 통일된다.
snap | snap install “Package Name” |
flatpak | flatpak install “Repo Name” “Package Name” |
appimage | 실행 권한을 부여한 뒤, 바로 실행하면 됨 |
사실 명령어 관련 부분은 큰 문제가 아니다. 더 큰 문제는 의존성 문제다. 아래 사진과 같이 프로그램을 하나 설치하는데 따라오는 다른 것들이 상당히 많다.
Ubuntu 같은 경우 오랜 시간 apt install(remove), build 등을 사용해서 프로그램 설치와 삭제를 반복하다 보면 가끔 의존성이 깨졌다는 글이 출력될 수 있다. 리눅스 전문가도 아니고 나 같은 일반 사용자 입장에서 의존성 문제가 발생하면 멘붕이 온다. 운 좋게 인터넷에서 찾은 방법으로 해결했지만, 그 뒤로는 가능하면 무조건 flatpak, snap, appimage를 사용한다(최신 버전의 package를 설치할 수 있는 장점도 있다).
셋 다 마음에 들지만, 나는 이 중에서 flatpak을 가장 선호한다. flatpak에서 내가 사용하는 입력기(Ibus)가 가장 문제없이 작동했기 때문이다. appimage나 snap으로 설치한 프로그램 중 일부(KeePassXC)는 한글 입력이 제대로 되지 않았다. 설치한 프로그램에 적용된 UI도 flatpak이 가장 괜찮았다.
몇 년 전만 하더라도 프로그램 사이트에서 “deb 말고 rpm도 지원해 주세요”와 비슷한 요청이 꽤 있었다. 하지만 시간이 흐를수록 이런 요청은 점차 사라지고 있다. 최근 웬만한 프로그램들은 모두 flatpak, snap, appimage 셋 중 하나를 지원하며, 지원하는 프로그램도 계속 늘어나고 있기 때문이다.
프로그램 | 지원 |
Firefox, Chromium | snap |
Libre Office | flatpak, snap |
Spotify | flatpak, snap |
Telegram | flatpak, snap |
Steam | flatpak |
FileZilla | flatpak |
Code | flatpak, snap |
KeePassXC | appimage, flatpak, snap |
Joplin | appimage |
GIMP | flatpak, snap |
Slack | flatpak, snap |
뿐만 아니라 최근에는 browser에서 작업이 가능한 프로그램(MS Office Online, 한컴 스페이스)도 늘어나고 있다. 이처럼 특정 리눅스 배포판, 또는 특정 OS에서만 프로그램 사용이 가능했던 과거의 문제점이 점점 사라지고 있다. 이러한 흐름이 지속돼서 머지않아 나같이 데스크톱 용도로 사용하는 사람들도 리눅스 배포판을 사용하는데 어려움이 없어질 날이 오길 바란다.