# Linux용 Tauri 앱 게시하기

이 가이드는 Mocco에 게시하는 Tauri 2 앱에 Linux(`linux-x86_64`)를 추가합니다. 먼저 [Tauri 앱 게시하기](https://www.mocco.club/docs/ko/articles/2pegvw-publish-tauri)대로 앱, 업데이터 키, `tauri.conf.json`, CI 키를 설정하세요. 그 내용은 Linux에도 그대로 적용됩니다.

## 번들 고르기

**AppImage**를 쓰세요. 대부분의 배포판에서 실행되고, 업데이터가 관리자 권한 없이 그 자리에서 교체합니다.

| 번들     | `tauri build --bundles` | `src-tauri/target/release/bundle/` 안의 파일 |
| -------- | ----------------------- | -------------------------------------------- |
| AppImage | `appimage`              | `appimage/App_0.2.0_amd64.AppImage`와 `appimage/App_0.2.0_amd64.AppImage.sig` |
| deb      | `deb`                   | `deb/App_0.2.0_amd64.deb`, 패키지를 설치하는 업데이터 플러그인이라면 `deb/App_0.2.0_amd64.deb.sig` |
| rpm      | `rpm`                   | `rpm/App-0.2.0-1.x86_64.rpm`, 마찬가지로 `rpm/App-0.2.0-1.x86_64.rpm.sig` |

`createUpdaterArtifacts: true`이면 Tauri가 AppImage 자체에 업데이터 서명을 만들므로, 사람들이 내려받는 파일과 앱이 설치하는 파일이 같습니다. (`"v1Compatible"`이면 업데이트 번들은 별도의 `.AppImage.tar.gz`이고 자체 `.sig`가 있습니다. 그 파일을 업데이트 번들로 올리세요.) `.deb`나 `.rpm` 설치를 업데이트하려면 이를 지원하는 업데이터 플러그인 버전이 필요하고, 관리자 비밀번호를 묻습니다. 배포하기 전에 플러그인의 릴리스 노트를 확인하세요.

릴리스에는 플랫폼마다 설치 파일 하나와 업데이트 번들 하나가 있으므로, `linux-x86_64`에는 번들 하나를 고르세요. 지원하는 가장 오래된 배포판(예: `ubuntu-22.04`)에서 빌드하세요. 새 배포판에서 만든 AppImage는 오래된 시스템에서 실행되지 않을 수 있습니다.

Linux에는 Mocco가 확인하는 Authenticode나 공증 같은 절차가 없습니다. 설치된 앱을 보호하는 것은 업데이터 서명입니다. 앱은 모든 업데이트를 앱에 컴파일된 공개 키로 확인합니다.

## 릴리스 단계

Linux 러너에서 빌드 후에 다음을 추가합니다.

```yaml
- name: Publish to Mocco
  uses: fi-workers/mocco/actions/desktop-publish@<commit sha>
  with:
    app-id: <app id>
    version: ${{ steps.version.outputs.version }}
    notes-file: RELEASE_NOTES.md
    artifacts: |
      linux-x86_64 installer src-tauri/target/release/bundle/appimage/App_${{ steps.version.outputs.version }}_amd64.AppImage
      linux-x86_64 updater   src-tauri/target/release/bundle/appimage/App_${{ steps.version.outputs.version }}_amd64.AppImage
    channel: stable
  env:
    MOCCO_API_KEY: ${{ secrets.MOCCO_API_KEY }}
```

같은 파일을 종류마다 한 번씩, 두 번 적습니다. `updater` 줄에서는 파일 옆의 `.sig`를 읽습니다. deb라면 대신 `deb/…_amd64.deb` 두 줄을, rpm이라면 `rpm/…` 두 줄을 쓰세요.

Mocco는 업데이트를 `linux-x86_64` 키와, 새 업데이터 플러그인이 먼저 찾는 키로 함께 제공합니다. 기본은 `linux-x86_64-appimage`이고, 업데이트 번들 이름이 `.deb`나 `.rpm`으로 끝나면 `linux-x86_64-deb`나 `linux-x86_64-rpm`입니다. `tauri.conf.json`은 바꿀 필요가 없습니다. 엔드포인트의 `{{target}}/{{arch}}`가 이미 `linux/x86_64`입니다.

## 다른 플랫폼과 함께 게시하기

macOS, Windows, Linux를 릴리스 하나로 배포하려면 플랫폼마다 자기 러너에서 빌드하고 한 작업에서 모든 파일을 게시하세요. [모든 플랫폼을 빌드해 릴리스 하나로 게시하기](https://www.mocco.club/docs/ko/articles/bxpv24-publish-tauri-windows#모든-플랫폼을-빌드해-릴리스-하나로-게시하기)를 참고하세요.

## 다음 단계

- [Windows용 Tauri 앱 게시하기](https://www.mocco.club/docs/ko/articles/bxpv24-publish-tauri-windows): NSIS 또는 MSI, Authenticode를 다룹니다.
- [curl로 게시하기](https://www.mocco.club/docs/ko/articles/by2fx3-publish-with-curl): 어떤 CI에서든 같은 업로드를 실행합니다. AppImage와 rpm의 콘텐츠 유형은 `application/octet-stream`, deb는 `application/vnd.debian.binary-package`를 쓰세요.
