Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스 AppImage란 무엇인가? 설치 없이 바로 실행하는 포터블 앱 완벽 가이드

리눅스 AppImage란 무엇인가? 설치 없이 바로 실행하는 포터블 앱 완벽 가이드

리눅스 배포판에서 새로운 소프트웨어를 설치할 때는 가능한 한 항상 패키지 관리자(package manager)를 이용하는 것이 가장 좋습니다. 시스템을 깔끔하게 유지할 수 있고, 모든 파일이 관리자에 의해 추적되기 때문에 나중에 손쉽게 제거할 수도 있습니다. 또한 배포판을 업그레이드할 때 발생할 수 있는 잠재적인 문제도 예방해 줍니다.

하지만 사용하려는 프로그램이 배포판 저장소에 없거나, 버전이 너무 오래된 경우가 종종 있습니다. 이럴 때는 다른 방법을 찾아야 하는데, 여러 대안 중에서도 타사에서 제공하는 ".deb"나 ".rpm" 파일을 직접 다운로드하는 것은 최후의 수단으로만 남겨두는 것이 좋습니다.

AppImage란 무엇일까?

윈도우에서 ZIP 압축 파일을 내려받아 특정 폴더에 풀고, 별도의 설치 과정 없이 바로 프로그램을 실행해 본 적이 있을 것입니다. USB 메모리에 복사해서 윈도우가 설치된 어떤 PC에서든 실행할 수 있기 때문에 이런 프로그램을 포터블(portable) 앱이라고 부릅니다.

AppImage는 기술적으로는 다른 방식으로 만들어지지만, 사용자 입장에서는 exactly 동일하게 작동합니다. 파일 하나만 다운로드하면 리눅스 운영체제에서 아무것도 설치하지 않고 곧바로 프로그램을 실행할 수 있습니다. 게다가 이 파일을 USB에 담아두면 Debian, Ubuntu, Arch Linux, openSUSE, Fedora 등 어떤 리눅스 배포판에서든 그대로 실행됩니다.

AppImage는 어떻게 작동할까?

프로그램은 보통 작업을 수행하기 위해 여러 라이브러리를 필요로 합니다. 배포판은 특정 버전의 라이브러리를 선택하고, 자신이 제공하는 모든 프로그램이 해당 라이브러리와 호환되도록 관리합니다. 하지만 인터넷에서 아무렇게나 내려받은 프로그램은 배포판에 포함되지 않은 라이브러리를 요구할 수 있습니다.

AppImage는 운영체제가 제공하는 환경에 의존하는 대신, 애플리케이션에 필요한 모든 것을 단일 파일 안에 담아버립니다. 이 파일을 실행하면 임시 파일시스템(temporary filesystem)을 생성하고, 그 안에서 프로그램이 필요로 하는 모든 요소에 접근할 수 있게 됩니다. 아래 이미지는 LibreOffice AppImage가 실행될 때 만들어지는 임시 파일시스템의 내용입니다.

리눅스 AppImage란 무엇인가? 설치 없이 바로 실행하는 포터블 앱 완벽 가이드

파일 이름이 "lib"로 시작하고 ".so" 확장자로 끝나는 필수 라이브러리들이 함께 포함되어 있는 것을 확인할 수 있습니다.

AppImage vs Snap & Flatpak

Flatpak과 Snap 앱은 AppImage와 비슷하게 느껴질 수 있지만, 실제로는 상당히 다른 방식입니다. 우선 Flatpak과 Snap은 사전에 실행 환경과 데몬(daemon)을 설치해야 합니다. 이 데몬이 애플리케이션의 실행, 업데이트, 설치 등을 감독하고 관리합니다. 물론 각 방식마다 장단점이 있으며 어느 하나가 "최고"라고 할 수는 없습니다. 결국 어떤 소프트웨어 환경이 필요한지에 따라 선택이 달라집니다.

Snap/Flatpak의 장점은 다음과 같습니다:

  • 샌드박스(sandbox) 격리: 시스템의 나머지 부분으로부터 분리되어 실행되므로 대부분의 멀웨어로부터 보호받을 수 있고, 모든 것이 통제된 상태로 유지됩니다.
  • 중앙 스토어 지원: Snap은 중앙 스토어에서 내려받을 수 있으며, 명령줄에서 바로 검색, 다운로드, 설치도 가능합니다.
  • 손쉬운 업그레이드: 데몬이 스토어를 확인해 새 버전이 있는지 살펴보고 알아서 업데이트를 처리해 줍니다.

반면 AppImage의 장점은 다음과 같습니다:

  • 사전 준비 불필요: AppImage를 실행하기 위해 시스템에 무언가를 미리 설치해 둘 필요가 없습니다. Snap 데몬은 한 번만 설치하면 되니 큰 문제가 아니라고 생각할 수 있지만, 이런 상황을 상상해 보세요. 학교 컴퓨터에서 급하게 프로그램을 실행해야 하는데 root 권한이 없어 Snap 데몬을 설치할 수 없다면 즐겨 쓰던 Snap 앱을 실행할 수 없습니다. 반면 AppImage는 관리자 권한 없이도 다운로드해서 바로 실행할 수 있습니다.
  • 진정한 포터블성: USB 메모리에 담아 어떤 리눅스 OS에서든 실행할 수 있습니다.
  • 자동 업데이트 지원: 일부 AppImage 프로그램은 스스로 업데이트할 수 있습니다.
  • 단일 파일 구조: 모든 것이 하나의 파일에 담겨 있습니다. 다운로드하면 "설치", 삭제하면 "제거" — 이보다 단순할 수 없습니다.

AppImage 실행 방법

파일을 다운로드한 직후에는 바로 실행되지 않습니다. 경우에 따라 실행 아이콘이 표시되기도 하고, 더블클릭했을 때 무언가 일어나는 것처럼 보일 수도 있습니다. 예를 들어 운영체제가 이 파일을 동영상 파일로 오인해 동영상 플레이어로 열려고 시도하는 경우도 있습니다.

다운로드가 완료되면 파일을 우클릭 → 속성(Properties) → 권한(Permissions)으로 이동한 뒤, 실행(executable) 비트를 활성화해야 합니다. 설정 방법은 사용 중인 데스크톱 환경에 따라 조금씩 다릅니다.

리눅스 AppImage란 무엇인가? 설치 없이 바로 실행하는 포터블 앱 완벽 가이드

대부분 "프로그램으로 실행 허용" 옵션이 있거나, "모든 사용자(Anyone)"에게 "실행(Execute)" 권한을 부여하는 체크박스가 제공됩니다.

마무리

직접 사용해 보고 싶다면 AppImage 프로그램 목록을 정리한 사이트를 참고하면 됩니다. 다만 공식 중앙 스토어는 존재하지 않으며, 대부분의 경우 각 프로그램의 공식 다운로드 페이지에서 AppImage가 다운로드 옵션 중 하나로 제공됩니다.

AppImage, Snap, Flatpak 중 무엇을 써야 할지 고민된다면 답은 간단합니다. 패키지 관리자가 제공하는 앱 외에는 거의 사용하지 않는다면 AppImage를 우선 고르세요. 반면 서드파티 소프트웨어를 자주 사용하고 로컬 컴퓨터에서만 쓴다면 Snap이나 Flatpak이 적합합니다. 그리고 앱을 USB에 담아 들고 다니며 다른 컴퓨터에서도 실행해야 한다면, 가능한 경우 AppImage를 선택하는 것이 가장 좋습니다.

이미지 출처: appimage.org의 AppImage 로고