User Tools

Site Tools


other:win10wsl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:win10wsl [2022/09/09 15:38]
jypeter [Opening a terminal] Improved
other:win10wsl [2022/09/19 11:57]
jypeter [Package management] Improved
Line 238: Line 238:
     * {{ :​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 -+    * <​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% /
Line 313: Line 304:
 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)
  
Line 381: Line 355:
 ==== 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
  
Line 397: Line 372:
 There are several ways to open a default terminal: There are several ways to open a default terminal:
   * Type ''​wsl''​+''<​Enter>''​ in the (Cortana) Search field on the task bar   * Type ''​wsl''​+''<​Enter>''​ in the (Cortana) Search field 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 on ''​C:​\''​. Not a major problem, but it will use some space on ''​C:​\''​ and you will need to [[other:​win10wsl#​uninstalling_wsl_or_a_distribution|use 'wsl --unregister Ubuntu'​]] to remove this unwanted version+  * 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
     * Type ''​ubuntu''​+<​Enter>​ in the (Cortana) Search field on the task bar     * Type ''​ubuntu''​+<​Enter>​ in the (Cortana) Search field on the task bar
     * Select //Ubuntu// from the ''​Start''​ menu     * Select //Ubuntu// from the ''​Start''​ menu
Line 406: Line 381:
 == Copy/paste in the default terminal == == Copy/paste in the default terminal ==
  
-Check this [[other:​win10apps#​windows_terminal|Windows ​terminal]] section+Check this [[other:​win10apps#​windows_terminal|Windows ​Terminal]] section
  
  
Line 415: Line 390:
   * 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]])   * 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]])
  
-  * If you can't open a WSLtty terminal after upgrading from ''​WSL''​ to ''​WSL 2'',​ install the latest version of WSLtty !+  * If you can't open a ''​WSLtty'' ​terminal after upgrading from ''​WSL''​ to ''​WSL 2'',​ install the latest version of WSLtty !
 </​WRAP>​ </​WRAP>​
  
Line 428: Line 403:
 Installé correctement</​code>​ Installé correctement</​code>​
  
-  * After installing, you will get **several new ways to open a terminal**:​ +  * After installing ​WSLtty, you will get **several new ways to open a terminal**:​ 
-    * ''​WSL terminal''​ icon on the desktop+    * **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''​ => ''​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     * ''​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//)       * 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
-    * Hint: use the ''​Text''​ option to select the nice //Cascadia Code// font bundled with the [[other:​win10apps#​windows_terminal|Windows Terminal]]+    * **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 +    ​* Note: the WSLtty (non-default) settings are stored in: ''​C:​\Users\jypeter\AppData\Roaming\wsltty\config''​ 
-  *  [[https://​github.com/​mintty/​mintty/​wiki|Technical ​stuff]] (on the Mintty wiki)+  ​* You can cycle between the open WSLtty terminals with CTRL+Tab and Shift+CTRL+Tab 
 +  * Extra [[https://​github.com/​mintty/​mintty/​wiki|technical ​stuff]] (on the Mintty wiki)
  
 === The Windows Terminal === === The Windows Terminal ===
Line 465: Line 444:
     * 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''​)     * 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:
Line 480: Line 455:
 <​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.
Line 494: Line 465:
  
   * 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.LTS +Description: ​   Ubuntu ​20.04.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 Binutils2.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 ====
Line 527: Line 526:
  
  
-$ 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 |}}
Line 537: Line 536:
 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>​
Line 553: Line 555:
 ===== 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 ====
  
-[[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+=== 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]] 
 + 
 +=== What about snap ? === 
 + 
 +FIXME [[https://​snapcraft.io/​docs|Snap documentation]] 
 + 
 + 
 +=== Installing extra package managers === 
 + 
 +  * Installation:​ ''​sudo apt install aptitude synaptic''​ 
 +    * It may install lots of dependencies,​ but that's to be expected ​if no other packages have been installed yet\\ <​code>​$ sudo apt install aptitude synaptic 
 +Reading package lists... Done 
 +Building dependency tree 
 +Reading state information... Done 
 +[...] 
 +The following NEW packages will be installed:​ 
 +  adwaita-icon-theme aptitude aptitude-common at-spi2-core cpp cpp-9 fontconfig gcc-9-base 
 +[...] 
 +  x11-xserver-utils xdg-utils 
 +0 upgraded, 129 newly installed, 0 to remove and 0 not upgraded. 
 +Need to get 31.2 MB of archives. 
 +After this operation, 137 MB of additional disk space will be used
 +Do you want to continue? [Y/n] 
 +</​code>​ 
 + 
 +  * Documentation:​ 
 +    * ''​apt''​:  
 +      * EN: [[https://​www.debian.org/​doc/​manuals/​debian-faq/​pkgtools.en.html#​apt-get|apt @ Debian]]\\ [[https://​help.ubuntu.com/​community/​AptGet/​Howto|Package management with APT @ Ubuntu]] 
 +      * FR: [[https://​doc.ubuntu-fr.org/​apt-cli|apt @ ubuntu-fr]] 
 +    * ''​aptitude''​
 +      * EN: [[https://help.ubuntu.com/community/AptitudeSurvivalGuide|Aptitude Survival Guide @ Ubuntu]] 
 +      * FR: [[https://​doc.ubuntu-fr.org/​aptitude|aptitude @ ubuntu-fr]] 
 +    * ''​synaptic'':​ 
 +      * EN: [[https://​help.ubuntu.com/​community/​SynapticHowto|synaptic Howto @ Ubuntu]] 
 +      * FR: [[https://​doc.ubuntu-fr.org/​synaptic|synaptic @ ubuntu-fr]]
  
-  * Install the **aptitude** package manager: ''​apt-get install aptitude''​ 
-    * [[https://​doc.ubuntu-fr.org/​aptitude|details]] (fr) 
-  * Install the **synaptic** package manager: ''​aptitude install synaptic''​ 
-    * [[https://​doc.ubuntu-fr.org/​synaptic|details]] (fr) 
  
 +=== Some useful commands ===
  
-=== Useful commands ===+  * ''​apt update'':​ update the list of packages known by your system 
 +  * ''​apt upgrade'':​ upgrade all the packages on your system 
 +  * ''​apt search word'':​ find packages whose description contain ''​word''​ 
 +  * ''​apt install foo'':​ install the ''​foo''​ package and all its dependencies 
 +  * ''​apt show package'':​ print the detailed information of a package 
 +  * ''​apt remove foo'':​ remove the foo package from your system
  
   * ''​dpkg -l'':​ list installed packages   * ''​dpkg -l'':​ list installed packages
Line 587: Line 652:
  
 <​code>​$ dpkg -l | grep -i wsl <​code>​$ dpkg -l | grep -i wsl
-ii  ubuntu-wsl ​                     1.417.3                            ​amd64        Ubuntu on Windows tools - Windows Subsystem for Linux integration +ii  ubuntu-wsl ​                       1.450.2                           amd64        Ubuntu on Windows tools - Windows Subsystem for Linux integration 
-ii  wslu                            2.3.2-0ubuntu2~18.04.3             all          collection of utilities for the Windows 10 Linux Subsystem+ii  wslu                              2.3.6-0ubuntu2~20.04.0            ​all          collection of utilities for the Windows 10 Linux Subsystem
  
 $ dpkg -L wslu $ dpkg -L wslu
 /. /.
-/etc 
-/​etc/​profile.d 
 /usr /usr
 /usr/bin /usr/bin
Line 602: Line 665:
 /​usr/​bin/​wslvar /​usr/​bin/​wslvar
 /​usr/​bin/​wslview /​usr/​bin/​wslview
 +[...]
 +
 +$ apt show wslu
 +Package: wslu
 +Version: 2.3.6-0ubuntu2~20.04.0
 +[...]
 +Description:​ collection of utilities for the Windows 10 Linux Subsystem
 [...]</​code>​ [...]</​code>​
  
 +
 +=== Adding some useful packages ===
 +
 +There is not that much installed by default in Ubuntu, now is the time to get ready for work!
 +
 +<​code>​$ sudo apt install gcc libglu1-mesa mesa-utils x11-apps xterm xfce4-terminal emacs evince eog imagemagick nco cdo netcdf-bin ncview</​code>​
 +
 +Notes:
 +  * Some of the installed packages (''​nco cdo netcdf-bin ncview''​) are used for handling data files in //NetCDF format// may not be useful to people outside LSCE
 +  * Added lots of extra packages requires more disk space, and the size of the ''​.vhdx''​ will probably increase!
 +    * <​code>​$ ls -lh /​mnt/​d/​WSL_Distributions/​Ubuntu_custom/​ext4.vhdx
 +4.7G Sep 16 18:02 /​mnt/​d/​WSL_Distributions/​Ubuntu_custom/​ext4.vhdx</​code>​
 ==== Using an X server ==== ==== Using an X server ====
  
Line 1039: Line 1121:
   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
  
Line 1045: Line 1127:
   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 awayyou 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 ===
Line 1063: Line 1149:
 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]])
Line 1246: Line 1332:
  
   * 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]]
other/win10wsl.txt · Last modified: 2023/12/06 13:24 by jypeter