Как известно, программист - это такой работник умственного труда, который на работе старается спрограммировать всё побыстрее, чтобы наконец пойти домой и
попрограммировать для удовольствия. А как же тут попрограммировать для души, когда
домашний игровой комп сыграл в ящик, не гудит и не мигает лампочками? Пришлось выделить из семейного бюджета солидную сумму на покупку нового компа в серьёзной конфигурации: Ryzen 7, RTX видеокарта, 32G памяти, все дела.
Прошло несколько недель (COVID всё же на дворе), и настал светлый день. Уставший FedEx'овец в маске дотащил здоровую коробку, и не спрашивая росписи о доставке, умчал вдаль шурша опавшими листьями. Коробку распаковали, комп собрали, подвели питание, включили - он загудел, засверкал светодиодными лентами через боковое стекло. Красота!
Тут меня начал мучать соблазн - ну что я, не настоящий программист что ли? Не пропадать же такой вычислительной мощности только для вечерних загонялок в
Doom! Надо поднять нормальную Linuxовую виртуальную машину для разработки, а может даже и несколько, чтобы сделать себе devel, staging, и production.
Выключил комп, засел с блокнотиком, долго изучал опыт современных домашних умельцев в интернетах. И в следующий раз включил комп только когда в блокнотике появился удовлетворительный дизайн домашнего сервера.
Теперь буду записывать себе на память инструкции по поднятию домашней системы:
Итак, после первого входа в систему мне захотелось сохранить это свежедефлорированное состояния. Умельцы с Reddit'a порекомендовали
Macrium Reflect. Попробовал забэкапить диски - получилось. А насколько хорошо получилось - проверим после первой попытки восстановить сохранённое.
Дальше надо было накатывать софт и тут я очень кстати вспомнил, что под Винду тоже бывают пакетные установщики. Быстро нашёл "
Chocolatey" и его автоматизацию в виде
BoxStarter. Сделал
конфигурационный gist на Гитхабе, запустил волшебную команду:
> start
https://boxstarter.org/package/nr/url?https://gist.githubusercontent.com/recoder/9d5c4e5b959dc50d8a856dd2f2b501a8/raw/2c265bcd9089dbe8f5f33eb52f3e8b4bf9f19ebc/nexus.box
И после нескольких подтверждений всё само собой установилось. Я прямо поразился, насколько всё сработало хорошо и быстро. Прям как будто и не Windows. Но с другой стороны - всё-таки за окном третья декада третьего тысячелетия...
Дальше пошла тяжёлая артиллерия. Пришло время поднимать виртуальные машины. В очередной раз проштудировав реддитских мудрецов, решил пойти нативным путём, подняв родной майкрософтовский Hyper-V:
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
Но не тут-то было! Оказалось что на Win10 Home некоторое подмножество фич откручено заботливыми маркетологами. Вновь пришлось обращаться к мировому разуму за советом, и совет оказался прост: надо просто взять и
восстановить открученное:
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
После чего DISM совершенно штатным образом устанавливает нормальный Hyper-V!
А раз пошла такая пьянка - то можно и нормальный встроенный Линукс (
Убунту например) себе поднять, в три команды:
DISM /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
DISM /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
А чтобы закрепить этот программистский фьюжн, я накатил внутри Linux'a
практически полноценный FAR. Надо сказать, что в FAR'e я программирую последние 25 лет, так что для меня FAR - это "наше всё". И устанавливается всё просто на раз:
sudo apt-get install -y gawk m4 libwxgtk3.0-gtk3-dev libpcre++-dev libxerces-c-dev libspdlog-dev libuchardet-dev libssh-dev libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libarchive-dev cmake g++ git
git clone
https://github.com/recoder/far2l
cd far2l
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..
make -j4 && sudo make install
После этого можно удовлетворённо попить чайку и переходить к следующей стадии.