Linux에서 AppImage를 사용하는 방법

게시 됨: 2022-09-27
Linux 명령 프롬프트를 보여주는 파란색 배경의 노트북.
Fatmawati achmad zaenuri/Shutterstock.com

AppImage를 사용하면 Linux 개발자가 모든 Linux 배포판에 설치되는 단일 파일로 애플리케이션을 래핑할 수 있습니다. 그것은 일을 엄청나게 단순화합니다. 이를 사용하고 데스크탑에 통합하는 방법은 다음과 같습니다.

Linux에 소프트웨어 설치

소프트웨어 설치는 간단하고 편리해야 합니다. 그것이 얼마나 간단하고 얼마나 편리한지는 배포판의 패키지 관리자에 달려 있습니다. 패키지 관리자는 다른 Linux 프로그램을 다운로드하여 설치할 수 있는 소프트웨어 응용 프로그램입니다.

파생 Linux 배포판은 상위 배포판의 패키지 관리자를 사용하는 경향이 있습니다. 예를 들어, 많은 Debian 변종 및 파생 제품은 apt 를 사용하고 RedHat 및 Fedora 배포판은 dnf 를 사용하며 Arch 배포판 제품군은 pacman 을 사용합니다. 따라서 고맙게도 배포판에는 패키지 관리자가 많지 않습니다.

그럼에도 불구하고 개발자의 관점에서 다양한 패키지 형식을 모두 지원한다는 것은 애플리케이션을 Debian 제품군의 경우 DEB 파일로, RedHat 제품군의 경우 RPM 등으로 래핑하는 것을 의미합니다. 추가 오버헤드가 많이 발생합니다.

또한 개발자나 다른 사람이 배포용 설치 패키지를 만들지 않은 경우 해당 소프트웨어를 설치할 수 없습니다. 적어도 네이티브는 아닙니다.

Linux 설치 패키지를 다른 형식으로 변환하는 방법
관련 Linux 설치 패키지를 다른 형식으로 변환하는 방법

다른 배포판에서 컴퓨터로 패키지를 구부릴 수는 있지만 위험하지 않은 방법이 아니며 작동이 보장되지도 않습니다. 하고 있는 일을 알고 있다면 소스 코드를 다운로드하고 컴퓨터에 애플리케이션을 구축할 수 있지만, 이는 단순하고 편리한 것과는 거리가 멉니다.

Snap 및 Flatpak과 같은 프로젝트는 각 배포에 대한 응용 프로그램을 래핑하는 문제를 극복하도록 설계되었습니다. 패키지를 단일 파일로 래핑하여 적절한 라이브러리 및 기타 종속성과 함께 번들로 제공하여 호스트 운영 체제에 대한 (사실상) 요구 사항이 없도록 할 수 있다면 모든 패키지에서 실행할 수 있어야 합니다. 분포.

AppImage 프로젝트는 바로 그러한 이니셔티브입니다. AppImage는 프로젝트의 이름이고 AppImages는 래핑된 애플리케이션의 이름입니다.

AppImages 작동 방식

AppImage 파일은 전통적인 의미로 설치되지 않습니다. 응용 프로그램 패키지를 구성하는 구성 요소 파일은 모두 단일 파일에 포함되어 있습니다. 압축을 풀지 않고 파일 시스템의 다른 디렉토리에 저장합니다.

패키지 관리자가 설치한 응용 프로그램의 실행 파일은 적절한 "/bin" 디렉토리에 복사되고 man 페이지는 "/usr/share/man" 디렉토리 등에 저장됩니다. 압축 풀기 및 복사 단계는 AppImages에서 발생하지 않습니다.

AppImage에는 일반적으로 squashFS 파일 시스템인 파일 시스템이 있습니다. 응용 프로그램을 실행하는 데 필요한 파일은 Linux 설치의 기본 파일 시스템이 아니라 이 파일 시스템 내부에 저장됩니다. AppImage가 실행되면 기본 파일 시스템에서 액세스할 수 있도록 "/tmp/mount"에 squashFS 파일 시스템을 마운트하는 내부 도우미 프로그램 중 하나를 시작합니다. 그런 다음 응용 프로그램 자체를 시작합니다.

이것이 Snaps, Flatpaks 및 AppImages에서 응용 프로그램을 시작하는 것이 일반 응용 프로그램을 실행하는 것보다 약간 느린 이유입니다. 이 모든 것이 작동하려면 호스트 파일 시스템에 "사용자 공간의 파일 시스템"이라는 것이 설치되어 있어야 합니다. 이것은 호스트에 AppImages가 배치하는 유일한 종속성입니다. FUSE는 일반적으로 최신 Linux 배포판에 사전 설치됩니다.

AppImage 파일 사용

가장 먼저 해야 할 일은 원하는 애플리케이션에 대한 AppImage를 다운로드하는 것입니다. 이것들은 배포의 저장소에 없을 것입니다. 일반적으로 응용 프로그램 자체에 대한 웹 사이트에서 찾을 수 있습니다.

오픈 소스 3D 컴퓨터 지원 설계 패키지인 FreeCAD를 다운로드하여 사용합니다. FreeCAD 다운로드 페이지로 이동하여 "64비트 AppImage" 버튼을 클릭합니다.

FreeCAD 다운로드 페이지

다운로드가 완료되면 터미널 창에서 파일을 찾습니다. 웹 브라우저에서 기본값을 변경하지 않는 한 아마도 "다운로드" 디렉토리에 있을 것입니다. AppImage를 실행 가능하게 만들어야 합니다. chmod 명령을 사용하여 -x (실행 가능) 권한을 추가합니다.

 chmod +x FreeCAD-0.20.0-Linux-x86_64.AppImage 

chmod 명령을 사용하여 AppImage를 실행 가능하게 만들기

파일을 다운로드하여 실행 가능하게 만들었습니다. 그것을 실행하기 위해 우리는 그것을 이름으로 부를 수 있습니다.

 ./FreeCAD-0.20.0-Linux-x86_64.AppImage 

AppImage 파일 실행

그것이 Fedora와 Manjaro에서 우리가 해야 했던 전부입니다. Ubuntu 22.04에서는 라이브러리 파일을 설치해야 했습니다. FUSE는 이미 Ubuntu 22.04에 설치되어 있지만 대부분의 AppImages에서 사용하는 것보다 최신 버전입니다. 라이브러리 파일을 설치해도 설치된 FUSE 버전에는 영향을 미치지 않습니다.

 sudo apt 설치 libfuse2 

libfuse2 라이브러리 파일 설치

그것은 바로 문제를 해결했고 Ubuntu Jammy Jellyfish 22.04에서 문제 없이 AppImages를 시작할 수 있었습니다.

AppImage에서 실행되는 freeCAD 애플리케이션

모두 훌륭합니다. 그러나 당신이 당신의 케이크를 가지고 그것을 먹고 싶다면 어떨까요? 터미널 창에서 실행할 필요가 없는 AppImage를 사용하는 방법이 있다고 상상해 보십시오. 일반 기본 응용 프로그램처럼 AppImage 응용 프로그램을 시작할 수 있다면 훨씬 더 편리할 것입니다.

여기에는 명백한 모순이 있습니다. AppImages의 요점은 데스크탑에 통합되지 않는 것을 포함하여 전통적인 의미에서 자체적으로 설치되지 않는다는 것입니다. 그러나 AppImageLauncher를 사용하면 가능합니다.

앱 이미지 런처

AppImageLauncher는 지정된 디렉토리를 모니터링합니다. 디렉토리를 스캔하여 AppImage 파일을 찾습니다. 찾은 각각에 대해 응용 프로그램 아이콘(있는 경우)을 추출하고 일반 응용 프로그램처럼 AppImage를 바탕 화면에 통합합니다.

이것은 디렉토리에 추가되는 각각의 새로운 AppImage에 대해 반복됩니다. AppImage가 삭제되었음을 감지하면 통합을 제거합니다. 따라서 다운로드한 AppImage 파일을 모니터링되는 디렉터리에 놓기만 하면 데스크톱 환경에 통합됩니다.

Ubuntu 또는 Fedora를 사용하는 경우 AppImageLauncher 다운로드 페이지로 이동하여 "릴리스 빌드(최신)" 섹션에서 "자산" 링크를 클릭하십시오.

Fedora의 경우 "appimagelauncher-XXX.x86_64.rpm" 링크를 클릭하고 Ubuntu의 경우 "appimagelauncher_XXX.bionic_arm64.deb" 파일을 클릭합니다. "XXX"는 소프트웨어의 버전 번호를 나타냅니다.

AppImageLauncher RPM 및 DEB 다운로드 링크

AppImageLauncher Lite 및 AppImageLauncher에 대한 링크가 있습니다. AppImageLauncher 링크를 사용하십시오.

다운로드한 파일을 찾아 두 번 클릭하여 설치를 시작합니다. 그놈에서 "소프트웨어" 응용 프로그램이 시작됩니다.

Ubuntu 소프트웨어 프로그램에서 열린 AppImageLauncher DEB 파일

Manjaro에서 다음 명령으로 AppImageLauncher를 설치할 수 있습니다.

 sudo pacman -S appimagelauncher 

Manjaro에 AppImageLauncher 설치

"Super" 키를 눌러 AppImageLauncher를 시작할 수 있습니다. 대부분의 키보드에서 왼쪽 "Ctrl" 키와 "Alt" 키 사이에 있습니다. 검색 창에 "appim"을 입력하십시오.

AppImageLauncher 아이콘이 나타납니다. 클릭하면 응용 프로그램이 실행됩니다.

AppImageLauncher 메인 화면

약간의 구성이 있습니다. 모니터링할 디렉토리를 AppImageLauncher에 알려야 합니다. "폴더" 아이콘을 클릭하고 일반적으로 AppImage를 저장하는 디렉토리로 이동합니다. 우리는 "다운로드" 디렉토리를 선택했습니다. 원하는 경우 "/Downloads/apps"와 같은 하위 디렉토리를 선택할 수 있습니다.

/home/dave/Downloads가 모니터링되는 디렉토리로 설정된 AppImageLauncher 애플리케이션

AppImageLauncher가 다른 디렉터리에서 찾은 AppImage를 모니터링되는 디렉터리로 이동하도록 제안하려면 "AppImage 파일을 응용 프로그램 디렉터리로 이동할지 여부 묻기" ​​확인란이 선택되어 있는지 확인하십시오. 그러나 AppImageLauncher가 단일 디렉토리만 모니터링하는 경우 다른 곳에서 AppImage를 어떻게 찾을 수 있습니까?

이에 대한 답은 "appimagelauncherd" 탭에 있습니다. "appimagelauncherd" 탭을 클릭하면 AppImage가 둘 이상의 디렉토리를 모니터링할 수 있음을 알 수 있습니다.

AppImageLauncher 애플리케이션의 appimagelauncherd 탭

디렉토리를 더 추가하려면 녹색 "플러스" 아이콘을 클릭하십시오. "자동 시작 자동 통합 데몬" 확인란이 선택되어 있는지 확인합니다. 선택을 마치면 "확인" 버튼을 클릭하십시오.

몇 분 동안 기다린 다음 "Super" 키를 누르고 모니터링되는 디렉터리에 있는 AppImage 이름의 첫 번째 부분을 입력합니다. 우리의 경우에는 하나만 있습니다.

"free"를 입력하자마자 FreeCAD 아이콘이 표시됩니다. 클릭하면 응용 프로그램이 시작됩니다. AppImage 파일에 아이콘이 없으면 FreeCAD의 경우와 같이 일반 톱니바퀴 아이콘이 사용됩니다.

추가 테스트를 위해 Subsurface 애플리케이션용 AppImage 파일을 다운로드했습니다. 우리는 약 30초 동안 검색되어 통합되었는지 확인한 다음 "Super" 키를 누르고 "sub"를 입력하면 응용 프로그램 아이콘이 나타납니다. 이번에는 해당 앱의 정품 아이콘을 찾아 사용했습니다.

아이콘을 클릭하면 응용 프로그램이 시작됩니다. AppImage를 실행 가능하게 만들기 위해 chmod 를 사용할 필요조차 없었습니다.

AppImage에서 실행되는 서브서피스 애플리케이션

또 다른 좋은 터치는 아이콘을 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴에서 바로 AppImage를 삭제할 수 있다는 것입니다.

서브서피스 컨텍스트 메뉴

아이콘을 런처에 고정하는 옵션도 있어 AppImage를 기본 애플리케이션처럼 편리하게 사용할 수 있습니다.

AppImages는 증가하고 있습니다

테스트 시스템에서 AppImages에서 시작된 응용 프로그램은 Flatpak 응용 프로그램보다 약간 더 빠르게 로드되고 Snap 응용 프로그램보다 훨씬 빠릅니다. AppImages를 사용하면 설치해야 하는 기본 프레임워크가 없으므로 응용 프로그램 자체에 필요한 공간을 제외하고 AppImages를 사용하는 하드 드라이브 공간은 0입니다.

선택적 AppImageLauncher 응용 프로그램은 약간의 기교를 추가하지만 AppImage 없이도 행복하게 사용할 수 있습니다.

점점 더 많은 응용 프로그램이 AppImages를 제공하고 있습니다. 배포 리포지토리에 없는 것 같은 것을 설치하려는 경우 해당 응용 프로그램의 웹 사이트를 확인하십시오. AppImage가 있을 수 있습니다.

관련: apt 대 apt-get: Linux의 차이점은 무엇입니까?