This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
other:win10wsl [2022/09/13 13:58] jypeter [Opening a terminal] Improved |
other:win10wsl [2022/11/15 14:32] jypeter Added "Work in Progress" warning at the top |
||
---|---|---|---|
Line 2: | Line 2: | ||
[[other:index#windows_10_notes|Other Windows 10 related notes]] | [[other:index#windows_10_notes|Other Windows 10 related notes]] | ||
+ | |||
+ | <WRAP center round alert 60%> | ||
+ | JYP is still working on this page! Some content may be out of date, or still related to WSL 1 | ||
+ | </WRAP> | ||
+ | |||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
Line 144: | Line 149: | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | You can skip reading this WSL //requirement// if you are installing WSL for the first time, and are therefor directly installing WSL 2 | + | You can skip reading this WSL //requirement// if you are installing WSL for the first time, and are therefore directly installing WSL 2 |
- | Come back later if you have problems | + | Come back here later (only) if you have problems |
</WRAP> | </WRAP> | ||
Line 167: | Line 172: | ||
* <code> Virtualisation activée dans le microprogramme : Oui</code> | * <code> Virtualisation activée dans le microprogramme : Oui</code> | ||
+ | === Hyper-V related information === | ||
+ | |||
+ | Miscellaneous technical links and information, in case we need this later... | ||
+ | |||
+ | * [[https://learn.microsoft.com/en-us/virtualization/|Virtualization documentation]] | ||
+ | * [[https://learn.microsoft.com/en-us/virtualization/api/|Hyper-V APIs]] | ||
+ | * ''hcsdiag list'' and ''hcsdiag kill <ID>'' | ||
===== Base installation ===== | ===== Base installation ===== | ||
Line 238: | Line 250: | ||
* {{ :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% / | ||
Line 313: | Line 316: | ||
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 380: | Line 366: | ||
==== Opening a terminal ==== | ==== Opening a terminal ==== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Having a terminal you can efficiently interact with is the basis of your future work with WSL+Ubuntu! | ||
+ | </WRAP> | ||
* Read the sub-sections below to find out the different ways to open //terminals// | * Read the sub-sections below to find out the different ways to open //terminals// | ||
Line 386: | Line 376: | ||
* 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 | ||
- | Having a terminal you can efficiently interact with is the basis of your future work with WSL+Ubuntu! You can **optionally** read the [[https://nickjanetakis.com/blog/conemu-vs-hyper-vs-terminus-vs-mobaxterm-terminator-vs-ubuntu-wsl|ConEmu vs Hyper vs Terminus vs MobaXTerm Terminator vs Ubuntu WSL]] blog if you really want more details | + | Optional reading (if you really have time): |
+ | * [[https://unix.stackexchange.com/questions/4126/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con|What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?]] | ||
+ | * [[https://nickjanetakis.com/blog/conemu-vs-hyper-vs-terminus-vs-mobaxterm-terminator-vs-ubuntu-wsl|ConEmu vs Hyper vs Terminus vs MobaXTerm Terminator vs Ubuntu WSL]] for more details about terminals | ||
=== The default terminal === | === The default terminal === | ||
Line 429: | Line 422: | ||
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 447: | Line 444: | ||
=== 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 [[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! | + | You can [[other:win10wsl#adding_useful_packages|install additional graphical terminals in the Linux installation]], 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'' package |
- | + | * ''xfce4-terminal'' package | |
- | * Install with: ''apt-get install xterm'' | + | |
- | * Start from another terminal with: ''xterm &'' | + | |
- | + | ||
- | == xfce-terminal == | + | |
- | + | ||
- | * Install with: ''apt-get install xfce4-terminal'' | + | |
- | * Start from another terminal with: ''xfce4-terminal &'' | + | |
==== Where are the files? ==== | ==== Where are the files? ==== | ||
Line 466: | Line 456: | ||
* 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 481: | Line 467: | ||
<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 495: | Line 477: | ||
* 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 ==== | ||
Line 528: | Line 538: | ||
- | $ 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 538: | Line 548: | ||
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 554: | Line 567: | ||
===== 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 588: | Line 664: | ||
<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 603: | Line 677: | ||
/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 useful packages === | ||
+ | |||
+ | There is not that much installed by default in Ubuntu, and we use ''apt insall'' to get ready for some real 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 | ||
+ | * Adding lots of extra packages requires **much more disk space**, and the size of the ''.vhdx'' will increase significantly! | ||
+ | * <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> | ||
+ | * Size of the [[other:win10wsl#creating_a_backup|backup]] after adding the extra packages: we go from 549 Mb to 1.2 Gb!\\ 1.2G Sep 19 13:52 WSL_Ubuntu_20.04.5_LTS_stdu_22-09-19.tar.gz | ||
==== Using an X server ==== | ==== Using an X server ==== | ||
Line 634: | Line 728: | ||
* FIXME **//X server// and WSL2** : check ''export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0'' in [[https://solvercube.com/how-to-install-ubuntu-20-04-on-windows-using-wsl/|How to install Ubuntu 20.04 on Windows using WSL]] | * FIXME **//X server// and WSL2** : check ''export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0'' in [[https://solvercube.com/how-to-install-ubuntu-20-04-on-windows-using-wsl/|How to install Ubuntu 20.04 on Windows using WSL]] | ||
- | |||
- | ==== Adding useful packages ==== | ||
- | |||
- | Reminder: you need to use the ''root'' account (with ''sudo -s'') in order to use the following commands | ||
- | |||
- | <code>$ apt-get install gcc libglu1-mesa mesa-utils libsm6 x11-apps | ||
- | |||
- | # Check the "Terminals started from Linux" section | ||
- | # if you need to install extra terminals | ||
- | |||
- | # Install emacs | ||
- | $ apt-get install emacs | ||
- | |||
- | # Install pdf (evince) and image (eog) viewers | ||
- | $ apt-get install evince eog | ||
- | |||
- | # Install wslu to improve the Windows<->Linux communication | ||
- | $ apt-get install wslu | ||
- | |||
- | # The packages below are useful for dealing with climate data | ||
- | # in netCDF files (and are also requirements of CLIMAF) | ||
- | $ aptitude install imagemagick nco cdo netcdf-bin ncview exiv2</code> | ||
Line 691: | Line 763: | ||
578 /mnt/h/Scratch/jyp/pkg_190221.txt</code> | 578 /mnt/h/Scratch/jyp/pkg_190221.txt</code> | ||
- | ==== Upgrading ubuntu ==== | + | ==== Upgrading Ubuntu ==== |
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | You can skip this section if you have just installed ubuntu, since you are already running the latest stable release available | + | You can skip this section if you have just installed Ubuntu, since you are already running the latest stable release available |
</WRAP> | </WRAP> | ||
- | The **updates** are for maintaining the same version of ubuntu (e.g. you go from version ''18.04.2'' to ''18.04.5''), while **upgrades** are for going from one major version to the next (e.g ''16.xx'' => ''18.xx'' => ''20.xx''). We try to only use the stable major releases, that have an even version number. | + | The **updates** are for maintaining the same version of Ubuntu (e.g. you go from version ''18.04.2'' to ''18.04.5''), while **upgrades** are for going from one major version to the next (e.g ''16.xx'' => ''18.xx'' => ''20.xx''). We try to only use the stable major releases, that have an even version number. |
- | We use the **LTS versions** (//Long Time Support//) to ensure even more stability, which means that we will get updates of a given major release for quite some time after the next major release is available, so it is not mandatory to updgrade ubuntu if you are still receiving updates for the release you use | + | We use the **LTS versions** (//Long Time Support//) to ensure even more stability, which means that we will get updates of a given major release for quite some time after the next major release is available, so it is not mandatory to upgrade Ubuntu if you are still receiving updates for the (major) release you are using |
- | There should not be any risk, but it may be a good idea to [[other:win10wsl#creating_a_backup_of_the_linux_running_in_wsl|create a backup]] of your current ubuntu before upgrading it! | + | There should not be any risk, but it may be a good idea to [[other:win10wsl#creating_a_backup_of_the_linux_running_in_wsl|create a backup]] of your current Ubuntu before upgrading it! |
Use ''sudo'' for each command below, or just become root by using ''sudo su -'' | Use ''sudo'' for each command below, or just become root by using ''sudo su -'' | ||
Line 1038: | Line 1110: | ||
* Determine the name of the current Linux installation(s) used in WSL | * Determine the name of the current Linux installation(s) used in WSL | ||
* <code>> wsl --list --verbose | * <code>> wsl --list --verbose | ||
- | NAME STATE VERSION | + | NAME STATE VERSION |
- | * Ubuntu Running 2</code> | + | * Ubuntu_custom Running 2</code> |
- | * [[other:win10wsl#rebooting_wsl|Stop WSL+Linux]] | + | * [[other:win10wsl#rebooting_wsl|Stop all running installations]] |
* <code>> wsl --shutdown | * <code>> wsl --shutdown | ||
> wsl -l -v | > wsl -l -v | ||
- | NAME STATE VERSION | + | NAME STATE VERSION |
- | * Ubuntu Stopped 2</code> | + | * Ubuntu_custom 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 (550 Mb after compression) |
* 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-10-27.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 (if you need to use it later) 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-10-27.tar |
+ | 3.3G Oct 27 18:01 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.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-10-27.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 | ||
+ | 1.2G Sep 19 13:52 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-09-19.tar.gz | ||
+ | 1.3G Oct 27 18:01 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-10-27.tar.gz</code> | ||
=== Backup of specific directories === | === Backup of specific directories === | ||
Line 1064: | Line 1142: | ||
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/WSL'' or ''c:\Scratch\your_login\WSL'') |
* <code bash>$ cd /home | * <code bash>$ cd /home | ||
$ du -sh $USER | $ du -sh $USER | ||
- | 232K <your_login> | + | 88K 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/WSL/ directory |
- | # It's a WINDOWS directory C:\Scratch\<your_login> | + | # Same directory (seen from WINDOWS) C:\Scratch\your_login\WSL\ |
- | $ tar cfz /mnt/c/Scratch/$USER/${USER}_home_`date +%y%m%d_%H%M`.tgz $USER | + | $ tar cfz /mnt/c/Scratch/$USER/WSL/${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 -ltrh /mnt/c/Scratch/your_login/WSL/${USER}_*.tgz |
- | 81K Jan 21 2020 /mnt/c/Scratch/<your_login>/<your_login>_home_200121.tgz | + | 5.0K Oct 28 16:09 /mnt/c/Scratch/your_login/WSL/stdu_home_22-10-28_1609.tgz</code> |
- | 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> | + | |
* 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]]) |