This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:win10wsl [2022/09/15 14:13] jypeter [Opening a terminal] Improved the WSLtty section |
other:win10wsl [2022/10/28 14:04] jypeter [Creating a backup] |
||
---|---|---|---|
Line 144: | Line 144: | ||
<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 167: | ||
* <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 414: | Line 421: | ||
* {{ :other:wsltty_text_options.png?direct&250 |}} | * {{ :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'' |
+ | * 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) | * Extra [[https://github.com/mintty/mintty/wiki|technical stuff]] (on the Mintty wiki) | ||
Line 424: | Line 432: | ||
=== 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 579: | Line 580: | ||
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'' | 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 getting ''C.UTF-8''), you can check if you can override the options | + | 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]] |
Line 585: | Line 586: | ||
==== 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 ? === |
- | * Install the **aptitude** package manager: ''apt-get install aptitude'' | + | * **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]] |
- | * [[https://doc.ubuntu-fr.org/aptitude|details]] (fr) | + | |
- | * Install the **synaptic** package manager: ''aptitude install synaptic'' | + | |
- | * [[https://doc.ubuntu-fr.org/synaptic|details]] (fr) | + | |
+ | * 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 | ||
- | === Useful commands === | + | * 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]] | ||
+ | |||
+ | |||
+ | === Some 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 603: | 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 618: | 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 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 649: | Line 716: | ||
* 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 706: | Line 751: | ||
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 1053: | Line 1098: | ||
* 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 all running installations]] | * [[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%%'' | * ... or stop just the specific installation that you want to save:\\ ''%%> wsl --terminate Ubuntu_custom%%'' | ||
Line 1066: | Line 1111: | ||
* 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-10-27.tar%%'' |
* You can (probably) save a lot of space by compressing the backup | * You can (probably) save a lot of space by compressing the backup | ||
- | * It is not documented (yet), but the [[https://github.com/MicrosoftDocs/WSL/issues/1607|wsl --import]] command can directly import ''tar.gz'' files! | + | * 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! |
- | * <code>$ ls -lh /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 |
- | 1.4G Aug 29 17:49 /mnt/c/Scratch/your_login/WSL/WSL_Ubuntu_20.04.5_LTS_stdu_22-08-29.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_* | $ 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 | 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> | + | 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 === |