d3ro-voice/apps/desktop/scripts/download-ollama.sh
Yun Chan 8aadae38dd
Some checks failed
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 4s
fix(ci): Ollama darwin 자산명 수정 — v0.5.x는 tgz가 아닌 단일 바이너리
2026-07-21 16:09:14 +09:00

69 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# scripts/download-ollama.sh
# Ollama 포터블 바이너리를 resources/ollama/에 배치한다. (macOS/Linux)
# 실행: bash scripts/download-ollama.sh
set -euo pipefail
OLLAMA_VERSION="${OLLAMA_VERSION:-v0.5.7}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DEST_DIR="$SCRIPT_DIR/../resources/ollama"
OS="$(uname -s)"
ARCH="$(uname -m)"
case "$OS" in
Darwin)
# macOS는 단일 바이너리 asset (v0.5.x 기준 tgz 없음 — GitHub API로 확인)
ASSET="ollama-darwin"
;;
Linux)
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
ASSET="ollama-linux-arm64.tgz"
else
ASSET="ollama-linux-amd64.tgz"
fi
;;
*)
echo "지원하지 않는 OS: $OS" >&2
exit 1
;;
esac
URL="https://github.com/ollama/ollama/releases/download/${OLLAMA_VERSION}/${ASSET}"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
mkdir -p "$DEST_DIR"
if [ -f "$DEST_DIR/ollama" ]; then
echo "Ollama가 이미 존재합니다: $DEST_DIR/ollama"
exit 0
fi
echo "=== Ollama ${OLLAMA_VERSION} ${OS} ${ARCH} 다운로드 ==="
echo "URL: $URL"
curl -L --fail --retry 3 -o "$TMP/$ASSET" "$URL"
case "$ASSET" in
*.tgz)
tar -xzf "$TMP/$ASSET" -C "$TMP"
# tgz 구조: bin/ollama + lib/ (ROCm/CUDA 등). 필요한 것만 복사.
if [ -f "$TMP/bin/ollama" ]; then
cp "$TMP/bin/ollama" "$DEST_DIR/ollama"
chmod +x "$DEST_DIR/ollama"
fi
# 라이브러리 동봉(CUDA/ROCm 런타임용)
if [ -d "$TMP/lib" ]; then
cp -R "$TMP/lib" "$DEST_DIR/"
fi
;;
*)
# darwin: 단일 실행 바이너리
cp "$TMP/$ASSET" "$DEST_DIR/ollama"
chmod +x "$DEST_DIR/ollama"
;;
esac
echo "Ollama 설치 완료: $DEST_DIR"