From f8d8cc3f96e7bd9567ecf801d6ca4be6ee26f7b5 Mon Sep 17 00:00:00 2001 From: openclaw Date: Wed, 3 Jun 2026 11:40:05 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20Cline=20Build-Dependencies=20f=C3=BCr?= =?UTF-8?q?=20Ubuntu=2022.04=20(Airgapped)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cline-build-dependencies-ubuntu22.md | 186 +++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 cline-build-dependencies-ubuntu22.md diff --git a/cline-build-dependencies-ubuntu22.md b/cline-build-dependencies-ubuntu22.md new file mode 100644 index 0000000..f0567a8 --- /dev/null +++ b/cline-build-dependencies-ubuntu22.md @@ -0,0 +1,186 @@ +# 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](https://github.com/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](https://nodejs.org/) (Binary-Tarball) | +| **Bun** | 1.3.13 (exakt) | Monorepo Package Manager, CLI-Bundler | [bun.sh](https://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`): + +```bash +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: + +```bash +# 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: + +```bash +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: + +```bash +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) + +```bash +# 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 + +```bash +# 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 + +```bash +tar xzf cline-offline.tar.gz +cd cline + +# CLI bauen +bun run build + +# VSIX paketieren +cd apps/vscode +npm run package +# → Erzeugt claude-dev-.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 |