LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

Дано – тестовая система с 16Gb RAM, Понадобится примерно 25 Gb на винчестере. Процессор в системе Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz. Для тестов вполне оно, т.к. средненькая машинка, которая позволяет в принципе работать.

Разблокируем подсистему WSL и переключаемся на вторую ветку:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Потребуется перезагрузка и отвалятся виртуалки типа VirtualBox. Если нужно, то отключение Hyper-V производится командой Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Теперь переключаемся на вторую ветку WSL – wsl --set-default-version 2

Скачиваем current-stage3-amd64-nomultilib, т.к. система под разработку, в сонсоли, systemd не нужен, hardened тоже не нужен, но если кому-то возжелается, то почему бы и нет?

После того, как скачали, распаковываем stage3-*.tar.xz в просто stage3-*.tar. Это можно сделать через 7-zip.

Далее «представляем» подсистеме WSL нашу генточку:

wsl.exe --import "Gentoo" "C:\gentoo" "C:\stage3-amd64-nomultilib-*.tar" --version 2

Указание --version 2 обязательно, т.к. если не указать, то просто произойдёт распаковка, да и всё. Если забыли, то указываем wsl --unregister и заново «представляем».

Теперь ставим более-менее человеческий терминал. Отсюда – https://github.com/microsoft/terminal/releases. Просто скачиваем msixbundle и ставим. В терминале находим вкладку «Gentoo» и конфигурируем её по своему вкусу и пристрастиям, заодно выставив её запуск по дефолту.

Запускаем вновь установленную Gentoo – wsl -d gentoo.

Теперь донастраиваем Gentoo. Учитывая то, что нам ненужно чрутиться, всё несколько проще – создаём shell файл следующего содержания:

#!/bin/bash
rm /etc/resolv.conf || true
rm /etc/wsl.conf || true

cat <<EOF > /etc/wsl.conf
[network]
generateResolvConf = false

[automount]
enabled = true
options = "metadata"
mountFsTab = false
EOF

cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF

Далее в хомяке виндоюзера создаём .wslconfig, чтобы определить сколько ресурсов себе может забрать такая система. В него пишем:

#!/bin/bash

cat <<EOF > /mnt/c/Users/YOURUSERNAME/.wslconfig
[wsl2]
#kernel=
# Половины RAM тестовой машины хватит. В моём случае.
memory=8GB
#processors=
#swap=
#swapFile=
localhostForwarding=true
EOF

Далее делаем wsl --shutdown и останавливаем виртуалку с гентой. Запускаем заново. И теперь уже конфигурим систему как положено. Сразу замечу – чрутиться ненадо, русифицировать надо только саму систему, шрифты на экране будет сразу по-русски, ввод тоже по-русски, временная зона и время возьмутся из винды, так что париться особо не над чем.

Правим locale.gen, добавляя туда ru_RU.UTF-8 (не показывайте этого Eddy_Em!). Далее locale-gen.

Делаем emerge-webrsync; emerge cpuid2cpuflags; echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags чтобы не вписывать USE-flags и флаги процессора.

Заодно смотрим cat /proc/cpuinfo и смотрим семейство процессора (ivybridge или что ещё по https://wiki.gentoo.org/wiki/Safe_CFLAGS).

Далее правим /etc/portage/make.conf`. Вот мой первоначальный, но для старта пойдёт:

ACCEPT_KEYWORDS="~amd64"

COMMON_FLAGS="-O2 -pipe -march=ivybridge -mtune=ivybridge"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

USE="-X -gtk -gtk3 -cxx -qt3 -qt4 -qt5 -kde -python -perl -rubygem -ruby -systemd -kde -gnome nls utf8"
VIDEO_CARDS="dummy"
MAKEOPTS="-j8"
LINGUAS="ru"
L10N="ru"
AUTOCLEAN="yes"
# Несколько ускоряем и убираем ненужные (для виртуалки под разработку, в проде
# так не делать!) проверки.
FEATURES="parallel-fetch parallel-install config-protect-if-modified -ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox"
EMERGE_DEFAULT_OPTS="--ask --complete-graph"

PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

Делаем passwd, выставляем пароль рута. Далее добавляем своего юзера useradd -m -G users,wheel,audio -s /bin/bash Ваш_логин; passwd Ваш_логин.

Теперь делаем вполне предсказуемо emerge vim; eselect editor vim; emerge -C cpuid2cpuflags.

Профиль я не выставлял, он и так очевиден – базовый.

Теперь радостно emerge -uDN @system; emerge -uDN @wolrd;emerge --depclean;revdep-rebuild;eclean-dist.

С остальным понятно, не маленькие.

Резюме. Работает. Довольно живенько так. Винде не мешает, винда тоже не мешает. Рекомендую. Можно открыть несколько терминалов и копировать выделенный текст прямо по правой клавише мышки.

 uname -r
5.4.72-microsoft-standard-WSL2

Я просто оставлю это здесь. Авось кому сгодится.

P.S. Ведро канпелять тоже ненужно, хватает дефолтного. Теперь можно шпилить ф танчеги, одновременно канпеляя чего-нибудь.

Исходная версия Moisha_Liberman, :

WSL2 + Gentoo. How to.

Дано – тестовая система с 16Gb RAM, Понадобится примерно 25 Gb на винчестере. Процессор в системе Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz. Для тестов вполне оно, т.к. средненькая машинка, которая позволяет в принципе работать.

Разблокируем подсистему WSL и переключаемся на вторую ветку:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Потребуется перезагрузка и отвалятся виртуалки типа VirtualBox. Если нужно, то отключение Hyper-V производится командой Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Теперь переключаемся на вторую ветку WSL – wsl --set-default-version 2

Скачиваем current-stage3-amd64-nomultilib, т.к. система под разработку, в сонсоли, systemd не нужен, hardened тоже не нужен, но если кому-то возжелается, то почему бы и нет?

После того, как скачали, распаковываем stage3-*.tar.xz в просто stage3-*.tar. Это можно сделать через 7-zip.

Далее «представляем» подсистеме WSL нашу генточку:

wsl.exe --import "Gentoo" "C:\gentoo" "C:\stage3-amd64-nomultilib-*.tar" --version 2

Указание --version 2 обязательно, т.к. если не указать, то просто произойдёт распаковка, да и всё. Если забыли, то указываем wsl --unregister и заново «представляем».

Теперь ставим более-менее человеческий терминал. Отсюда – https://github.com/microsoft/terminal/releases. Просто скачиваем msixbundle и ставим. В терминале находим вкладку «Gentoo» и конфигурируем её по своему вкусу и пристрастиям, заодно выставив её запуск по дефолту.

Запускаем вновь установленную Gentoo – wsl -d gentoo.

Теперь донастраиваем Gentoo. Учитывая то, что нам ненужно чрутиться, всё несколько проще – создаём shell файл следующего содержания:

#!/bin/bash
rm /etc/resolv.conf || true
rm /etc/wsl.conf || true

cat <<EOF > /etc/wsl.conf
[network]
generateResolvConf = false

[automount]
enabled = true
options = "metadata"
mountFsTab = false
EOF

cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF

Далее в хомяке виндоюзера создаём .wslconfig, чтобы определить сколько ресурсов себе может забрать такая система. В него пишем:

#!/bin/bash

cat <<EOF > /mnt/c/Users/YOURUSERNAME/.wslconfig
[wsl2]
#kernel=
# Половины RAM тестовой машины хватит. В моём случае.
memory=8GB
#processors=
#swap=
#swapFile=
localhostForwarding=true
EOF

Далее делаем wsl --shutdown и останавливаем виртуалку с гентой. Запускаем заново. И теперь уже конфигурим систему как положено. Сразу замечу – чрутиться ненадо, русифицировать надо только саму систему, шрифты на экране будет сразу по-русски, ввод тоже по-русски, временная зона и время возьмутся из винды, так что париться особо не над чем.

Правим locale.gen, добавляя туда ru_RU.UTF-8 (не показывайте этого Eddy_Em!). Далее locale-gen.

Делаем emerge-webrsync; emerge cpuid2cpuflags; echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags чтобы не вписывать USE-flags и флаги процессора.

Заодно смотрим cat /proc/cpuinfo и смотрим семейство процессора (ivybridge или что ещё по https://wiki.gentoo.org/wiki/Safe_CFLAGS).

Далее правим /etc/portage/make.conf`. Вот мой первоначальный, но для старта пойдёт:

ACCEPT_KEYWORDS="~amd64"

COMMON_FLAGS="-O2 -pipe -march=ivybridge -mtune=ivybridge"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

USE="-X -gtk -gtk3 -cxx -qt3 -qt4 -qt5 -kde -python -perl -rubygem -ruby -systemd -kde -gnome nls utf8"
VIDEO_CARDS="dummy"
MAKEOPTS="-j8"
LINGUAS="ru"
L10N="ru"
AUTOCLEAN="yes"
# Несколько ускоряем и убираем ненужные (для виртуалки под разработку, в проде
# так не делать!) проверки.
FEATURES="parallel-fetch parallel-install config-protect-if-modified -ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox"
EMERGE_DEFAULT_OPTS="--ask --complete-graph"

PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

Делаем passwd, выставляем пароль рута. Далее добавляем своего юзера useradd -m -G users,wheel,audio -s /bin/bash Ваш_логин; passwd Ваш_логин.

Теперь делаем вполне предсказуемо emerge vim; eselect editor vim; emerge -C cpuid2cpuflags.

Профиль я не выставлял, он и так очевиден – базовый.

Теперь радостно emerge -uDN @system; emerge -uDN @wolrd;emerge --depclean;revdep-rebuild;eclean-dist.

С остальным понятно, не маленькие.

Резюме. Работает. Довольно живенько так. Винде не мешает, винда тоже не мешает. Рекомендую. Можно открыть несколько терминалов и копировать выделенный текст прямо по правой клавише мышки.

 uname -r
5.4.72-microsoft-standard-WSL2

Я просто оставлю это здесь. Авось кому сгодится.