DataScience
728x90

사전 설치

sudo pacman -Syu
sudo pacman -S --needed \
    webkit2gtk \
    base-devel \
    curl \
    wget \
    openssl \
    appmenu-gtk-module \
    gtk3 \
    libappindicator-gtk3 \
    librsvg \
    libvips

Rust 설치

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

Rust is installed now. Great! 이 문장이 나오면 설치 성공입니다.

러스트 관련 명령어

rustup update                      #업데이트
rustup self uninstall              #제거
rustc --version                    #버전확인
rustc x.y.z (abcabcabc yyyy-mm-dd)    #안정 버전의 커밋 날짜

프론트엔드 만들기

Sveltekit 스택을 활용하여 빌드하는 방식으로 진행합니다.

npm create svelte

cd [project name]
npm install
npm run dev
  • node 버전때문에 npm install이 에러가 발생하여 pacman -S nodejs npm 요구하는 버전으로 다시 설치했습니다.

image

SvelteKit SSG 모드

npm install --save-dev @sveltejs/adapter-static@next

그리고,svelte.config.js파일에 임포트된 adapter를 판올림 합니다:

import adapter from '@sveltejs/adapter-static' // 이것은 adapter-auto에 의해 변경됨
import preprocess from 'svelte-preprocess'

/** @type {import('@sveltejs/kit').Config} */
const config = {
  // preprocessors에 관한 더 많은 정보를 위해 
  // https://github.com/sveltejs/svelte-preprocess 참고
  preprocess: preprocess(),

  kit: {
    adapter: adapter(),
  },
}

export default config

+layout.ts 파일을(또는 TypeScript를 사용하지 않는 경우 +layout.js) src/routes/+layout.ts에 추가하여 SSG를 활성화해야 합니다.

export const prerender = true
export const ssr = false

Rust 프로젝트 생성하기

TAURI CLI 설치

$ npm install --save-dev @tauri-apps/cli

package.json 파일의 "scripts" 섹션에 이를 추가해야 합니다.

package.json

"scripts": {
  "tauri": "tauri"
}

Tauri 초기 설정을 해줍니다.

$ npm run tauri init

  • Where are your web assets (HTML/CSS/JS) located relative to the /src-tauri/tauri.conf.json file that will be created?

    ../build 입력해줍니다.

  • What is the URL of your dev server?

    http://localhost:5173 입력해줍니다.

  • What is your frontend dev command?

npm run dev(선택한 패키지 관리자에 따라 적용) 사용

  • What is your frontend build command?

    npm run build(선택한 패키지 관리자에 따라 적용) 사용

image

Tauri 개발 윈도우(웹뷰)

npm run tauri dev를 실행시키면 웹뷰가 열리고 브라우저 처럼 자동으로 업데이트 됩니다. Rust파일을 변경하면 자동으로 다시 빌드되고 앱이 자동 재시작됩니다.

image

빌드

npm run tauri build
  • Error You must change the bundle identifier in tauri.conf.json > tauri > bundle > identifier. The default value com.tauri.dev is not allowed as it must be unique across applications.
  • 에러가 발생하면 tauri.conf.json > tauri > bundle > identifier를 수정해줍니다.
  • "identifier": "com.tauri.dev" -> "identifier": "com.tauri.svelte"

빌드가 완료 되면 scr-tauri/target/release 폴더가 생성됩니다.

scr-tauri/target/release/bundle/appimage 폴더 내에 프로젝트명 버전.AppImage 파일은 시스템 설치 패키지에 의존하지 애플리케이션에 필요한 모든 종속성 및 파일을 번들로 묶은 배포 파일입니다.

chmod a+x 프로젝트명 버전.AppImage으로 실행 가능하게 만들고 ./프로젝트명 버전.AppImage으로 실행해 줍니다.

배포

서명을 위한 키 생성

gpg2 --full-gen-key

  • SIGN: AppImage에 서명하려면 1로 설정합니다.
  • SIGN_KEY: 서명 시 특정 GPG Key ID를 사용하는 것은 선택적인 변수입니다.
  • APPIMAGETOOL_SIGN_PASSPHRASE: 서명키 비밀번호. 설정하지 않으면 gpg는 비밀번호를 입력할 수 있도록 대화 상자를 표시합니다. 자동화 작업으로 실행할 때 이를 반드시 설정해야 합니다.

image

AppImages 서명하기

./src-tauri/target/release/bundle/appimage/$APPNAME_$VERSION_amd64.AppImage --appimage-signature

image

'Rust' 카테고리의 다른 글

Rust 변수  (94) 2023.04.18
개발자들이 가장 사랑하는 언어 Rust 소개  (158) 2023.04.17
Tauri 배포  (53) 2023.04.15
Tauri 빌드  (110) 2023.04.14
Tauri 테스트  (42) 2023.04.14
profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!