Homestead unter Windows

Mit Laravel/Homestead erhält der geneigte Entwickler einen voll ausgestatteten Webzeugkasten ‚Out of the Box‘. Eine perfekt aufeinander abgestimmte lokale Entwicklungsumgebung mit allen Tools und Konfigurationen, die das Entwicklerherz begehrt und zudem eine spätere Portierung in die Produktiv-Umgebung zum Kinderspiel macht. Homestead unter Windows weiterlesen

Windows 10 für Pathfinder

Ein Eintrag in der PATH-Variable ist immer dann notwendig, wenn ein Programm z.B. PHP, Composer oder auch Sublime Text über die Konsole Verwendung finden soll und der Installer das nicht erledigt hat. Für Nutzer mit eingeschränkten Berechtigungen können hier die Umgebungsvariablen im Benutzerkontext für Abhilfe schaffen. Leider hat sich in der Windows Build 1511 ein Bug eingeschlichen, so das sich die Funktion „Umgebungsvariablen für dieses Konto bearbeiten“ in Windows 10 nicht direkt öffnen lässt.

Für die Administratoren stellt das keine Hürde dar, denn Sie können die Umgebungsvariablen in den Erweiterten Systemeinstellungen die sich in den Systemeigenschaften finden lassen bearbeiten. WIN + X und dann Y drücken und schon befindet man sich in den Systemeigenschaften und wird am rechten Rand fündig.

Wer nun aber ohne administrative Berechtigungen unterwegs ist und dringend eine PATH-Variable in der Konsole setzten muss. Der ist ohne den oben genannten Einstellungsdialog ziemlich aufgeschmissen. Aber Windows wäre nicht Windows, wenn es nicht noch andere Wege gäbe diese Einstellungen zu tätigen.

Variante 1 über die Registrierung bzw. WIN + R und regedit eingetippt. Unter HKEY_CURRENT_USER\Environment kann jeder Benutzer sich seine eigenen Benutzer-Variablen anlegen. Eine zweite PATH-Variable wird vom System automatisch an die Systemvariable PATH angefügt. Dieser Teil der Registrierung ist auch ohne administrative Rechte bearbeitbar.

Variante 2 bedient sich der Konsole und dem Befehl SETX. Darüber können ebenfalls Umgebungsvariablen im Benutzerkontext angelegt werden. Mit einem

SETX PATH C:\Tools\sqlite3

wird der z.B. SQlite in die PATH-Variable im Benutzerkontext geschrieben. Aufpassen muss man nur, wenn man eine vorhandene Variable ergänzen möchte. Hierfür sollte man entweder einen Blick in die Registrierung werfen oder mit einem echo %path% sich die Variable ausgeben lassen und den Teil der zur Benutzer-Variable gehört herauskopieren und mit dem neuen Wert zusammen durch ein Semikolon getrennt neu setzen.

Variante 3 bezieht sich auf meine Lieblingskonsole cmder. Im Verzeichnis vendor befindet sich in der init.bat ziemlich in der Mitte ein Bereich ‚:: Enhance Path‘ und an den Befehl @set PATH=… am Ende die notwendigen Werte anhängen und fertig.

Bei allen Varianten muss die Konsole neu gestartet werden, damit die PATH-Variable neu eingelesen wird.

cmder (<invalid_name> @ <invalid_version>)

Fehlen in der package.json die Properties „name“ und „version“ erzeugt Cmder hinter dem Clink-Promt diese seltsame Ausgabe. Ok, eine Art von Validierung ist schon ok, aber muss das die Konsole übernehmen?

Meiner Meinung nach reicht es aus, den Namen und die Version des Moduls auszugeben, wenn dieser auch angegeben wurde. Cmder v1.2.9 erzeugt dieses Promt in der npm.lua, welche unter vendor/clink-completions zu finden ist.

Mit dem folgenden Gist kann die Ausgabe der Funktion npm_promt_filter() so angepasst werden, dass bei Fehlen der beiden Properties auch nichts ausgegeben wird.

Achtung, in Cmder v1.3.0-pre ist die Sache irgendwie unsauber gelöst, denn wird ein Name und eine Versionsnummer angegeben taucht sie zweimal im Prompt auf.

Denn die Funktion gibt es immer noch in der npm.lua, aber clink selbst scheint die Funktionalität komplett selbst auch nochmal zu übernehmen. Existiert ein name- und oder version-Property wird das auch im Prompt angezeigt. Ist es nicht angegeben wird – wie gewünscht – auch nichts ausgegeben.

Somit muss die letzte Zeile in der npm.lua einfach auskommentiert werden oder die ganze Funkton gelöscht und der Aufruf gleich mit.

--clink.prompt.register_filter(npm_prompt_filter, 40)

Nach den Anpassungen muss Cmder einmal neu gestartet werden, damit die Änderungen Wirkung zeigen.

cmder {git} {lamb}

Auch unter Windows 10 nutze ich die aufgebohrte Konsole Namens cmder. Leider zeigte sich das Promt nach dem Upgrade in seltsamen Gewand mit kryptischen Bezeichnungen. Also kurz nach einer Lösung gesucht und auch gefunden.

Das Problem scheint an einer inkompatiblen Version von clink mit Windows 10 zu liegen. Man besorge sich die portablen Version von clink und entpacke den Inhalt des .zip kurzerhand in /vendor/clink im cmder-Verzeichnis.