Windows 11 (wie auch Windows 10 in den aktuellen Insider Builds) erlaubt die Nutzung des Windows Subsystem für Linux (WSL) in der Version 2 (WSL2) inklusive Grafik-Anwendungen (Linux GUI Anwendungen). Klingt toll. Ist es auch!
Das Ganze wird auch vom RAD Studio (Delphi) 11 unterstützt. WSL2 ist eine unterstützte Zielplattform von Delphi 11! https://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#RAD_Studio_Alexandria
Dazu braucht man folgendes:
- Ein Windows 11 (bzw ein Windows 10 in den letzten Insider Builds)
- Ein Rechner, der auch die Virtualisierung (Hardware/CPU, BIOS/UEFI Einstellungen) unterstützt
- RAD Studio 11 bzw Delphi 11 (Linux Unterstützung gibt es nur für Delphi) in der Enterprise oder Architect Edition
Wichtiger Hinweis: FMXLinux ist nur für die Vollversion (Enterprise/Architect) verfügbar. Nicht für die Trial. Mit der Trial geht nur Entwicklung für die Kommandozeile bzw Web-Server Anwendungen / ReST / DataSnap……
Ich möchte das hier Anhand von Windows 11, Insider Preview Build 22000, auf dem Hypervisor („Virtualisierer“) VMware Fusion 12 unter macOS darstellen.
Installation von Windows 11
Im Prinzip alles, wie man es gewohnt ist. Es gibt aber einen wichtigen Unterschied: Damit das Subsystem für die Virtualisierung funktioniert, muss VT-x eingeschaltet werden. Das trifft auch auf direkte Hardware/Blech zu. Hier muss man die Virtualisierungsmöglichkeiten im BIOS/UEFI einschalten. Unter VMware Fusion ist das eine Option unter „Prozessoren & RAM“:
Der Machine sollte man „reichlich“ RAM und mindestens 2 CPUs/Cores geben. Aktuell (Build 22000.184) braucht man noch kein TPM und/oder Secure-Boot in einer VM. Aber das wird sich ja ändern. Weitere Einstellungen/Änderungen, die ich für die VM eingestellt habe: [X] Seitenkanalabgleich deaktivieren / 100 GB HDD/SSD / sonst soweit Standard.
Nachdem die VM installiert ist (inkl. den „VMware Tools“, Aktivierung von Windows, und dem Windows-Update auf die 22000.184 [je nach Installations ISO]), ist das Windows soweit bereit. Zumindest „fast“. Man muss noch WSL bzw WSL2 installieren.
NB: Microsoft nervt langsam echt mit ihrem Online-Konto-Zwang. Es geht aber (noch?!?!?) ohne während der Konfiguration des Benutzerkontos: Anmeldeoptionen -> Offlinekonto -> Vorerst überspringen
Installation von WSL2
WSL2 lässt sich auf Windows 11 sehr leicht installieren. Einfach eine Kommandozeile mit erhöhten Rechten starten (Start als Administrator)
1 |
wsl --install -d Ubuntu |
Dies installiert auch gleich (unter Windows 11) die GUI Unterstützung mit!
–install -> installiert WSL Unterstützung
-d Ubuntu -> installiert das letzte, aktuelle Ubuntu (20.04 LTS)
Die WSL-Installation fordert zum Schluss zu einen Neustart des Rechners auf. („Der angeforderte Vorgang wurde erfolgreich abgeschlossen. Änderungen werden erst nach einem Neustart des Systems wirksam.“) Nach dem Neustart kann man Benutzernamen und Kennwort definieren; diese Aufforderung kommt automatisch nach dem Neustart des Rechners:
Falls WSL nicht gestartet werden kann, dann liegt das zumeist am nicht vorhandenen VT-x (Virtualisierungsunterstützung der CPU; muss im BIOS aktiviert sein!)
Das „nackte“ Ubuntu ist installiert. Man muss noch einige, weitere Pakete für die Entwicklung mit Delphi installieren:
1 |
sudo apt-get install build-essential |
Das ist notwendig für die grundlegende Installation von Entwicklungspaketen, die Delphi für den Import des SDKs benötigt
1 |
sudo apt-get install libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0 libgstreamer-plugins-base1.0 libncurses5 |
Das sind die Pakete für die GUI Entwicklung mit FMXLinux (was wir nachher benutzen wollen; nicht in der Trial möglich!)
Beide Befehle sind nacheinander (oder auch kombiniert) auszuführen und brauchen einige Zeit. Die Auswahl ist mit „Y“ zu bestätigen.
Ubuntu ist bereit. Jetzt brauchen wir noch den PAServer, den wir uns gleich mit wget holen und auspacken (hier PAServer von RAD Studio 11.3):
1 2 3 4 5 |
cd ~ wget https://altd.embarcadero.com/releases/studio/22.0/113/LinuxPAServer22.0.tar.gz tar -xvf LinuxPAServer22.0.tar.gz cd PAServer-22.0 ./paserver |
PAServer Start noch bestätigen:
Installation von RAD Studio 11 / Delphi 11
Hier habe ich mich für eine Testversion/Trial von Delphi entschieden (siehe oben: FMXLinux/GUI-Entwicklung nicht in der Trial!). Geht natürlich auch mit einer Vollversion bzw dem RAD Studio und den möglichen Kombinationen daraus. Es muss sich halt um (mindestens) ein Delphi 11 handeln.
Die Installation muss mit Linux Unterstützung/Delphi minimal installiert werden. Mehr geht natürlich auch:
Trial / Vollprodukt -> FMXLinux nur mit der Vollversion möglich!
Auf der Optionen Seite nur „deutsches Sprachpaket“ und „Fonts“ ausgewählt. Sonst nichts für die minimale Installation. Mehr kann man natürlich immer installieren. „Delphi Windows“, iOS, Android, …… ich wollte es nur sehr minimalistisch halten 🙂
Installation von FMX Linux innerhalb der IDE / Delphi 11 (nur bei Vollversion möglich / nicht bei der Test/Trialversion)
Die IDE wird gestartet („Mit der Arbeit beginnen“) und man muss jetzt noch FMXLinux installieren. Nachdem man die IDE konfiguriert hat (Helles / dunkle Thema) findet man unter Tools | GetIt-Paket-Manager…..
Suchen nach „FMXLinux“ und installieren:
Import des SDKs (Trial und Vollversion)
Nach dem Start der IDE und bevor man für Linux entwicklen kann, muss man das SDK von der Linux Seite importieren. Dazu folgende Schritte
- Verbindungsprofil-Manager aufrufen (Tools | Optionen -> Bereitstellung -> Verbindungsprofil-Manager)
- „Hinzufügen“ -> <Profilname beliebig> / Plattform: Linux 64Bit
- Remote-Computer: localhost
(Das klingt komisch, ist aber so. Funktioniert aber nur, wenn der PAServer in der WSL2 Umgebung gestartet ist; siehe oben!) - Fertig stellen
Dann anschliessend das SDK importieren:
- Im Tools | Optionen Dialog (ist noch geöffnet): Bereitstellung -> SDK-Manager
- „Hinzufügen“ -> Plattform: Linux 64 Bit / Profil: <Name von oben> / SDK Version (vorausgewählt „Ubuntu 20.04 LTS“)
- OK
Das dauert jetzt einige Zeit. Währenddessen kommt die Meldung, daß einige Dateien überschrieben werden können bzw müssen: „Alle Ja“. Das importierte SDK belegt ca 1,2 GByte(!) auf der Platte unter „C:UsersMEDocumentsEmbarcaderoStudioSDKsubuntu20.04.sdk“ (oder analog / Benutzernamen)
„Speichern“ zum Schluss im Optionen Dialog nicht vergessen…..
Kommandozeilenprogramm „Hello World“ (Trial und Vollversion).
Nach dem Import des SDKs kann man jetzt Kommandozeilenprogramm (oder Webserver-Erweiterungen, DataSnap, RAD Server Module, etc) erstellen:
- Datei -> Neu -> Konsolenanwendung – Delphi
- Zielplattform hinzufügen (rechte Maustaste auf den Zielplattformen): Linux 64 Bit
- Im ToDo Bereich der Konsolenanwendung
1WriteLn('Hello World!'); - Starten (ohne Debug)
Ausgabe im WSL2:
GUI Anwendungen mit WSL2 und Delphi (nur Vollversion Delphi)
Erstellt man eine FMX Anwendung, dann geht das auch 🙂
Beim erstmaligem Start einer GUI Anwendung auf WSL2 dauert das (bei mir) so ca 30 Sekunden!!! Nachfolgende Starts des gleichen Projektes, wie auch weiterer, anderer Projekt geht dann innerhalb einer Sekunde (nach Compile/Link).
- Datei -> Neu -> Geräteübergreifende Anwendung – Delphi
- Zielplattform auswählen (Linux 64 Bit)
- Starten
Bemerkung zum Debuggen
Wir sind auf ein älteres Python (3.6) angewiesen; ein Link (ln) hilft
1 2 |
cd /usr/lib/x86_64-linux-gnu sudo ln libpython3.8.so.1 libpython3.6m.so.1.0 |
Erstellt einen Link names libpython3.6m.so.1.0 auf die vorhandene libpython3.8.so.1
Siehe auch
https://docwiki.embarcadero.com/RADStudio/Alexandria/de/Anwendungsentwicklung_für_Linux
https://docwiki.embarcadero.com/RADStudio/Alexandria/de/Linux-Konsolenanwendung_%22Hello_World%22_erstellen
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition