# WSL

{% hint style="info" %}
Certain nodes task from dev, such as `Contribute Ceremony` or `Contract Deployments`, sometimes don't require a cloud server (VPS). Instead, installing a Linux distribution like Ubuntu on Windows can be sufficient.

We just need to run some command and create a PR (Pull Request) to team github.

In this Guide, I'll tell you how to Install Linux (Ubuntu distribution) on Windows using WSL (Windows Subsystem Linux).
{% endhint %}

## Step 1 - Enable WSL

Open Windows Powershell Terminal.

<figure><img src="/files/LY7sBM1PQfsUBr4chFto" alt=""><figcaption><p>Run Windows PowerShell as Administrator</p></figcaption></figure>

Run the WSL installation command:

```
wsl --install
```

\*\* It may ask you to choose a username and password.

After the installation complete, please restart your windows machine.

### Step 2: Install Ubuntu

1. Open Microsoft Store:

After restarting, open the Microsoft Store from the Start menu.

<figure><img src="/files/M1w5YTQSPAONbKySB4rs" alt=""><figcaption><p>Microsoft Store</p></figcaption></figure>

2. Search for Ubuntu:

In the Store, type "Ubuntu" in the search bar. You’ll see various versions like Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, etc

3. Select and Install:

Click on the version you want to install, then click the Get or Install button.

### Step 3: Set Up Ubuntu

1. Launch Ubuntu:

* Once installed, you can launch it directly from the Microsoft Store or by searching for "Ubuntu" in the Start menu
* The first time you launch Ubuntu, it will take a moment to set up. After that, you will be prompted to create a new `user` account and password

## Step 4: Install and Update Packages (aka Drivers)

1. Update and Upgrade default Packages

```
sudo apt update
sudo apt upgrade
```

2. Install more important packages

```
sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev  -y
```

3. Install Docker

```
sudo apt update -y && sudo apt upgrade -y
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update -y && sudo apt upgrade -y

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Docker version
docker --version
```

***Optional: To install more packages,*** [***please check this.***](https://documentation.codeblocklabs.com/other/wsl/linux-packages)

\*\*this pages based on [0xmoei post](https://github.com/0xmoei/Install-Linux-on-Windows).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.codeblocklabs.com/other/wsl.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
