Files
snippets/cline-build-dependencies-ubuntu22.md

4.3 KiB

Cline Build-Dependencies für Ubuntu 22.04 (Airgapped)

Zusätzlich benötigte Software zum Bauen der CLI-Applikation und der VS Code Extension (VSIX) aus dem Projekt cline/cline.

Überblick

Das Cline-Projekt ist ein Monorepo mit zwei Haupt-Build-Targets:

  • CLI (apps/cli) — gebaut mit Bun
  • VS Code Extension / VSIX (apps/vscode) — gebaut mit npm/esbuild

Beide Targets teilen sich ein SDK (sdk/packages/*), das zuerst gebaut werden muss.


1. Runtimes & Package Manager

Software Version Zweck Quelle
Node.js ≥ 22 Runtime, npm für VS Code Extension nodejs.org (Binary-Tarball)
Bun 1.3.13 (exakt) Monorepo Package Manager, CLI-Bundler bun.sh (Single Binary)
Git ≥ 2.x Versionskontrolle apt install git
Git LFS ≥ 3.x Large File Storage (Repo benötigt LFS) apt install git-lfs

Ubuntu 22.04 Hinweis: Die Standardrepos liefern nur Node 12. Node 22 muss als Binary-Tarball oder über NodeSource offline bereitgestellt werden.


2. Build-Tools (System-Pakete)

Für native Node-Addons (insbesondere better-sqlite3, grpc-tools):

sudo apt install -y build-essential python3
Paket Inhalt
build-essential gcc, g++, make
python3 Für node-gyp (Native Addon Build)

3. Zum Bauen der CLI (apps/cli)

Die CLI wird ausschließlich mit Bun gebaut:

# 1. SDK bauen
bun run build:sdk

# 2. CLI bauen
bun -F @cline/cli build
# oder vom Root:
bun run build

Benötigte Tools: Bun 1.3.13, Node ≥ 22


4. Zum Bauen der VSIX (apps/vscode)

Die VS Code Extension nutzt npm und esbuild:

cd apps/vscode

# 1. Dependencies installieren (inkl. Webview)
npm run install:all

# 2. Protocol Buffer Dateien generieren (vor erstem Build erforderlich!)
npm run protos

# 3. Extension paketieren → erzeugt .vsix
npm run package

Zusätzlich benötigte npm-Tools (kommen als devDependencies)

Tool Zweck
esbuild Bundler für die Extension
@vscode/vsce Erzeugt die .vsix-Datei
@biomejs/biome Linter/Formatter
@bufbuild/protobuf / protobuf-Toolchain Protocol Buffer Code-Generierung
typescript ≥ 5.9 TypeScript-Compiler

Webview-UI

Die Extension enthält ein separates React-Frontend (webview-ui/), gebaut mit:

  • Vite
  • Tailwind CSS
  • React

Diese werden durch npm run install:all mitinstalliert und durch npm run package automatisch gebaut.


5. System-Libraries für Tests (optional)

Für E2E- und Integrationstests auf einem headless Linux-System:

sudo apt install -y \
  dbus \
  libasound2 \
  libatk-bridge2.0-0 \
  libatk1.0-0 \
  libdrm2 \
  libgbm1 \
  libgtk-3-0 \
  libnss3 \
  libx11-xcb1 \
  libxcomposite1 \
  libxdamage1 \
  libxfixes3 \
  libxkbfile1 \
  libxrandr2 \
  xvfb

Diese Bibliotheken werden für die VS Code Test-Umgebung und Playwright E2E-Tests benötigt.


6. Airgapped-Strategie

Vorbereitung (auf Maschine mit Internet)

# Repository klonen
git lfs install
git clone https://github.com/cline/cline.git
cd cline

# Bun-Dependencies (SDK + CLI)
bun install

# npm-Dependencies (VS Code Extension)
cd apps/vscode
npm run install:all
cd ../..

# SDK vorab bauen
bun run build:sdk

# Protobuf-Dateien generieren
cd apps/vscode && npm run protos && cd ../..

Transfer ins Airgapped-Netz

# Gesamtes Projekt inkl. node_modules als Tarball
tar czf cline-offline.tar.gz cline/

Wichtig: Die nativen Binaries (better-sqlite3, grpc-tools, etc.) sind plattformspezifisch. Die Vorbereitung muss auf einer identischen Ubuntu 22.04 x86_64 Maschine erfolgen.

Build im Airgapped-Netz

tar xzf cline-offline.tar.gz
cd cline

# CLI bauen
bun run build

# VSIX paketieren
cd apps/vscode
npm run package
# → Erzeugt claude-dev-<version>.vsix

Zusammenfassung

Komponente Benötigte Software
Beide Node.js ≥ 22, Git, Git LFS
CLI Bun 1.3.13
VSIX npm (via Node.js), build-essential, python3
Tests GUI-Libraries (siehe Abschnitt 5), xvfb
Offline Vorbereiteter Tarball mit allen Dependencies