Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
other:win10wsl [2022/09/07 17:13] – [Base installation] Added screenshots of installed Ubuntu in MS Store and app list jypeter | other:win10wsl [2022/09/16 11:20] – [Package management] Started rewriting jypeter |
---|
Once you have verified that your Windows is recent enough, you should also: | Once you have verified that your Windows is recent enough, you should also: |
| |
* Your should really **install the [[other:win10apps#windows_terminal|Windows terminal]]**, because it will be one of useful the ways to open ''Ubuntu'' terminals, once ''Ubuntu'' is installed | * **Install the [[other:win10apps#windows_terminal|Windows terminal]]** |
* **Know how to use copy-paste** in: | * Once //Ubuntu// is installed, there will be additional ways to open [[other:win10wsl#opening_a_terminal|Linux terminals]] |
* a //Windows Terminal//: [[https://docs.microsoft.com/en-us/windows/terminal/selection|Selecting text in Windows Terminal]] | * **Know how to use copy-paste** in a //Windows Terminal//, a //PowerShell// or a ''cmd'' interpreter |
* an old ''cmd'' command prompt or a //PowerShell//: FIXME | * It should work more or less the same way everywhere as in a [[other:win10apps#windows_cmd_command_interpreter|cmd interpreter]] |
* It will be useful to **be able to [[other:win10config#displaying_hidden_folders_and_files_and_the_files_extension|see hidden folders and files]]** | * Follow the instructions to **be able to [[other:win10config#displaying_hidden_folders_and_files_and_the_files_extension|see hidden folders and files i n the Windows explorer]]** |
* **Have some basic knowledge of Linux**... | * **Have some basic knowledge of Linux**... |
* Get some [[other:newppl:starting#useful_documentation_for_beginners|basic Linux documentation]] if required | * Get some [[other:newppl:starting#useful_documentation_for_beginners|basic Linux documentation]] if required |
* {{ :other:ubuntu_applications.png?direct&400 |}} | * {{ :other:ubuntu_applications.png?direct&400 |}} |
| |
* Get some basic information about your new ''Ubuntu'' installation | * Get some information about your new ''Ubuntu'' installation |
* <code>stdu@sadira034:~$ lsb_release -a | * <code>$ lsb_release -d |
No LSB modules are available. | Description: Ubuntu 20.04.5 LTS</code> |
Distributor ID: Ubuntu | * [[other:win10wsl#linux_version_installed|More information]] example |
Description: Ubuntu 20.04 LTS | * Disk usage example |
Release: 20.04 | * <code>$ df -h |
Codename: focal | |
| |
stdu@sadira034:~$ uname -a | |
Linux sadira034 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux | |
| |
stdu@sadira034:~$ cat /proc/version | |
Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Fri Apr 2 22:23:49 UTC 2021 | |
| |
stdu@sadira034:~$ df -h | |
Filesystem Size Used Avail Use% Mounted on | Filesystem Size Used Avail Use% Mounted on |
/dev/sdb 251G 1.1G 238G 1% / | /dev/sdb 251G 1.1G 238G 1% / |
Description: Ubuntu 20.04.4 LTS | Description: Ubuntu 20.04.4 LTS |
Release: 20.04 | Release: 20.04 |
Codename: focal | Codename: focal</code> |
| * [[other:win10wsl#linux_version_installed|More installed version information]] |
stdu@sadira034:/usr/lib/wsl/drivers$ cat /etc/*release* | |
DISTRIB_ID=Ubuntu | |
DISTRIB_RELEASE=20.04 | |
DISTRIB_CODENAME=focal | |
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS" | |
NAME="Ubuntu" | |
VERSION="20.04.4 LTS (Focal Fossa)" | |
ID=ubuntu | |
ID_LIKE=debian | |
PRETTY_NAME="Ubuntu 20.04.4 LTS" | |
VERSION_ID="20.04" | |
HOME_URL="https://www.ubuntu.com/" | |
SUPPORT_URL="https://help.ubuntu.com/" | |
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" | |
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" | |
VERSION_CODENAME=focal | |
UBUNTU_CODENAME=focal</code> | |
* [[other:win10wsl#updating_wsl_and_ubuntu|More details about updating WSL and/or Ubuntu]] (you can safely skip this for now) | * [[other:win10wsl#updating_wsl_and_ubuntu|More details about updating WSL and/or Ubuntu]] (you can safely skip this for now) |
| |
==== Opening a terminal ==== | ==== Opening a terminal ==== |
| |
* Check the next sections to find out the different ways to open terminals | * Read the sub-sections below to find out the different ways to open //terminals// |
* Opening the first terminal will start WSL+Ubuntu | * Opening the first terminal (after opening a regular Windows session) will start WSL+Ubuntu |
| * The next terminals will open instantly (because Ubuntu is already running) |
* Closing all terminals will not stop WSL+Ubuntu. Read the [[#rebooting_wsl|rebooting WSL section]] if you need a clean start of WSL without rebooting Windows | * Closing all terminals will not stop WSL+Ubuntu. Read the [[#rebooting_wsl|rebooting WSL section]] if you need a clean start of WSL without rebooting Windows |
| |
=== The default terminal === | === The default terminal === |
| |
The **Default WSL+Ubuntu //terminal//** is basically a //bash// shell running inside a regular Windows ''cmd'' text console. You do not need to have an //X server// running to use it! | <WRAP center round tip 60%> |
| The default terminal will be available without installing extra applications like ''WSLtty'' or the ''Windows Terminal''. It will work for testing WSL, but it is **not recommended** if you want to work comfortably |
| </WRAP> |
| |
| The **Default WSL+Ubuntu //terminal//** is basically a //bash// shell running inside a regular Windows ''cmd'' text console. You do not need to have an [[other:x_conf#using_an_x_server_on_windows|X server]] running to use it! |
| |
There are several ways to open a default terminal: | There are several ways to open a default terminal: |
* Select //Ubuntu// from the ''Start'' menu | * Type ''wsl''+''<Enter>'' in the (Cortana) Search field on the task bar |
* Click on the //Ubuntu// icon on the task bar | * The other ways listed below **will only work as supposed if you have not [[other:win10wsl#restoring_or_relocating_a_linux_installation|restored or relocated a Linux installation]]!**\\ If you are using a restored/relocated installation, this will trigger a re-installation of the default Ubuntu on ''C:\''. Not a major problem, but it will use some unwanted space on ''C:\'' and you will need to [[other:win10wsl#uninstalling_wsl_or_a_distribution|use 'wsl --unregister Ubuntu']] to remove this unwanted version |
* if you don't have a //Ubuntu// icon on the task bar yet: right-click on the //Ubuntu// icon (in the ''Start'' menu) -> More -> Pin to the task bar | * Type ''ubuntu''+<Enter> in the (Cortana) Search field on the task bar |
* to open more terminals: right-click on the //Ubuntu// icon on the task bar -> Ubuntu | * Select //Ubuntu// from the ''Start'' menu |
* Type ''ubuntu''+<Enter> or ''wsl''+''<Enter>'' in the (Cortana) Search field on the task bar | * Click on the //Ubuntu// icon on the task bar |
| * if you don't have a //Ubuntu// icon on the task bar yet: right-click on the //Ubuntu// icon (in the ''Start'' menu) -> More -> Pin to the task bar |
| * to open more terminals: right-click on the //Ubuntu// icon on the task bar -> Ubuntu |
| |
== Copy/paste in the default terminal == | == Copy/paste in the default terminal == |
| |
Follow the steps in [[https://blogs.msdn.microsoft.com/commandline/2018/04/13/copy-and-paste-arrives-for-linuxwsl-consoles/|Copy and Paste arrives for Linux/WSL Consoles]] and you will then be able to **copy/paste by using ''Shift+Ctrl+C/V''** | Check this [[other:win10apps#windows_terminal|Windows Terminal]] section |
| |
* The //QuickEdit mode// should already be selected by default and you can also: | |
* **select** text with the left mouse button | |
* **paste** the selected text with the right mouse button (click **twice** after a new selection) | |
* Use ''Alt''+''<Enter>'' to toggle the terminal to full screen (maybe more useful options [[https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/mt427362(v=ws.11)|here?]]) | |
| |
=== The WSLtty terminal === | === The WSLtty terminal === |
| |
<note tip> | <WRAP center round tip 60%> |
* This is the recommended (by JYP) option for now | |
| |
* If you can't open a terminal after Windows upgrades from WSL to WSL v2, get and install the latest version of WSLtty ! | * This is **the recommended (by JYP) option for now**, until we can use regular Linux select-copy/paste in the Windows Terminal ([[https://github.com/microsoft/terminal/issues/7646|Feature request: add xterm-style select/copy/paste options]]) |
</note> | |
| |
[[https://github.com/mintty/wsltty|WSLtty]] allows you to use the efficient //Mintty// as a terminal for WSL. **You do not need to have an //X server// running to use it!** | * If you can't open a ''WSLtty'' terminal after upgrading from ''WSL'' to ''WSL 2'', install the latest version of WSLtty ! |
| </WRAP> |
| |
* Download and execute the latest [[https://github.com/mintty/wsltty/releases|64bit installer]] (the most recent ''wsltty-*-install-x86_64.exe'' file) | |
* After installing, you will get several ways to open a terminal: | |
* Double-click on the ''WSL terminal'' icon on the desktop | [[https://github.com/mintty/wsltty|WSLtty]] allows you to use the efficient //Mintty// as a terminal for WSL. **You do not need to have an [[other:x_conf#using_an_x_server_on_windows|X server]] running to use it!** |
* ''U''=>''Ubuntu terminal'' and ''W''=>''WSL Terminal'' in the ''Start'' menu | |
* There is also a ''W''=>''WSLtty'' folder, than you don't really need | * Use [[https://github.com/mintty/wsltty#windows-package-manager|winget]] (in a PowerShell) to install WSLtty |
| * <code>PS C:\Users\your_login> winget install wsltty |
| Trouvé WSLtty [Mintty.WSLtty] Version 3.6.0 |
| [...] |
| Installé correctement</code> |
| |
| * After installing WSLtty, you will get **several new ways to open a terminal**: |
| * **A ''WSL terminal'' icon on the desktop, that will be //The Way to open a terminal//** |
| * ''Start'' => ''U'' => ''Ubuntu terminal'' (or ''Ubuntu_custom terminal'' or something similar if you have [[other:win10wsl#restoring_or_relocating_a_linux_installation|restored/relocated a Linux installation]]) |
| * ''Start'' => ''W'' => ''WSL Terminal'' in the ''Start'' menu |
| * There is also a ''W'' => ''WSLtty'' folder, than you probably will not need (more details in [[https://github.com/mintty/wsltty#configuration|Configuration]]), except possibly ''configure WSL shortcuts'' (//run after adding or removing WSL distributions, in order to create the respective set of shortcuts in the Start menu//) |
* Open a terminal and right-click in it to check the available options | * Open a terminal and right-click in it to check the available options |
| * **Recommended //text// options**: |
| * use the ''Text'' option to select the nice //Cascadia Code// font bundled with the [[other:win10apps#windows_terminal|Windows Terminal]] |
| * if you don't automatically get the ''en_US.UTF8'' localization in WSLtty when trying to [[other:win10wsl#specifying_a_correct_system_language|specify a correct system language]], explicitly force //Locale//=''en_US'' and //Character set//=''UTF-8'' in the text options |
| * {{ :other:wsltty_text_options.png?direct&250 |}} |
* You can access even more options with CTRL+right-click | * You can access even more options with CTRL+right-click |
* You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab | * You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab |
* [[https://github.com/mintty/mintty/wiki|Technical stuff]] (on the Mintty wiki) | * Extra [[https://github.com/mintty/mintty/wiki|technical stuff]] (on the Mintty wiki) |
| |
=== The new Windows Terminal === | |
| |
Microsoft is working on a powerful replacement of the old ''cmd'' terminal! Check [[https://github.com/microsoft/terminal|Windows Terminal, Console and Command-Line @ github]] | === The Windows Terminal === |
| |
Note: the //Windows Terminal// looks really promising, but will be nice when there is a GUI for editing the options (rather the editing a //json// file with a text editor...) and a way to select //xterm-style// copy-pasting. See [[https://github.com/microsoft/terminal/issues/7646|Feature request: add xterm-style select/copy/paste options]] | The [[other:win10apps#windows_terminal|Windows Terminal]] is really nice and powerful, and will become the recommended (by JYP) option as soon as we can use regular Linux select-copy/paste ([[https://github.com/microsoft/terminal/issues/7646|Feature request: add xterm-style select/copy/paste options]]) |
| |
* [[https://aka.ms/terminal|Getting the Windows Terminal from the Microsoft Store]] | |
* [[https://docs.microsoft.com/en-us/windows/terminal/|Documentation]] | |
| |
=== Terminals started from Linux === | === Terminals started from Linux === |
| |
You can install additional //graphical// terminals inside the Linux running in WSL, but **you will need to have a running //X server// if you want to open them**. In these terminals, the //usual// Linux copy/paste rules will apply! | You can install additional //graphical// terminals inside the Linux running in WSL, but **you will need to have a running [[other:x_conf#using_an_x_server_on_windows|X server]] if you want to open them**. In these terminals, the //usual// Linux copy/paste rules will apply! |
| |
== xterm == | == xterm == |
* Start from another terminal with: ''xfce4-terminal &'' | * Start from another terminal with: ''xfce4-terminal &'' |
| |
==== Location of the files ==== | ==== Where are the files? ==== |
| |
You can optionally read the detailed [[https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/|WSL File System Support]] page if you want to (try to) understand how things work and how both systems can share files. | === Accessing Linux files from the Windows Explorer === |
| |
=== Linux files seen from Windows === | * You can access the Linux files in ''/'' from Windows by opening the //virtual// ''\\wsl$'' path in the Windows explorer |
| |
* You can access the Linux files in ''/'' from Windows by opening the //virtual// ''\\wsl$'' path in the Windows explorer (since [[https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-18342|Windows build 18342]]) | |
* Your Linux //home// directory is located in ''\\wsl$\Ubuntu\home\<your_login>'' | * Your Linux //home// directory is located in ''\\wsl$\Ubuntu\home\<your_login>'' |
| * There will be some content in ''\\wsl$'' only if a Linux installation is running (i.e. it shows as //Running// in ''wsl -l -v'') |
| * It's useful to [[[other:win10config#local_linux_folders|create a shortcut to wsl$ on the desktop]] |
| |
* The content of the Ubuntu ''/'' directory is actually located in the following //hidden// sub-directory of the user's Windows //home// directory: ''C:\Users\<your_login>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs'' | === Accessing Windows files from Linux === |
| |
<note important>[[https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/|Do not change Linux files in '/' from Windows!]] (it's safe **only** if you use the ''\\wsl$'' path) | <WRAP center round tip 60%> |
| When you are in a Windows //explorer// window, you can directly open a Linux terminal in a specific directory by holding Shift and right-clicking on a directory and selecting //Ouvrir l'interpréteur de commandes Linux ici// (//Open the Linux command line here//?) in the context menu.</WRAP> |
If you need to easily update files from both Linux and Windows, put them in a regular Windows directory (not in the hidden directory mentioned above, where the Linux system is installed)</note> | |
| |
=== Windows files seen from Linux === | |
| |
Note: When you are in an explorer window, you can open a Windows terminal with Linux by holding Shift and right-clicking on a directory and choosing Linux in the context menu. | |
| |
The Windows partitions are mounted under ''/mnt'' in Linux: | The Windows partitions are mounted under ''/mnt'' in Linux: |
<code>$ df -h | <code>$ df -h |
Filesystem Size Used Avail Use% Mounted on | Filesystem Size Used Avail Use% Mounted on |
rootfs 111G 30G 82G 27% / | /dev/sdb 251G 1.5G 237G 1% / |
none 111G 30G 82G 27% /dev | [...] |
none 111G 30G 82G 27% /run | C:\ 472G 121G 351G 26% /mnt/c |
none 111G 30G 82G 27% /run/lock | D:\ 480G 4.2G 476G 1% /mnt/d</code> |
none 111G 30G 82G 27% /run/shm | |
none 111G 30G 82G 27% /run/user | |
C: 111G 30G 82G 27% /mnt/c | |
H: 366G 138M 366G 1% /mnt/h</code> | |
| |
Read the [[#mounting_disks_and_network_drives|Mounting disks and network drives]] section if you want to access remote server disks on your local network, or just want to access USB disks/sticks on your local computer. | Read the [[#mounting_disks_and_network_drives|Mounting disks and network drives]] section if you want to access remote server disks on your local network, or just want to access USB disks/sticks on your local computer. |
| |
* The ''wslpath'' command can be used to make Windows<->Linux path conversion | * The ''wslpath'' command can be used to make Windows<->Linux path conversion |
| * FIXME More technical WSL disks information (move the disk technical information to the advanced usage section, and link to it) |
==== Linux version installed ==== | ==== Linux version installed ==== |
| |
| You can use the following commands to get some information about WSL and the currently installed Linux |
| |
<code>$ date | <code>$ date |
Thu Feb 20 11:18:57 CET 2020 | Tue Sep 13 16:48:10 CEST 2022 |
| |
| $ env | grep WSL |
| WSL_DISTRO_NAME=Ubuntu_custom |
| WSL_INTEROP=/run/WSL/12_interop |
| WSL_GUEST_IP=192.168.113.203 |
| WSLENV= |
| WSL_HOST_IP=192.168.112.1 |
| |
$ lsb_release -a | $ lsb_release -a |
No LSB modules are available. | No LSB modules are available. |
Distributor ID: Ubuntu | Distributor ID: Ubuntu |
Description: Ubuntu 18.04.4 LTS | Description: Ubuntu 20.04.5 LTS |
Release: 18.04 | Release: 20.04 |
Codename: bionic | Codename: focal |
| |
$ cat /proc/version | $ cat /proc/version |
Linux version 4.4.0-18362-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #476-Microsoft Fri Nov 01 16:53:00 PST 2019 | Linux version 5.10.102.1-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Wed Mar 2 00:30:59 UTC 2022 |
| |
$ uname -a | $ uname -a |
Linux some_machine_name 4.4.0-18362-Microsoft #476-Microsoft Fri Nov 01 16:53:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux</code> | Linux sadira034 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux |
| |
| $ cat /etc/*release* |
| DISTRIB_ID=Ubuntu |
| DISTRIB_RELEASE=20.04 |
| DISTRIB_CODENAME=focal |
| DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS" |
| NAME="Ubuntu" |
| VERSION="20.04.5 LTS (Focal Fossa)" |
| ID=ubuntu |
| ID_LIKE=debian |
| PRETTY_NAME="Ubuntu 20.04.5 LTS" |
| VERSION_ID="20.04" |
| HOME_URL="https://www.ubuntu.com/" |
| SUPPORT_URL="https://help.ubuntu.com/" |
| BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" |
| PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" |
| VERSION_CODENAME=focal |
| UBUNTU_CODENAME=focal</code> |
| |
==== Ubuntu packages installed ==== | ==== Ubuntu packages installed ==== |
| |
| |
$ dpkg --list > /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_`date +"%y-%m-%d"`.txt | $ dpkg --list > /mnt/c/Scratch/your_login/Ubuntu_Installed_List_`date +"%y-%m-%d"`.txt |
$ wc -l /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_*.txt | $ wc -l /mnt/c/Scratch/your_login/Ubuntu_Installed_List_*.txt |
642 /mnt/c/Scratch/jypeter/Ubuntu_Installed_List_22-08-29.txt</code> | 642 /mnt/c/Scratch/your_login/Ubuntu_Installed_List_22-08-29.txt</code> |
| |
Full (example) list of installed packages: {{ :other:ubuntu_installed_list_22-08-29.txt |}} | Full (example) list of installed packages: {{ :other:ubuntu_installed_list_22-08-29.txt |}} |
Use the following to update your ubuntu installation: | Use the following to update your ubuntu installation: |
| |
<code>$ sudo -s | ''$ sudo apt update && sudo apt upgrade'' |
| |
| or <code>$ sudo -s |
$ apt-get update | $ apt-get update |
$ apt-get upgrade</code> | $ apt-get upgrade</code> |
===== Getting ready for some real work ===== | ===== Getting ready for some real work ===== |
| |
<note important>We often assume below that you are using the **root** account (''sudo -s''), or ''sudo'' when executing the ''apt*'' installation commands, and othe admin commands</note> | <note>We often assume below that you are using the **root** account (with ''sudo -s'', or ''sudo'') when executing the ''apt*'' installation commands, and other //admin// commands</note> |
| |
==== Specifying correctly the display language ==== | ==== Create a backup before starting ==== |
| |
WSL will automatically try to use in the terminals the same language as the one used by the Windows 10 computer ([[https://docs.microsoft.com/en-us/windows/wsl/troubleshooting#changing-the-display-language|ref]]), but this could lead later to some difficult to debug **side-effects** when you connect to remote Linux servers (e.g. the ''sort'' command may give different results !). | Nothing will go wrong, but it does not hurt to [[other:win10wsl#backup_of_a_full_linux_installation|save an image of your full installation]], in case you want to try some really different settings later. |
| ==== Specifying a correct system language ==== |
| |
It is **safer** to force the system to use a //standard// English version | WSL will automatically try to use in the terminals the same language as the one used by the Windows computer, but this could lead later to some difficult to debug **side-effects** when you connect to remote Linux servers (e.g. the ''sort'' command may give different results !). |
| |
| It is **safer** to [[https://docs.microsoft.com/en-us/windows/wsl/troubleshooting#changing-the-display-language|force the Linux installation to use a standard English localization]]. The ''update-locale'' command will change the content of the ''/etc/default/locale'' file |
| |
<code>$ sudo update-locale LANG=en_US.UTF8 | <code>$ sudo update-locale LANG=en_US.UTF8 |
$ echo $LANG | $ echo $LANG |
en_US.UTF8 | en_US.UTF8 |
| |
| $ locale -v |
| LANG=en_US.UTF8 |
| LANGUAGE= |
| LC_CTYPE="en_US.UTF8" |
| [...] |
| LC_ALL= |
</code> | </code> |
| |
| After updating the system //localization// (and possibly restarting ''wsl'' with ''%%wsl --shutdown%%''), open the [[other:win10wsl#opening_a_terminal|available terminals]] and type ''echo $LANG'' in order to check that are indeed getting ''en_US.UTF8'' |
| |
| If you are still not getting ''en_US.UTF8'' in some terminals (e.g. you are still getting ''C.UTF-8''), you can check if you can override the //localization// options in the terminals settings. Check the [[other:win10wsl#the_wsltty_terminal|Text options of the WSLtty terminals]] |
| |
| |
| |
==== Package management ==== | ==== Package management ==== |
| |
| === How does it work ? === |
| |
| * **Ubuntu applications** are distributed through package files in **//Debian// format** (''.deb'' files) that are found in [[https://help.ubuntu.com/community/Applications#Software_repositories|software repositories]] |
| |
| * High level package management tools such as ''aptitude'' or ''synaptic'' rely on ''apt'' which, itself, relies on ''dpkg'' to manage the packages in the system |
| * The ''apt'' tool merges functionality of ''apt-get'' and ''apt-cache'' and by default has a fancier colored output format, making it more pleasant for humans. For usage in scripts or advanced use cases, ''apt-get'' is still preferable or needed |
| * ''apt*'' tools and ''dpkg'' are pre-installed on Ubuntu |
| * [[https://www.debian.org/doc/manuals/debian-faq/pkgtools.en.html#aptitude|aptitude]] can be used on the command-line or through a text-based interface. |
| * You do not need to have an [[other:x_conf|X server]] running to use ''aptitude'', therefore aptitude can be used in the early stages of a Linux installation, or on a remote Linux computer |
| * [[https://www.debian.org/doc/manuals/debian-faq/pkgtools.en.html#synaptic|synaptic]] is a graphical package manager |
| * You need to have an [[other:x_conf|X server]] running in order to use it |
| |
| * All the details can be found in [[https://www.debian.org/doc/manuals/debian-faq/pkgtools.en.html|The Debian package management tools]] |
| |
[[https://www.howtogeek.com/63997/how-to-install-programs-in-ubuntu-in-the-command-line/|apt-get tutorial]] if you are more used to Fedora/RedHat ''yum''/''dnf'' and //rpm// packages | [[https://www.howtogeek.com/63997/how-to-install-programs-in-ubuntu-in-the-command-line/|apt-get tutorial]] if you are more used to Fedora/RedHat ''yum''/''dnf'' and //rpm// packages |
NAME STATE VERSION | NAME STATE VERSION |
* Ubuntu Running 2</code> | * Ubuntu Running 2</code> |
* [[other:win10wsl#rebooting_wsl|Stop WSL+Linux]] | * [[other:win10wsl#rebooting_wsl|Stop all running installations]] |
* <code>> wsl --shutdown | * <code>> wsl --shutdown |
| |
NAME STATE VERSION | NAME STATE VERSION |
* Ubuntu Stopped 2</code> | * Ubuntu Stopped 2</code> |
| * ... or stop just the specific installation that you want to save:\\ ''%%> wsl --terminate Ubuntu_custom%%'' |
| |
* Export the specified Linux installation to a //tar// file: | * Export the specified Linux installation to a //tar// file: |
* You should export to a directory or external disk where you have //enough// space\\ e.g. The tar file for a [[other:win10wsl#base_installation|newly installed and updated]] //Ubuntu 20.04.5 LTS// is ~1.4 Gb | * You should export to a directory or external disk where you have //enough// space\\ e.g. The tar file for a [[other:win10wsl#base_installation|newly installed and updated]] //Ubuntu 20.04.5 LTS// is ~1.4 Gb |
* You should use a detailed enough file name for the tar file\\ e.g. WSL_<Linux_Distribution>_<Distribution_Version>_<User>_<Date>.tar | * You should use a detailed enough file name for the tar file\\ e.g. WSL_<Linux_Distribution>_<Distribution_Version>_<User>_<Date>.tar |
* Example: ''%%wsl --export Ubuntu C:\Scratch\<your_login>\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar%%'' | * Example: ''%%wsl --export Ubuntu C:\Scratch\your_login\WSL\WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar%%'' |
| |
* If you are not going to use the backup tar file right away, you can optionally compress it in order to save some space | * You can (probably) save a lot of space by compressing the backup |
* <code>$ ls -lh /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | * It is not documented (yet), but the [[https://github.com/MicrosoftDocs/WSL/issues/1607|wsl --import]] command can directly import ''tar.gz'' files! |
1.4G Aug 29 17:49 /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | * <code>$ ls -lh /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar |
| 1.4G Aug 29 17:49 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar |
| |
$ gzip /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar | $ gzip /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar |
| |
$ ls -lh /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz | $ ls -lh /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_* |
549M Aug 29 17:49 /mnt/c/Scratch/<your_login>/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz</code> | 549M Aug 29 17:49 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.tar.gz |
| 548M Sep 14 16:18 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-09-14.tar.gz</code> |
| |
=== Backup of specific directories === | === Backup of specific directories === |
You can also just create backups of specific directories: | You can also just create backups of specific directories: |
| |
* Your Linux //home// directory (''/home/<your_login>/''), or some specific sub-directories of the //Ubuntu// running in WSL (sub-directories of ''/''): the best way to save them is probably to **create a //tar// file from Linux**, and put this //tar// file in a specific Windows //WSL backup folder// (we will use below the directory ''/mnt/c/Scratch/<your_login>'' or ''c:\Scratch\<your_login>'') | * Your Linux //home// directory (''/home/your_login/''), or some specific sub-directories of the //Ubuntu// running in WSL (sub-directories of ''/''): the best way to save them is probably to **create a //tar// file from Linux**, and put this //tar// file in a specific Windows //WSL backup folder// (we will use below the directory ''/mnt/c/Scratch/your_login'' or ''c:\Scratch\your_login'') |
* <code bash>$ cd /home | * <code bash>$ cd /home |
| |
$ du -sh $USER | $ du -sh $USER |
232K <your_login> | 232K your_login |
| |
# We assume below that there is an existing /mnt/c/Scratch/<your_login>/ directory | # We assume below that there is an existing /mnt/c/Scratch/your_login/ directory |
# It's a WINDOWS directory C:\Scratch\<your_login> | # It's a WINDOWS directory C:\Scratch\your_login |
$ tar cfz /mnt/c/Scratch/$USER/${USER}_home_`date +%y%m%d_%H%M`.tgz $USER | $ tar cfz /mnt/c/Scratch/$USER/${USER}_home_`date +%y%m%d_%H%M`.tgz $USER |
| |
# Check the size of the new (and existing old) backup(s) | # Check the size of the new (and existing old) backup(s) |
$ ls -ltr /mnt/c/Scratch/$USER/${USER}_*.tgz | $ ls -ltr /mnt/c/Scratch/$USER/${USER}_*.tgz |
81K Jan 21 2020 /mnt/c/Scratch/<your_login>/<your_login>_home_200121.tgz | 81K Jan 21 2020 /mnt/c/Scratch/your_login/your_login_home_200121.tgz |
93K Aug 22 2020 /mnt/c/Scratch/<your_login>/<your_login>_home_200822_1151.tgz | 93K Aug 22 2020 /mnt/c/Scratch/your_login/your_login_home_200822_1151.tgz |
95K Feb 24 12:09 /mnt/c/Scratch/<your_login>/<your_login>_home_210224_1209.tgz</code> | 95K Feb 24 12:09 /mnt/c/Scratch/your_login/your_login_home_210224_1209.tgz</code> |
| |
* Regular Windows folders where you store data used by WSL: you can use ''tar'' in a Linux terminal, as above, or use any usual way of backing up Windows files (drag and drop, some specific [[other:win10apps#backup_software|backup software]]) | * Regular Windows folders where you store data used by WSL: you can use ''tar'' in a Linux terminal, as above, or use any usual way of backing up Windows files (drag and drop, some specific [[other:win10apps#backup_software|backup software]]) |
| |
* Determining from **inside** the running Linux if you are using WSL (or another type of virtual machine)\\ <code>$ systemd-detect-virt | * Determining from **inside** the running Linux if you are using WSL (or another type of virtual machine)\\ <code>$ systemd-detect-virt |
wsl</code> | wsl |
| |
| $ env | grep -i wsl |
| WSL_DISTRO_NAME=Ubuntu |
| WSLENV= |
| </code> |
| |
===== Other WSL resources and links ===== | ===== Other WSL resources and links ===== |
| |
| * Possibly useful things to sort |
| * [[https://docs.microsoft.com/en-us/windows/wsl/networking|Accessing network applications with WSL]] |
| * [[https://docs.microsoft.com/en-us/windows/wsl/faq#how-do-i-run-an-openssh-server-|How do I run an OpenSSH server?]] |
| |
* [[https://docs.microsoft.com/en-us/windows/wsl/release-notes|Release Notes for Windows Subsystem for Linux]] | * [[https://docs.microsoft.com/en-us/windows/wsl/release-notes|Release Notes for Windows Subsystem for Linux]] |