Ceci est une ancienne révision du document !
Table des matières
Premiers pas
Installation
- Sous PowerShell (Admin) :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Sous PowerShell (Admin) :
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
- Installer la distribution Linux le Windows Store : https://docs.microsoft.com/en-us/windows/wsl/install-manual
- Lancer l'installation de la distribution depuis le Windows Store en cliquant sur Lancer.
- Vérifier la version de WSL utilisé :
wsl -l -v
Rendu :
NAME STATE VERSION * Ubuntu Stopped 1
Ici, on utilise la version 1.
- Passage à la version 2 :
wsl --set-version Ubuntu 2
Le message doit s'afficher :
La conversion est en cours. Cette opération peut prendre quelques minutes... Pour plus d’informations sur les différences de clés avec WSL 2, visitez https://aka.ms/wsl2 La conversion est terminée.
Si le message d'erreur apparaît :
WSL 2 nécessite une mise à jour de son composant noyau. Pour plus d’informations, visitez https://aka.ms/wsl2kernel
Installer la mise à jour de WSL 2 puis relancer la commande de changement de version.
- Utiliser la défaut la version 2 :
wsl --set-default-version 2
Install WSL 2 on Windows 10 Archive du 13/06/2019 le 07/07/2020
Lancement
La ligne de commande est identique à celle de la distribution.
- Lancement
wsl ~ -d Ubuntu
- Disques dur
Ils sont dans /mnt/
.
- Première utilisation
apt-get update
Distribution Gentoo
Installation
- Télécharger le stage 3.
- Décompresser le
.xz
mais garder le.tar
. wsl.exe --import "Gentoo" gentoo_folder stage3-amd64.tar --version 2
- Créer le fichier
c:\Users\YOURUSERNAME\.wslconfig
- /mnt/c/Users/YOURUSERNAME/.wslconfig
[wsl2] #kernel= memory=8GB #processors= #swap=8GB #swapFile= localhostForwarding=true
- Lancer la console Gentoo :
wsl ~ -d Gentoo
Configuration
Créer / remplacer les fichiers
- /etc/wsl.conf
[network] generateResolvConf = false [automount] enabled = true options = "metadata" mountFsTab = false
Vérifier si le fichier /etc/resolv.conf
est un lien symbolique ou un fichier. Si c'est un lien symbolique, vérifier son contenu et supprimer le lien. Puis éditer le fichier avec le contenu ci-dessous :
- /etc/resolv.conf
nameserver 8.8.8.8 nameserver 8.8.4.4
- Quitter la console Gentoo :
exit
- Redémarrer la VM :
wsl --shutdown
puiswsl ~ -d Gentoo
- Vérifier que la connexion Internet fonctionne :
ping 8.8.8.8
- Vérifier que le DNS fonctionne :
ping www.lemonde.fr
- /etc/portage/make.conf
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. COMMON_FLAGS="-march=native -O0 -ggdb2 -g2 -pipe -fno-omit-frame-pointer" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" FFLAGS="${COMMON_FLAGS}" LDFLAGS="-Wl,--as-needed -Wl,-O0" USE="-X -gtk -nls -doc -rdoc -alsa gmp threads openmp" VIDEO_CARDS="dummy" FEATURES="-ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox splitdebug noclean compressdebug" ACCEPT_KEYWORDS="~amd64" ACCEPT_LICENSE="*" MAKEOPTS="-j8" EMERGE_DEFAULT_OPTS="-j8 --load-average=8" CHOST="x86_64-pc-linux-gnu" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby30" # NOTE: This stage was built with the bindist Use flag enabled PORTDIR="/var/db/repos/gentoo" DISTDIR="/var/cache/distfiles" PKGDIR="/var/cache/binpkgs" # This sets the language of build output to English. # Please keep this setting intact when reporting bugs. LC_MESSAGES=C
Running Gentoo on Window 10 WSL 2 Archive du 11/2020 le 10/07/2020
Configure des options de compilation
- /etc/portage/package.use
sys-devel/llvm gold sys-devel/gdb source-highlight net-libs/nodejs system-icu sys-devel/clang-runtime -abi_x86_32 sys-libs/libomp -abi_x86_32 dev-lang/php curl
- /etc/portage/package.env
sys-devel/clang-runtime prod sys-devel/clang-common prod sys-devel/clang prod sys-devel/llvm-common prod sys-devel/llvm prod sys-devel/llvmgold prod sys-libs/compiler-rt prod sys-libs/compiler-rt-sanitizers prod sys-libs/libomp prod sys-devel/gcc prod
- /etc/portage/env/prod
COMMON_FLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer" CFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer" CXXFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer" FCFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer" FFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer" LDFLAGS="${LDFLAGS} -Wl,-O3"
Installation des entêtes du noyau
Exécuter uname -r
pour connaître le numéro de version. Ici : 5.4.72-microsoft-standard-WSL2
.
Récupérer alors les sources associées.
cd /usr/src/ wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-5.4.72.tar.gz tar xvzf linux-msft-5.4.72.tar.gz mv WSL2-Linux-Kernel-linux-msft-5.4.72 linux cd linux cp /proc/config.gz . gunzip config.gz mv config .config
portage
proposera toujours d'installer gentoo-sources
. Il suffira de ne jamais faire de eselect kernel set X
.
Mettre à jour le système la première fois
emerge --sync emerge -1va portage emerge -va eix gentoolkit emerge -1 cpuid2cpuflags -va echo "*/* $(cpuid2cpuflags)" >> /etc/portage/package.use emerge -C cpuid2cpuflags eselect profile list eselect set default/linux/amd64/xx.x/systemd sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass eix-update emerge --oneshot --deep -va sys-devel/gcc gcc-config --list-profiles gcc-config 2 source /etc/profile emerge --oneshot --usepkg=n -va sys-devel/libtool binutils binutils-config -l binutils-config 2 source /etc/profile # Update all packages with the newly built compiler # This will take a long time, ~1-5 hours emerge --oneshot --emptytree --deep --keep-going -va @world emerge --oneshot --deep --keep-going -va @preserved-rebuild emerge --ask --depclean
Mise à jour
Noyau
Arrêter wsl. Faire exit
depuis WSL. Faire wsl --shutdown
pour arrêter les machines virtuelles.
Réinstaller la mise à jour du noyau WSL2.
Relancer la machine virtuelle avec wsl ~ -d Gentoo
.
Mettre à jour les entêtes conformément au paragraphe Installation des entêtes du noyau.
Paquets
emerge --sync sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass eix-update # Update rapide emerge -1vuDaN --keep-going @world # Update long mais plus complet et gérant mieux les conflits. emerge --backtrace=30 --update --deep --newuse --keep-going -va --autounmask-keep-masks --with-bdeps=y --complete-graph=y --autounmask-write --verbose-conflicts @world emerge -va @live-rebuild emerge --oneshot --keep-going @preserved-rebuild emerge --ask --depclean eclean-dist -d
Commandes spécifiques
- Monter un lecteur amovible
Un lecteur amovible ne sera pas détecté comme du “plug and play”.
Pour monter le nouveau lecteur :
mount -t drvfs f: /mnt/f