NixOS: перший досвід у Hyper-V та WSL на Windows 11
NixOS давно стоїть у списку дистрибутивів, які хочеться не просто встановити, а зрозуміти. Він змінює звичну логіку Linux: система описується кодом, пакети не перезаписують один одного, а невдале оновлення можна відкрутити назад. Це не «ще один Ubuntu», тому найкращий перший крок – окрема віртуальна машина в Hyper-V, без ризику для робочого комп’ютера.
У цій нотатці зібрав власний стартовий маршрут: що саме відрізняє NixOS від Debian/Ubuntu та Fedora, як поставити його у Hyper-V і як спробувати Nix у WSL 2 на Windows 11.
Що таке Nix і NixOS
Nix – менеджер пакетів. Його можна встановити поверх іншого Linux-дистрибутива, зокрема Ubuntu у WSL. NixOS – повноцінний Linux-дистрибутив, у якому Nix керує не лише пакетами, а й конфігурацією системи: користувачами, службами, мережею, завантажувачем, робочим столом.
Головний файл для початку – /etc/nixos/configuration.nix. Після зміни опису система збирається в нову «генерацію» командою nixos-rebuild. Стара генерація не зникає одразу, тому до неї можна повернутися.
Чим NixOS відрізняється від Ubuntu, Debian та Fedora
| Підхід | Debian / Ubuntu | Fedora | NixOS |
|---|---|---|---|
| Пакети | apt, пакети змінюють звичні системні каталоги | dnf, RPM-пакети та актуальніші версії | nix, пакети ізольовані в /nix/store |
| Налаштування | Команди, файли в /etc, інструкції «зроби раз» | Подібно до класичного Linux; добре підходить для сучасних технологій | Декларативний опис у файлах .nix |
| Оновлення | Поступово змінюють поточну систему | Поступово змінюють поточну систему | Створюють нову генерацію системи |
| Відкат | Можливий, але зазвичай ручний і залежить від ситуації | Можливий окремими інструментами; Fedora Silverblue ближча до незмінної ОС | Вбудований: попередня генерація або команда відкату |
| Поріг входу | Найнижчий, багато знайомих інструкцій | Помірний; сучасна екосистема | Вищий: потрібно освоїти Nix-мову та інший спосіб мислення |
У звичайному Linux логіка часто така: встановив пакет, відредагував кілька файлів, запустив службу, забув точні кроки. У NixOS бажаний стан описується явно. Це особливо приємно для серверів, тестових машин і середовищ розробки: конфігурацію можна зберігати в Git і відтворити на іншому комп’ютері.
NixOS не робить усі проблеми Linux магічно простими. Він міняє їхній характер: замість випадкових ручних змін з’являється потреба акуратно описати систему.
Що варто знати до старту
- Шляхи до програм можуть не бути звичними
/usr/bin/...; Nix зберігає збірки у власному сховищі. - Не все варто робити імперативно через
nix-env. Для NixOS краще поступово переносити важливі речі уconfiguration.nix. - Flakes дають відтворювані, зафіксовані залежності. Для першого вечора вони не обов’язкові, але це хороший наступний крок.
- У специфічного заліза, драйверів, VPN-клієнтів або пропрієтарного софту може бути більше нюансів, ніж в Ubuntu. Саме тому Hyper-V – гарне місце для першої спроби.
Перший запуск NixOS у Hyper-V
Для старту завантажую графічний ISO з офіційної сторінки NixOS. Графічний інсталятор дозволяє пройти базове встановлення без ручного розбиття диска.
Створення віртуальної машини
- У Hyper-V Manager створюю New → Virtual Machine.
- Обираю Generation 2, 2 віртуальні процесори, від 4 ГБ оперативної пам’яті та динамічний VHDX-диск на 40-64 ГБ.
- Підключаю ISO в розділі DVD Drive.
- Для простого доступу до мережі можна використати Default Switch.
- Якщо ISO не завантажується, у налаштуваннях VM вимикаю Secure Boot для цієї тестової машини. Це типова перевірка сумісності завантажувального образу.
На етапі встановлення зручно обрати GNOME або KDE Plasma, створити звичайного користувача та залишити автоматичне розбиття лише віртуального диска. Перед експериментами із конфігурацією зробіть Hyper-V Checkpoint – так можна повернутися до чистого стану за хвилину.
Мінімальна конфігурація після встановлення
Відкриваю /etc/nixos/configuration.nix і додаю всередину існуючих фігурних дужок базові пакети та підтримку гостьової системи Hyper-V:
{ config, pkgs, ... }:
{
networking.networkmanager.enable = true;
virtualisation.hypervGuest.enable = true;
environment.systemPackages = with pkgs; [
git
curl
vim
htop
wget
];
}
Не замінюйте весь файл своїм фрагментом: інсталятор уже додав важливі параметри диска, завантаження та обладнання. Додайте лише потрібні рядки до наявної конфігурації, збережіть файл і застосуйте зміни:
sudo nixos-rebuild switch
Команда збере нову конфігурацію та активує її. Якщо хочеться перевірити без зміни запису завантажувача, є режим sudo nixos-rebuild test. Повернутися до попереднього активного стану можна так:
sudo nixos-rebuild switch --rollback
Nix у WSL 2 на Windows 11
Для щоденної роботи з командами Nix не обов’язково одразу запускати повний NixOS. Найпростіший шлях – залишити Ubuntu у WSL 2 та встановити у ньому саме менеджер пакетів Nix. Так можна звикнути до nix shell, пакетів і flakes, не чіпаючи завантажувач та базову систему.
1. Підготуйте WSL
У PowerShell від імені адміністратора:
wsl --install -d Ubuntu
wsl --update
wsl --version
Багатокористувацький інсталятор Nix потребує systemd. У Ubuntu WSL відкрийте /etc/wsl.conf:
sudo nano /etc/wsl.conf
[boot]
systemd=true
Потім у PowerShell перезапустіть усі дистрибутиви:
wsl --shutdown
2. Встановіть Nix у Ubuntu WSL
Запустіть Ubuntu WSL знову і використайте команду з офіційної сторінки завантаження Nix. Перед запуском завжди варто розуміти, що саме робить інсталяційний скрипт у вашому середовищі.
sh <(curl -L https://nixos.org/nix/install) --daemon
Відкрийте новий WSL-термінал після завершення. Далі увімкніть сучасні команди Nix і flakes:
sudo mkdir -p /etc/nix
echo 'experimental-features = nix-command flakes' | sudo tee -a /etc/nix/nix.conf
nix --version
nix shell nixpkgs#hello -c hello
nix shell nixpkgs#python312 nixpkgs#git
Остання команда відкриє тимчасову оболонку, де є Python і Git, але вони не «засмічують» вашу Ubuntu-систему через apt. Саме це один із найзручніших сценаріїв для Nix у WSL: окреме відтворюване середовище під конкретний проєкт.
План першого вечора з NixOS
- Поставити NixOS у Hyper-V та зробити Checkpoint чистої системи.
- Додати до
configuration.nixGit, редактор,htopта NetworkManager. - Застосувати конфігурацію через
nixos-rebuild switch. - Навмисно змінити щось просте, а потім перевірити відкат.
- У WSL спробувати
nix shellдля одного невеликого проєкту. - Лише після цього переносити
/etc/nixosу Git і знайомитися з flakes.