Vagrant unter Windows

Es gibt ein paar Kniffe die man wissen muss, wenn man Varangt auf Windows laufen lassen möchte.

Problem

Im Grunde geht es auch nur um zwei Probleme. Windows erlaubt für die Pfadlänge nicht mehr als 256 Zeichen – selbst unter Windows 10 ist das noch so. Auch auf dem noch im Beta-Stadium befindlichem Subsystems: Ubuntu, welches nativ in Windows verbaut ist. Und zweitens darf ein Standard-User keine Symlinks anlegen.

Wenn man das nicht weiß und z.B. über NPM seine Abhängigkeiten laden möchte, welche dann immer wieder in Fehlern enden, möchte man schon so manches mal im Strahl kotzen.

Lösung

Nun gibt es drei Dinge die man tun kann:

Symlink im Shared erlauben

Zum einen folgende Konfiguration in die Vagrantfile mit aufnehmen.

config.vm.provider "virtualbox" do |v|
  v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end

Anschließend mit Adminrechten über die Konsole die Vagrant-Box starten. Diese Konfiguration sollte es ermöglichen, dass Synlinks angelegt werden dürfen. Deswegen bruachen wir auch die Adminrechte auf der Konsole.

Symlinkerstellung durch NPM unterbinden

Zweitens kann man das anlegen von Symlinks im NPM unterbinden in dem man folgenden Parameter anhängt.

--no-bin-link
npm install --no-bin-link

Und drittens und zu guter letzt, verschieben wir das "node_modules"-Verzeichnis aus dem Sharedfolder heraus und legen anschließend einen Symlink auf das verschobene "node_modules"-Verzeichnis an.

sudo ln -s außerhalb_des_sharedfolders/node_modules node_modules

Danach sollte sich das Problem in wohlgefallen auflösen.