Projekte

Bench

Eine portable Umgebung für Softwareentwicklung unter Windows.

ACHTUNG: Diese Seite bezieht sich auf die Bench-Versionen bis v0.10 - in den aktuellen Bench Releases ab v0.11 hat sich einiges an der Benutzerschnittstelle und den Konfigurationsdateien geändert. Es entsteht zur Zeit eine umfassende englisch-sprachige Dokumentation, aus der ich zu einem späteren Zeitpunkt Teile ins deutsche übersetzen werden.

Bench ist eine portable Umgebung, für das Entwickeln von Software unter Windows. Bench besteht aus einer Sammlung von PowerShell-Skripten und Windows-Batch-Dateien die das automatische Herunterladen und Installieren einer Vielzahl von Befehlszeilenwerkzeugen, Programmiersprachen und Programmierwerkzeugen in einer isolierten Umgebung erlaubt.

Das Projekt ist auf GitHub frei verfügbar.

Bench kann das mühsame Einrichten einer umfassenden Werkzeugsammlung unter Windows automatisieren. Standardmäßig richtet Bench die folgenden Werkzeuge ein, die für die Bench-Umgebung erforderlich sind:

  • Git
  • 7-Zip

In der Konfiguration für die Bench-Umgebung können u.a. die folgenden Werkzeuge einzeln oder in Gruppen aktiviert werden:

  • JDK 7, JDK 8
  • NodeJS 4 mit NPM
  • PHP 5, PHP 7
  • Python 2, Python 3 mit PIP
  • Ruby
  • Eclipse
  • Sublime Text 3
  • Visual Studio Code
  • Emacs, Spacemacs
  • MySQL, MySQL Workbench
  • PostgreSQL, pgAdmin III
  • Apache Web Server
  • MikTeX
  • Pandoc
  • Inkscape
  • FFmpeg
  • Graphics Magick
  • cURL
  • ...

Eine vollständige Auflistung aller verfügbaren Anwendungen findet sich in der apps.md. In der benutzerspezifischen Konfiguration der Bench-Umgebung können sehr leicht weitere Anwendungen hinzugefügt werden.

Ein typischer Ablauf für das Einrichten einer Bench-Umgebung sieht wie folgt aus:

  1. Anlegen eines Verzeichnisses für die Bench-Umgebung
  2. Herunterladen der bench-install.bat von GitHub in das Bench-Verzeichnis
  3. Ggf. Aufheben der Ausführungsbeschränkung der bench-install.bat (Dateieigenschaften - Ausführung erlauben)
  4. Ausführen der bench-install.bat
  5. Eingeben des Namens und der EMail-Adresse für die Arbeit mit Git
  6. Anpassen der Konfiguration in config.ps1 (z.B. angeben eines Proxy-Servers und aktivieren von Apps und App-Gruppen)
  7. Warten bis Anwendungsresourcen heruntergeladen wurden
  8. Wenn Git eingerichtet wird, wird beim ersten mal ein SSH-Schlüssel-Paar erzeugt, für das zur Eingabe eines Passwortes aufgefordert wird
  9. Anschließend werden die einzelnen Anwendungen installiert

Die Bench-Umgebung lässt sich auf zwei Wegen nutzen:

  • Befehlszeile
    Die Skripte bench-cmd.cmd, bench-ps.cmd und bench-bash.cmd im Verzeichnis actions starten verschiedene Befehlszeileninterpreter in der Bench-Umgebung (CMD, PowerShell und Bash)
  • Launcher
    Im Verzeichnis launcher liegen eine Reihe von Windows-Verknüpfungen für das Starten von Bench-Apps

Tipp: Wird Bench nicht portabel auf einem USB-Stick, sondern fest auf einem PC verwendet, kann das launcher-Verzeichnis als Symbolleiste in der Taskbar eingerichtet werden, dadurch werden die Werkzeuge der Bench-Umgebung besonders leicht zugänglich.

Die Installation der Bench-Apps kann jederzeit angepasst oder aktualisiert werden, dabei unterstützt das Skript bench-ctl.cmd bzw. die Launcher-Verknüpfung Bench Control.

Die Bench-Umgebung sorgt mit Hilfe der dynamisch generierten Batch-Datei auto\env.cmd dafür, dass vor der Ausführung einer in Bench installierten Anwendung die Umgebungvariablen angepasst werden. Das führt dazu, dass alle Benutzerdaten und Einstellungen innerhalb des Bench-Verzeichnisses verbleiben und das Benutzerprofil und die Windows Registry des angemeldeten Windows Benutzers nicht verändert werden.

Voraussetzung dafür ist jedoch, dass die Bench-Anwendungen entweder mittels der Launcher-Verknüpfungen im Verzeichnis launcher oder von einer der Bench-Befehlszeilen aus gestartet werden.

Tipp: Es können beliebige ausführbare Dateien (*.exe, *.bat, *.cmd, ...) per Drag&Drop auf die Launcher-Verknüpfung Command Line gezogen werden, um sie im Kontext der Bench-Umgebung auszuführen.

Die Isolation von Anwendungen deckt auch die Windows Registry ab. Einige Anwendungen legen ihre Einstellungen nicht in Dateiform im Benutzerverzeichnis ab, sondern schreiben sie in die Windows-Registry (z.B. Putty). Solche Anwendungen werden in der Bench-Umgebung mit einem Wrapper-Skript gestartet, welches für eine Trennung der Registry-Einstellungen des Windows-Benutzerprofils und der Bench-Anwendung sorgt.

Die Bench-Umgebung kann ohne weiteres auf einem USB-Stick verwendet oder zwischen Verzeichnissen und Laufwerken verschoben werden. Jedoch muss jedesmal wenn sich der Pfad zum Bench-Verzeichnis ändert, einmal das Skript bench-ctl.cmd ausgeführt und im interaktiven Menü der Punkt update-env ausgewählt werden.

Joomla templates by a4joomla