Linux GUI Applications On Windows Subsystem For Linux

Transcription

Linux GUIApplications onWindows Subsystemfor Linux [WSL2]Developers PerspectiveJim McKeethChief Developer AdvocateEmbarcadero Copyright 2022 by Embarcadero, an Idera companySlides, links & replay: blogs.embarcadero.com/?p 130922Delphi 11

Agenda Introduction to WSLSetup and configurationDifferent Linux DistributionsDeploying and debuggingTroubleshootingAdvanced OptionsQ&ASlides, links & replay: blogs.embarcadero.com/?p 130922Copyright 2022 by Embarcadero, an Idera companyDelphi 11

Presenter: Jim McKeeth Chief Developer Advocate & Engineer for Embarcadero Long time software developer Delphi, C/C , Python, Java, JavaScript, Ruby, etc. Invented and patented pattern and swipe to unlock e.g. US Patents # 8352745 & 6766456 Built thought controlled drone with Google Glass andwireless EEG headset Contributor to Internet of Things and Data Analytics Handbook Blogger, podcaster, conference speaker, webinar host, etc. Twitter, TikTok, YouTube, etc. @JimMcKeethCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Windows Subsystem for Linux Introduced in Windows 10 Trivia: Replaces Windows Services for Unix from 2004 Also available on Windows 11 and Windows Server 2019 Developed in collaboration with Canonical and others WSL2 improved performance with a real Linux kernel Uses a subset of Hyper-V features Not as isolated or as much overhead as a VM Performance rivals native Linux WSLg adds GUI support Ships in Windows 11 or Windows 10 Insider 21364Copyright 2022 by Embarcadero, an Idera companyDelphi 11

&Addressing theElephant inthe Room LINUXCopyright 2022 by Embarcadero, an Idera companyDelphi 11

"The wholeanti-Microsoft thing wassometimes funny as ajoke I feel like, yes,they have changed SoI completely dismissedall the anti-Microsoftstuff.""a stepbackward in thecampaign 5x8YjERichard StallmanLinus TorvaldsFound of FSF & GNUCreator of Linux kernelImg https://w.wiki/4n8xImg https://w.wiki/4n93“It’s not like Microsoft isstealing our toys, it’smore that we’re sharingthem with Microsoft inorder to give everyonethe best possibleexperience.”https://tek.io/3ufuXWRSatya NadellaMicrosoft CEOhttps://zd.net/3IQSst6Img https://w.wiki/4n9GCopyright 2022 by Embarcadero, an Idera companyMark ShuttleworthFounder & CEO CanonicalImg https://w.wiki/4n9HRAD STUDIODelphi 11

Benefits and Use Cases Ability to run unmodified ELF64 Linux binaries, expand toolkit and capabilities Flexibility of combining Windows and Linux tool chain on one computer Less overhead than a traditional virtual machine means better performance Local build environment with containers, etc. Testing server applications from Windows without additional infrastructure No need to mess with dual boot or 3rd party VM installation Invoke Linux binaries from Windows and Windows executables from Linux Runs as you need it, less management Memory and drive space are dynamically sharedCopyright 2022 by Embarcadero, an Idera companyDelphi 11

WSL Installation Guide Enable "Windows Subsystem for Linux" optional feature (via Admin PowerShell or Windows Features) Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Install Linux Distro of Choice Windows Store or manually via script Launch Linux Distro to initialize it, provide password, etc. You can also build a custom distro Launch WSL 4 ways Icon on start menu [distro],for example ubuntuwsl.exe or bash.exewsl [command] or bash -c wsl/installCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Available Distributions Ubuntu, Kali, & Pengwin are in theDebian family (using .deb pkgs - apt) Kali is focused on security Pengwin is designed around WSL SUSE and Fedora are in the RPM familywith Red Hat Alpine is an independent, lightweight,security-oriented, Linux distribution Some distros include multiple versionsCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Managing WSL Distros List distributions or wsl--list --runningSet default distribution wsl --list --allwsl --setdefault DistributionName Run a specific distro wsl --distributionor wsl-s DistributionName DistributionName Run as specified user wsl --user Username (or use the specific distro name) Unregister and uninstall a distribution wsl --unregister DistributionName Shutdown all WSL instances wsl --shutdownCopyright 2022 by Embarcadero, an Idera companyDelphi 11

First Run On first run you are usuallyprompted for a username andpassword openSUSE uses YaST2 for anice ASCII GUICopyright 2022 by Embarcadero, an Idera companyDelphi 11

Connecting from the IDE Tools - Options - Deployment - Connection Profile Manager The IP address and ports are shared withthe host So you connect to 127.0.0.1 Can only use each port number once(even if you have multiple distros setup) So use different port numbers formultiple instances if you want to runthem simultaneouslyCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Linux User Password Reset1. Note your username2. From Windows terminal get the distro name wsl -l3. From Windows terminal switch default-user to root ubuntu config --default-user root4. Launch the WSL distro (you will be logged in as root) ubuntu5. Change the user’s password passwd username6. Change the default user back ubuntu config --default-user username7. Launch the WSL distro againCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Accessing Files Between Systems Access Windows from Linux cd /mnt/c/ Open WSL in current Windows directory wsl wsl -d ubuntu ubuntu Access Linux from Windows \\wsl.localhost Open current Linux path from Windows explorer.exe . cmd.exe powershell.exeCopyright 2022 by Embarcadero, an Idera companyDelphi 11

DemonstrationCopyright 2022 by Embarcadero, an Idera companyRAD STUDIODelphi 11

Windows Subsystem for Linux resources Command Line Blog (includes WSL) http://aka.ms/cliblog Learn WSL http://aka.ms/learnwsl WSL Docs http://aka.ms/wsldocs Connect USB to WSL https://aka.ms/wsl-usbip WSL: Run Linux GUI Apps youtu.be/kC3eWRPzeWw Deep Dive in WSL2 youtu.be/lwhMThePdIo Windows Dev Tool Updates: WSL, Terminal, Package Manager, and more youtu.be/m5tt9mDRPSwSlides, links & replay: blogs.embarcadero.com/?p 130922Copyright 2022 by Embarcadero, an Idera companyDelphi 11

More WSL Resources Advanced WSL Launcher / Installer (Simplify making your own WSL distro) https://github.com/yuk7/wsldl Other prebuilt distros based on WSLDL os Collection of WSL Utilities https://github.com/wslutilities/wslu A GUI WSL2 instance manager https://github.com/bostrot/wsl2-distro-manager Awesome list for WSL t 2022 by Embarcadero, an Idera companyDelphi 11

FMXLinux Resources DocWiki: Linux Application Development DocWiki: Installing the Platform Assistant on Linux docwiki.embarcadero.com/RADStudio/en/FireMonkey for LinuxScript to automate setup on Ubuntu docwiki.embarcadero.com/RADStudio/en/Installing the Platform Assistant on LinuxDocWiki: FireMonkey for Linux docwiki.embarcadero.com/RADStudio/en/Linux Application Developmentembt.co/Ubuntu4Delphi22Script to automate setup on Redhat embt.co/RedHat4Delphi22Slides, links & replay: blogs.embarcadero.com/?p 130922Copyright 2022 by Embarcadero, an Idera companyDelphi 11

Setting up CentOS (Redhat based)embt.co/RedHat4Delphi22 Install Docker in Ubuntu docs.docker.com/engine/install/ubuntu/ Follow steps stro Make folder on Windows C:\WSL\CentOS From Ubuntu Base OSBy Redhat &CommunityFeature focusFreeRedhat By RedhatSupportedStable focusCommercialCentOS By communityNo supportFree Fedora sudo service docker start sudo docker run -t dokken/centos-stream-9 bash ls / dockerContainerID (sudo docker container ls -a grep -idokken/centos-stream-9 awk '{print 1}') sudo docker export dockerContainerID /mnt/c/WSL/CentOS/centos.tar sudo docker rm dockerContainerID From PowerShell cd C:\WSL\CentOS\ wsl --import CentOS C:\WSL\CentOS\ .\centos.tar From CentOS yum update -y && yum install passwd sudo -ymyUsername jimadduser -G wheel myUsernameecho -e "[user]\ndefault myUsername" /etc/wsl.confpasswd myUsername From PowerShell wsl --terminate CentOSCopyright 2022 by Embarcadero, an Idera companyDelphi 11

Q&ALinux GUIApplications onJim McKeethWindows Subsystemfor Linux [WSL2]Chief Developer AdvocateEmbarcadero Slides, links & replay: blogs.embarcadero.com/?p 130922Copyright 2022 by Embarcadero, an Idera companyRAD STUDIODelphi 11

Copyright 2022 by Embarcadero, an Idera companyDelphi 11

Copyright 2022 by Embarcadero, an Idera company Delphi 11. Tit