Code Monkey home page Code Monkey logo

wsltooling's Introduction

Automated creation of WSL 2 Development Machine

Welcome to the WSL Tooling repository. The aim of this project is to supply you with the ability to automatically install a fully working WSL 2 development environment just by invoking a powershell script even without the wsl --install flag.

I have fully reworked and updated the whole installation. Once your Windows is capable of running WSL 2 instances, the Ubuntu LTS WSL 2 installation is fully automatic.

Preparation

This repository must be cloned on your local disk.

Enable Windows Subsystem for Linux

This step is only required if WSL support was never activated before on your Windows machine

Open a powershell with administrative privileges and execute this script to enable WSL and VM platform on your machine. It might be necessary to adjust the security policy (see first commnd below) because the Powershell scripts are not digitally signed (https:/go.microsoft.com/fwlink/?LinkID=135170):

# Optional: Set Security to Bypass
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# Enable WSL
.\enableWSL.ps1

This will take a couple of minutes. If it was not enabled before, you need to reboot Windows.

A restart is required if any of the two above features have not been installed before.

Set WSL default version to 2

Set the default WSL version to 2. Open a powershell with administrative privileges:

.\installWSL2.ps1

Distribution Installation

Download and Install Ubuntu LTS (20.04)

If not already done, open a new powershell with administrative privileges and install Ubuntu LTS. You need to provide four arguments. If you don't specify them on command line, then the script will ask:

  • <wslName>: Provide a name for the WSL that is goind to be created (e.g. devbox)
  • <wslInstallationPath>: The directory where the vhdx disk of the new WSL is stored
  • <username>: the name of the user that is used when WSL distro is launched without -u
  • <installAllSoftware>: Use true|false. Tell if all software packages (see Available Software) shall be installed or if false only a fully updated system with configured user is supplied For example, the command can look as follows:
.\installUbuntuLTS.ps1 devbox D:\WSL2\devbox kai true

Available Software Package

If don't want to install all packages during initial WSL creation, you can install them one buy one. They are available here ./scripts. These are currently available

Firefox and other tools can be installed directly with Ubuntu's package manager apt. Some of the above scripts also use apt and apply additional configuration.

Removal

Not available yet, but with a fast internet connection and fast SSD you have the WSL recreated in approx. five minutes. ๐Ÿ˜Ž

Usage

X-Server

Once Windows 11 including WSLg is generally available this will become superfluous.

I recommend to use VcXsrv (also available via chocolatey) to connect to user interfaces launched from WSL on display 0. The WSL linux setup configures everything properly. Use the following Powershell script to launch (it assume vcxsrv is installed at default location C:\Program Files\VcXsrv\vcxsrv.exe):

.\scripts\xserver\xerver.ps1

Certificates

Copy any certificates you require under /usr/local/share/ca-certificates/ and the run the command:

sudo update-ca-certificates

Experiments

Convert Docker to WSL2

I have created a CentOS 7 based Dockerfile that serves as a demonstrator. You can convert the container image to a WSL with to quick commands. For instructions look here).

Misc

Constructive feedback is appreciated!

Have fun!

Kai

wsltooling's People

Contributors

kaisalmen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.