피드로 돌아가기
I Ported the Ollama Desktop App to Linux Just in Time for Ubuntu 26.04 LTS
Dev.toDev.to
Infrastructure

Go Build Tags 해제로 Ollama Desktop App의 Linux 네이티브 포팅 성공

I Ported the Ollama Desktop App to Linux Just in Time for Ubuntu 26.04 LTS

johnohhh12026년 4월 11일5intermediate

Context

Ollama Desktop App은 webview 라이브러리를 통해 구현되었으나, Go Build Tags 제약으로 인해 Windows와 macOS만 지원하는 구조적 한계 존재. Linux 사용자는 GUI 없이 CLI와 브라우저를 통한 간접적인 인터페이스만 활용 가능했던 상황.

Technical Solution

  • Build Tags 수정으로 40여 개 파일의 Linux 빌드 대상 포함 및 접근 권한 확보
  • CGo 설정을 통한 GTK3 및 WebKit2GTK-4.1 라이브러리 링크 및 런타임 의존성 해결
  • lockfile 기반의 Single-instance enforcement 로직을 구현하여 중복 프로세스 실행 방지
  • systemd 환경을 고려하여 프로세스 생성 대신 30초 주기의 Health-checker 핑 기반 상태 감시 구조 설계
  • zenity 외부 프로세스 호출 방식을 통한 Linux 네이티브 File/Folder Picker 인터페이스 구현
  • navigator.platform 기반의 조건부 렌더링 로직을 수정하여 Linux 환경 내 Settings 메뉴 노출 해결

1. 크로스 플랫폼 포팅 시 소스 코드 내 플랫폼 제한 태그(e.g., //go:build) 우선 확인

2. OS별 서비스 관리 체계(e.g., systemd vs Windows Service)에 따른 프로세스 생명주기 관리 전략 차별화

3. 네이티브 UI 컴포넌트 부재 시 zenity와 같은 CLI 기반 UI 툴킷 활용 검토

4. 하드웨어 가속(EGL/Mesa) 미지원 시 소프트웨어 렌더링 폴백(Fallback) 가능 여부 확인

원문 읽기