How to do linux programming in windows

Содержание
  1. Windows Subsystem for Linux Installation Guide for Windows 10
  2. Simplified Installation for Windows Insiders
  3. Manual Installation Steps
  4. Step 1 — Enable the Windows Subsystem for Linux
  5. Step 2 — Check requirements for running WSL 2
  6. Step 3 — Enable Virtual Machine feature
  7. Step 4 — Download the Linux kernel update package
  8. Step 5 — Set WSL 2 as your default version
  9. Step 6 — Install your Linux distribution of choice
  10. Install Windows Terminal (optional)
  11. Set your distribution version to WSL 1 or WSL 2
  12. Troubleshooting installation
  13. Frequently Asked Questions about Windows Subsystem for Linux
  14. What is Windows Subsystem for Linux (WSL)?
  15. Who is WSL for?
  16. What can I do with WSL?
  17. Could you describe a typical development workflow that incorporates WSL?
  18. What is Bash?
  19. How does this work?
  20. Why would I use WSL rather than Linux in a VM?
  21. Why would I use, for example, Ruby on Linux instead of on Windows?
  22. What does this mean for PowerShell?
  23. Can I run ALL Linux apps in WSL?
  24. What Windows SKUs is WSL included in?
  25. What processors does WSL support?
  26. How do I access my C: drive?
  27. How do I set up Git Credential Manager? (How do I use my Windows Git permissions in WSL?)
  28. How do I use a Windows file with a Linux app?
  29. Are files in the Linux drive different from the mounted Windows drive?
  30. Why are there so many errors when I run apt-get upgrade?
  31. How do I uninstall a WSL Distribution?
  32. Why does ping generate permission denied errors?
  33. Why do I get «Error: 0x80040154» when I run bash.exe after upgrading Windows?
  34. How do I change the display language of WSL?
  35. Why do I not have internet access from WSL?
  36. How do I access a port from WSL in Windows?
  37. How can I back up my WSL distros, or move them from one drive to another?
  38. Where can I provide feedback?

Windows Subsystem for Linux Installation Guide for Windows 10

There are two options available for installing Windows Subsystem for Linux (WSL):

Simplified install (preview release): wsl —install

The wsl —install simplified install command requires that you join the Windows Insiders Program and install a preview build of Windows 10 (OS build 20262 or higher), but eliminates the need to follow the manual install steps. All you need to do is open a command window with administrator privileges and run wsl —install , after a restart you will be ready to use WSL.

Manual install: Follow the six steps listed below.

The manual install steps for WSL are listed below and can be used to install Linux on any version of Windows 10.

If you run into an issue during the install process, check the Troubleshooting installation section at the bottom of this page.

Simplified Installation for Windows Insiders

The installation process for Windows Subsystem for Linux has been significantly improved in the latest Windows Insiders preview builds of Windows 10, replacing the manual steps below with a single command.

In order to use the wsl —install simplified install command, you must:

  • Join the Windows Insiders Program
  • Install a preview build of Windows 10 (OS build 20262 or higher).
  • Open a command line windows with Administrator privileges

Once those requirements are met, to install WSL:

  • Enter this command in the command line you’ve opened in Admin mode: wsl.exe —install
  • Restart your machine

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for files to de-compress and be stored on your PC. All future launches should take less than a second.

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

The —install command performs the following actions:

  • Enables the optional WSL and Virtual Machine Platform components
  • Downloads and installs the latest Linux kernel
  • Sets WSL 2 as the default
  • Downloads and installs a Linux distribution (reboot may be required)

By default, the installed Linux distribution will be Ubuntu. This can be changed using wsl —install -d . (Replacing with the name of your desired distribution.) Additional Linux distributions may be added to your machine after the initial install using the wsl —install -d command.

To see a list of available Linux distributions, enter wsl —list —online .

Manual Installation Steps

If you are not on a Windows Insiders build, the features required for WSL will need to be enabled manually following the steps below.

Step 1 — Enable the Windows Subsystem for Linux

You must first enable the «Windows Subsystem for Linux» optional feature before installing any Linux distributions on Windows.

Open PowerShell as Administrator and run:

We recommend now moving on to step #2, updating to WSL 2, but if you wish to only install WSL 1, you can now restart your machine and move on to Step 6 — Install your Linux distribution of choice. To update to WSL 2, wait to restart your machine and move on to the next step.

Step 2 — Check requirements for running WSL 2

To update to WSL 2, you must be running Windows 10.

  • For x64 systems: Version 1903 or higher, with Build 18362 or higher.
  • For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
  • Builds lower than 18362 do not support WSL 2. Use the Windows Update Assistant to update your version of Windows.

To check your version and build number, select Windows logo key + R, type winver, select OK. Update to the latest Windows version in the Settings menu.

If you are running Windows 10 version 1903 or 1909, open «Settings» from your Windows menu, navigate to «Update & Security» and select «Check for Updates». Your Build number must be 18362.1049+ or 18363.1049+, with the minor build # over .1049. Read more: WSL 2 Support is coming to Windows 10 Versions 1903 and 1909. See the troubleshooting instructions.

Step 3 — Enable Virtual Machine feature

Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Your machine will require virtualization capabilities to use this feature.

Open PowerShell as Administrator and run:

Restart your machine to complete the WSL install and update to WSL 2.

Step 4 — Download the Linux kernel update package

Download the latest package:

If you’re using an ARM64 machine, please download the ARM64 package instead. If you’re not sure what kind of machine you have, open Command Prompt or PowerShell and enter: systeminfo | find «System Type» . Caveat: On non-English Windows versions, you might have to modify the search text, for example, in German it would be systeminfo | find «Systemtyp» .

Читайте также:  Acer s271hl драйвер для windows 10

Run the update package downloaded in the previous step. (Double-click to run — you will be prompted for elevated permissions, select ‘yes’ to approve this installation.)

Once the installation is complete, move on to the next step — setting WSL 2 as your default version when installing new Linux distributions. (Skip this step if you want your new Linux installs to be set to WSL 1).

Step 5 — Set WSL 2 as your default version

Open PowerShell and run this command to set WSL 2 as the default version when installing a new Linux distribution:

Step 6 — Install your Linux distribution of choice

Open the Microsoft Store and select your favorite Linux distribution.

The following links will open the Microsoft store page for each distribution:

From the distribution’s page, select «Get».

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

Install Windows Terminal (optional)

Windows Terminal enables multiple tabs (quickly switch between multiple Linux command lines, Windows Command Prompt, PowerShell, Azure CLI, etc), create custom key bindings (shortcut keys for opening or closing tabs, copy+paste, etc.), use the search feature, and custom themes (color schemes, font styles and sizes, background image/blur/transparency). Learn more.

Set your distribution version to WSL 1 or WSL 2

You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 18362 or higher): wsl -l -v

To set a distribution to be backed by either version of WSL please run:

Make sure to replace with the actual name of your distribution and with the number ‘1’ or ‘2’. You can change back to WSL 1 at anytime by running the same command as above but replacing the ‘2’ with a ‘1’.

The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution. If you are running an older (legacy) installation of WSL 1 from Windows 10 Anniversary Update or Creators Update, you may encounter an update error. Follow these instructions to uninstall and remove any legacy distributions.

If wsl —set-default-version results as an invalid command, enter wsl —help . If the —set-default-version is not listed, it means that your OS doesn’t support it and you need to update to version 1903, Build 18362 or higher. If you are on Build 19041 for ARM64, this command may fail when using PowerShell in which case you can use a Command Prompt instead to issue the wsl.exe command.

If you see this message after running the command: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel . You still need to install the MSI Linux kernel update package.

Additionally, if you want to make WSL 2 your default architecture you can do so with this command:

This will set the version of any new distribution installed to WSL 2.

Troubleshooting installation

Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.

Installation failed with error 0x80070003

  • The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:
  • Open Settings -> **System —>Storage ->More Storage Settings: Change where new content is saved

WslRegisterDistribution failed with error 0x8007019e

  • The Windows Subsystem for Linux optional component is not enabled:
  • Open Control Panel ->Programs and Features ->Turn Windows Feature on or off -> Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.

Installation failed with error 0x80070003 or error 0x80370102

  • Please make sure that virtualization is enabled inside of your computer’s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.
  • WSL2 requires that your CPU supports the Second Level Address Translation (SLAT) feature, which was introduced in Intel Nehalem processors (Intel Core 1st Generation) and AMD Opteron. Older CPUs (such as the Intel Core 2 Duo) will not be able to run WSL2, even if the Virtual Machine Platform is successfully installed.

Error when trying to upgrade: Invalid command line option: wsl —set-version Ubuntu 2

  • Enure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux .

The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.

  • Deselect “Compress contents” (as well as “Encrypt contents” if that’s checked) by opening the profile folder for your Linux distribution. It should be located in a folder on your Windows file system, something like: USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.
  • In this Linux distro profile, there should be a LocalState folder. Right-click this folder to display a menu of options. Select Properties > Advanced and then ensure that the “Compress contents to save disk space” and “Encrypt contents to secure data” checkboxes are unselected (not checked). If you are asked whether to apply this to just to the current folder or to all subfolders and files, select “just this folder” because you are only clearing the compress flag. After this, the wsl —set-version command should work.

In my case, the LocalState folder for my Ubuntu 18.04 distribution was located at C:\Users \AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

Check WSL Docs GitHub thread #4103 where this issue is being tracked for updated information.

Читайте также:  Как с помощью командной строки сбросить пароль windows

The term ‘wsl’ is not recognized as the name of a cmdlet, function, script file, or operable program.

  • Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an ARM64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.

Error: This update only applies to machines with the Windows Subsystem for Linux.

  • To install the Linux kernel update MSI package, WSL is required and should be enabled first. If it fails, it you will see the message: This update only applies to machines with the Windows Subsystem for Linux .
  • There are three possible reason you see this message:

    You are still in old version of Windows which doesn’t support WSL 2. See step #2 for version requirements and links to update.

    WSL is not enabled. You will need to return to step #1 and ensure that the optional WSL feature is enabled on your machine.

    After you enabled WSL, a reboot is required for it to take effect, reboot your machine and try again.

    Error: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel .

    • If the Linux kernel package is missing in the %SystemRoot%\system32\lxss\tools folder, you will encounter this error. Resolve it by installing the Linux kernel update MSI package in step #4 of these installation instructions. You may need to uninstall the MSI from ‘Add or Remove Programs’, and install it again.

    —>

    Frequently Asked Questions about Windows Subsystem for Linux

    What is Windows Subsystem for Linux (WSL)?

    The Windows Subsystem for Linux (WSL) is a feature of Windows 10 that enables you to run native Linux command-line tools directly on Windows, alongside your traditional Windows desktop and apps.

    See the about page for more details.

    Who is WSL for?

    This is primarily a tool for developers, especially web developers, those working on open source projects, or deploying to Linux server environments. WSL is for anyone who likes using Bash, common Linux tools ( sed , awk , etc.) and Linux-first frameworks (Ruby, Python, etc.) but also enjoys using Windows productivity tools

    What can I do with WSL?

    WSL enables you to run Linux in a Bash shell with your choice of distribution (Ubuntu, Debian, OpenSUSE, Kali, Alpine, etc). Using Bash, you can run command-line Linux tools and apps. For example, type lsb_release -a and hit enter; you’ll see details of the Linux distro currently running:

    You can also access your local machine’s file system from within the Linux Bash shell – you’ll find your local drives mounted under the /mnt folder. For example, your C: drive is mounted under /mnt/c :

    Could you describe a typical development workflow that incorporates WSL?

    WSL targets a developer audience with the intent to be used as part of an inner development loop. Let’s say that Sam is creating a CI/CD pipeline (Continuous Integration & Continuous Delivery) and wants to test it first on a local machine (laptop) before deploying it to the cloud. Sam can enable WSL (& WSL 2 to improve speed and performance), and then use a genuine Linux Ubuntu instance locally (on the laptop) with whatever Bash commands and tools they prefer. Once the development pipeline is verified locally, Sam can then push that CI/CD pipeline up to the cloud (ie Azure) by making it into a Docker container and pushing the container to a cloud instance where it runs on a production-ready Ubuntu VM.

    What is Bash?

    Bash is a popular text-based shell and command-language. It is the default shell included within Ubuntu and other Linux distros, and in macOS. Users type commands into a shell to execute scripts and/or run commands and tools to accomplish many tasks.

    How does this work?

    Check out our blog where we go into detail about the underlying technology.

    Why would I use WSL rather than Linux in a VM?

    WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine. WSL also allows you to run Linux command-line tools and apps alongside your Windows command-line, desktop and store apps, and to access your Windows files from within Linux. This enables you to use Windows apps and Linux command-line tools on the same set of files if you wish.

    Why would I use, for example, Ruby on Linux instead of on Windows?

    Some cross-platform tools were built assuming that the environment in which they run behaves like Linux. For example, some tools assume that they are able to access very long file paths or that specific files/folders exist. This often causes problems on Windows which often behaves differently from Linux.

    Many languages like Ruby and node are often ported to, and run great, on Windows. However, not all of the Ruby Gem or node/NPM library owners port their libraries to support Windows, and many have Linux-specific dependencies. This can often result in systems built using such tools and libraries suffering from build and sometimes runtime errors or unwanted behaviors on Windows.

    These are just some of issues that caused many people to ask Microsoft to improve Windows’ command-line tools and what drove us to partner with Canonical to enable native Bash and Linux command-line tools to run on Windows.

    What does this mean for PowerShell?

    While working with OSS projects, there are numerous scenarios where it’s immensely useful to drop into Bash from a PowerShell prompt. Bash support is complementary and strengthens the value of the command-line on Windows, allowing PowerShell and the PowerShell community to leverage other popular technologies.

    Can I run ALL Linux apps in WSL?

    No! WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.

    WSL does not yet support GUI desktops or applications (e.g. Gnome, KDE, etc.) Follow the Command Line Blog for updates.

    Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for hosting production services – Microsoft offers a variety of solutions for running production Linux workloads in Azure, Hyper-V, and Docker.

    What Windows SKUs is WSL included in?

    Windows Subsystem for Linux is available on the desktop version of Windows for Windows 10 Anniversary and Creators update or later.

    Beginning in the Fall Creators update WSL will be available on both the desktop and server SKUs of Windows.

    What processors does WSL support?

    WSL supports x64 and ARM CPUs.

    How do I access my C: drive?

    Mount points for hard drives on the local machine are automatically created and provide easy access to the Windows file system.

    /mnt/ /

    Example usage would be cd /mnt/c to access c:\

    How do I set up Git Credential Manager? (How do I use my Windows Git permissions in WSL?)

    Git Credential Manager enables you to authenticate a remote Git server, even if you have a complex authentication pattern like Azure Active Directory or two-factor authentication. Git Credential Manager integrates into the authentication flow for services like GitHub and, once you’re authenticated to your hosting provider, requests a new authentication token. It then stores the token securely in the Windows Credential Manager. After the first time, you can use git to talk to your hosting provider without needing to re-authenticate. It will just access the token in the Windows Credential Manager.

    To set up Git Credential Manager for use with a WSL distribution, open your distribution and enter this command:

    Now any git operation you perform within your WSL distribution will use the credential manager. If you already have credentials cached for a host, it will access them from the credential manager. If not, you’ll receive a dialog response requesting your credentials, even if you’re in a Linux console.

    How do I use a Windows file with a Linux app?

    One of the benefits of WSL is being able to access your files via both Windows and Linux apps or tools.

    WSL mounts your machine’s fixed drives under the /mnt/ folder in your Linux distros. For example, your C: drive is mounted under /mnt/c/

    Using your mounted drives, you can edit code in, for example, C:\dev\myproj\ using Visual Studio / or VS Code, and build/test that code in Linux by accessing the same files via /mnt/c/dev/myproj .

    IMPORTANT NOTE: One of the key limitations of using WSL is that directly accessing/changing files in your Linux distros’ file system using Windows apps or tools is not supported. See: Do not change Linux files using Windows apps and tools

    Are files in the Linux drive different from the mounted Windows drive?

    Files under the Linux root (i.e. / ) are controlled by WSL which mimics Linux specific behavior, including but not limited to:

    • Files which contain invalid Windows filename characters
    • Symlinks created for non-admin users
    • Changing file attributes through chmod and chown
    • File/folder case sensitivity

    Files in mounted drives are controlled by Windows and have the following behaviors:

    • Support case sensitivity
    • All permissions are set to best reflect the Windows permissions
Читайте также:  Что это за ошибка 0x80070422 windows

Why are there so many errors when I run apt-get upgrade?

Some packages use features that we haven’t implemented yet. udev , for example, isn’t supported yet and causes several apt-get upgrade errors.

To fix issues related to udev , follow the following steps:

Write the following to /usr/sbin/policy-rc.d and save your changes.

Add execute permissions to /usr/sbin/policy-rc.d

Run the following commands

How do I uninstall a WSL Distribution?

On builds prior to 1709 (16299) open a command prompt and run:

WSL distributions installed from the store can be uninstalled like any other Windows app, by right-clicking on the app tile and clicking Uninstall, or via PowerShell using the Remove-AppxPackage cmdlet).

Why does ping generate permission denied errors?

In WSL builds Properties -> Uncheck «Use legacy console»

  • Click OK
  • Why do I get «Error: 0x80040154» when I run bash.exe after upgrading Windows?

    The «Windows Subsystem for Linux» feature may be disabled during a Windows update. If this happens the Windows feature must be re-enabled. Instructions for enabling the «Windows Subsystem for Linux» feature can be found in the Installation Guide.

    How do I change the display language of WSL?

    WSL install will try to automatically change the Ubuntu locale to match the locale of your Windows install. If you do not want this behavior you can run this command to change the Ubuntu locale after install completes. You will have to relaunch bash.exe for this change to take effect.

    The below example changes to locale to en-US:

    Why do I not have internet access from WSL?

    Some users have reported issues with specific firewall applications blocking internet access in WSL. The firewalls reported are:

    1. Kaspersky
    2. AVG
    3. Avast
    4. Symantec Endpoint Protection
    5. F-Secure

    In some cases turning off the firewall allows for access. In some cases simply having the firewall installed looks to block access.

    How do I access a port from WSL in Windows?

    WSL shares the IP address of Windows, as it is running on Windows. As such you can access any ports on localhost e.g. if you had web content on port 1234 you could https://localhost:1234 into your Windows browser.

    How can I back up my WSL distros, or move them from one drive to another?

    The best way to backup or move your distros is via the export/import commands available in Windows Version 1809 and later. You can export your entire distribution to a tarball using the wsl —export command. You can then import this distro back into WSL using the wsl —import command, which can name a new drive location for the import, allowing you to backup and save states of (or move) your WSL distributions.

    Please note that traditional backup services that backup files in your AppData folders (like Windows Backup) will not corrupt your Linux files.

    Where can I provide feedback?

    You can share feedback and ask questions through multiple channels.

    If you have technical issues, or want to request new features please go to our Github issue tracker:

    If you’d like to stay up to date with the latest WSL news you can do so with:

    • Our command-line team blog
    • Twitter. Please follow @craigaloewen on Twitter to learn of news, updates, etc.
    Оцените статью