---
title: AppImage로 배포
sidebar:
  order: 1
i18nReady: true
---

import TranslationNote from '@components/i18n/TranslationNote.astro';

"`AppImage`"는 시스템에 설치된 패키지에 의존하지 않고, 대신 애플리케이션에 필요한 종속성과 파일을 모두 번들로 묶은 배포 형식입니다. 이 때문에 출력 파일은 커지지만, 많은 Linux 배포판에서 지원되며 설치 없이 실행할 수 있어 배포가 용이합니다. 사용자는 파일을 실행 파일(`chmod a+x MyProject.AppImage`)로 만들기만 하면 실행할 수 있습니다(`./MyProject.AppImage`).

AppImage는 편리하며, 각 배포판의 패키지 관리자용 패키지를 만들 수 없는 경우에도 배포 프로세스를 간소화합니다. 그렇지만 파일 크기가 원래 2~6MB 정도에서 70MB 이상으로 커지므로 사용에 신중을 기해야 합니다.

## GStreamer를 통한 멀티미디어 지원

앱이 오디오/비디오 재생을 수행하는 경우, `tauri.conf.json > bundle > linux > appimage > bundleMediaFramework`("미디어 프레임워크 번들" 플래그)를 활성화해야 합니다. 이렇게 하면 미디어 재생에 필요한 gstreamer 파일이 추가되어 AppImage 번들 크기가 증가합니다. 이 플래그는 현재 Ubuntu 빌드 시스템에서만 완벽하게 지원됩니다. 앱 실행 시 필요할 수 있는 모든 플러그인이 자신의 빌드 시스템에 설치되어 있는지 확인하십시오.

:::caution

[GStreamer]의 `ugly` 패키지 내 플러그인에는 "앱의 일부로 배포하기 어려운" 라이선스가 있는 것이 있을 수 있습니다.

<TranslationNote lang="ko">

**GStramer**의 라이선스 문제: GStreamer 자체는 LGPL로 라이선스가 부여되지만, 플러그인 라이브러리 그룹 중에는 다른 라이선스로 배포되는 경우가 있을 수 있으므로 사용되는 플러그인의 라이선스에 주의하십시오. 라이선스 관련 자세한 내용은 [GStreamer website](영어 사이트)를 참조하십시오.

</TranslationNote>

:::

{/* TODO: Add some reference links for gst setup/plugins */}

## 사용자 지정 파일

Tauri의 "`resources` 기능"("[추가 파일 포함](/ko/develop/resources/)" 장 참조)을 사용하지 않고 사용자 지정 파일을 AppImage에 포함하려면, 대상 파일이나 폴더 목록을 `tauri.conf.json > bundle > linux > appimage > files`에 지정합니다. 이 설정 객체는 AppImage 내의 경로를 파일 시스템상의 파일 경로로, `tauri.conf.json` 파일로부터의 상대 경로로 확장(매핑)합니다. 다음은 설정 예시입니다:

```json title="tauri.conf.json"
{
  "bundle": {
    "linux": {
      "appimage": {
        "files": {
          "/usr/share/README.md": "../README.md", // "../README.md" 파일을 "<appimage>/usr/share/README.md"에 복사
          "/usr/assets": "../assets/" // "../assets" 디렉토리의 모든 것을 "<appimage>/usr/assets"에 복사
        }
      }
    }
  }
}
```

:::note

현재 대상 경로는 `/usr/`로 시작해야 한다는 점에 유의하십시오.

:::

## ARM 기반 장치용 AppImages

Tauri가 사용하는 AppImage 도구인 "`linuxdeploy`"는 현재 ARM AppImage와의 [크로스 컴파일을 지원하지 않습니다]. 즉, ARM AppImage는 ARM 장치 또는 에뮬레이터에서만 빌드할 수 있습니다.

앱을 빌드하기 위해 에뮬레이션 환경인 "QEMU"를 이용하는 워크플로 사례에 대해서는 [GitHub Action 설정 가이드](/ko/distribute/pipelines/github/#arm-runner-compilation) 장을 참조하십시오. 단, 이 처리는 매우 느리므로 Build Minutes(빌드 시간)가 무료인 공개 리포지토리에서만 권장됩니다. 비공개 리포지토리에서는 GitHub의 "ARM 러너"(위 링크)가 비용 효율적이며 설정도 훨씬 간단합니다.

<TranslationNote lang="ko">

**QEMU** 읽기 "큐에뮤". 오픈 소스 CPU/시스템 에뮬레이터. 자세한 내용은 [Wikipedia](https://ko.wikipedia.org/wiki/QEMU)를 참조하십시오.

</TranslationNote>

[크로스 컴파일을 지원하지 않습니다]: https://github.com/linuxdeploy/linuxdeploy/issues/258
[GStreamer]: https://ko.wikipedia.org/wiki/GStreamer
[GStreamer website]: https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/licensing.html?gi-language=c

<div style="text-align: right">
  【※ 이 한국어판은, 「Feb 22, 2025 영문판」에 근거하고 있습니다】
</div>
