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 |