История изменений
Исправление
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
Я просто оставлю это здесь. Авось кому сгодится.