Перші враження від NixOS

Дивлячись на застарілу Ubuntu 20 на моєму десктопі я нарешті дозрів до думки, що треба щось міняти. Я не дуже люблю оновлення, звикаю до існуючого, але це вже було занадто. Але це гарний привід спробувати щось нове!

Виникло питання що саме. Ставити нову версію Ubuntu геть не хотілася. Там вже sudo переписують на Rust. Дякую, далі. Gentoo? Колись награвся, але душа не лежала. Arch? Можливо-можливо...

Але... я давно хотів спробувати NixOS. Цей дистрибутив дуже популярний в Haskell ком’юніті, а це вже знак якості. Давно я кружляв навкруги цього дістра, але все якось відлякував синтаксис nix-файлів. По суті це окрема мова програмування, функціональна. Це все передбачало витрачання багато часу на засвоєння.

Проте прочитавши черговий пост на DOU про те, що готове розуміння, а синтаксис це справа LLM, я вирішив що час настав!

Вступ до NixOS

Для початку треба сказати пару слів, чому саме NixOS. У всіх дистрибутивах, з якими доводилося працювати, я зустрічався з проблемою конфігів. В Ubuntu після років apt install, apt remove, autoremove система поступово перетворюється на антропологічний розкоп. Десь на глибині п’ятого шару лежить бібліотека яку ти ставив три роки тому для якогось проєкту, але видалити страшно, раптом щось тримається. Хочеш поставити нову версію пакету поруч зі старою? Удачі. Хочеш точно відтворити стан системи на іншій машині? Ще більшої удачі. Snap, flatpak, docker... все це не нові ідеї, а милиці для однієї й тієї ж проблеми.

Я з цим потроху воював по-своєму: створював окремих користувачів cat, hask і ставив там потрібні opam та ghcup, відповідні конфіги і плагіни для vim. Незручно, але вважав це невиліковним злом.

Теоретично я знав, що NixOS ці проблеми вирішує, але... не було часу та натхнення.

В NixOS система це функція від конфігураційних файлів. Замість окремих команд на кшталт apt update, apt install ти просто змінюєш конфігураційний файл, який описує систему. Після чого викликаєш

sudo nixos-rebuild switch

та вуаля! система оновилася.

А якщо не сподобалося, то треба викликати

sudo nixos-rebuild switch --rollback

й система швидко повернеться до попереднього стану. Бо NixOS в цьому нагадує docker: всі пакети скомпільовані та зберігаються в /nix/store під хешем. Треба лише налаштувати посилання на них.

Звісно, що ніхто не забороняє тримати конфігурацію в git-репозиторії, робити rebase з дропами зайвого, ділитися з товаришами, копіювати на нові середовища, тощо. Та й конфіги в NixOS не звичайні: це окрема мова програмування, функціональна, лінива, що як для розробника лише плюс. Чим не ідеальний дистрибутив?

Інсталяція

Є два головні шляхи поставити NixOS: завантажитися з ISO/флешки або запустити інсталятор з існуючого Linux. Оскільки Ubuntu робоча, то звісно, що я обрав другий варіант. До речі, nix це не тільки дистрибутив, а й окремий пакетний менеджер: його можна поставити на будь-якому Linux або навіть macOS. Це й ми будемо робити, тому план такий: перерозбити диски, змонтувати, поставити nix під Ubuntu, запустити інсталятор, перезавантажитися в NixOS.

Розбиваємо диски

Це досить рутинна операція, тому щоб зробити її цікавіше, я вирішив заодно спробувати ZFS. Ця файлова система має вбудоване стиснення, snapshot-и та захист від тихого пошкодження даних. Гуляти так гуляти.

Так як ми в Ubuntu, то спочатку ставимо утиліти для роботи з ZFS:

sudo apt install zfsutils-linux

Після чого створюємо пул на розділі, куди ми плануємо ставити NixOS, у мене це /dev/nvme0n1p5.

sudo zpool create \
 -O compression=lz4 \
 -O atime=off \
 -O xattr=sa \
 -O dnodesize=auto \
 -o ashift=9 \
 -O mountpoint=none \
 nixos /dev/nvme0n1p5

ashift=9 відповідає розміру сектору 512 байт (2⁹ = 512). Більшість сучасних дисків вже мають сектори 4096 байт і потребують ashift=12, але тут не той випадок, мої NVMe справді 512-байтові:

$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     2L2929S5H7J1         XPG SPECTRIX S40G                        1           4,10  TB /   4,10  TB    512   B +  0 B   VB411D62
/dev/nvme1n1     50026B76837601F2     KINGSTON SA2000M81000G                   1         996,18  GB /   1,00  TB    512   B +  0 B   S5Z42105

Краще перевірити, бо після створення пулу ashift вже не змінити.

Ця команда є аналогом форматування в інших файлових системах, прямі аналоги mkfs.ext4 чи mkfs.xfs. От тільки ZFS це більш багата концепція: пул може охоплювати декілька фізичних дисків і містити декілька незалежних файлових систем з власними точками монтування. Саме тому команда виглядає трохи складніше за звичайне форматування.

Далі створюємо datasets всередині пулу:

sudo zfs create -o mountpoint=legacy nixos/root
sudo zfs create -o mountpoint=legacy nixos/nix
sudo zfs create -o mountpoint=legacy nixos/var

Це аналог точок монтування в звичайних файлових системах, тільки всередині ZFS пулу. mountpoint=legacy означає що ZFS не буде монтувати їх автоматично, цим займеться Linux через /etc/fstab.

Та монтуємо для інсталяції:

sudo mount -t zfs nixos/root /mnt
sudo mkdir -p /mnt/{nix,var,boot/efi,home}
sudo mount -t zfs nixos/nix /mnt/nix
sudo mount -t zfs nixos/var /mnt/var
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo mount /dev/nvme0n1p3 /mnt/home

EFI та home розділи перевикористані з Ubuntu, решта на ZFS. Це стандартна практика при встановленні Linux, знайома всім хто ставив Gentoo або Linux From Scratch. /mnt стає root майбутньої системи: якщо зробити chroot туди, ми опинимося всередині неї з існуючим ядром. Наш пул nixos містить три datasets: nixos/root, nixos/nix та nixos/var, кожен монтується окремо.

Ставимо nix в Ubuntu

Пакетний менеджер nix можна встановити в Ubuntu однією командою:

sh <(curl -L https://nixos.org/nix/install) --daemon

Після цього вже в Ubuntu можна відчути весь смак nix: ставити пакети, запускати ізольовані середовища, тощо... Доставимо необхідні інструменти для встановлення NixOS:

nix-env -iA nixpkgs.nixos-install-tools

Так, це виглядає як apt install і це справді виняток з правил. nix-env це старий підхід, де пакети ставляться поза конфігурацією. Але тут ми просто робимо bootstrap: ставимо інструмент одноразово щоб запустити інсталятор, після чого він більше не знадобиться.

configuration.nix

Тепер наша задача створити головні конфігураційні файли системи. Їх можна написати вручну. Але більшість з них це тупа робота: подивитися що є в системі та перенести. Є утиліта, яка зробить це за нас:

sudo nixos-generate-config --root /mnt

Після її виконання в директорії /mnt/etc/nixos отримаємо два файли. В першому, hardware-configuration.nix, автоматично визначається залізо: диски, файлові системи, CPU, модулі ядра. В другому, configuration.nix, описується сама система, це і є головний файл, який ми будемо редагувати.

Далі процес інсталяції був досить прямолінійним. Я йшов по згенерованому конфігу та запитував LLM що це та на що впливає. Розібравшись, обирав що до вподоби. Далі буде нудний опис початкової конфігурації. Так, приклад як це налаштовується, але кому буде нудно — можна гортати.

Bootloader

boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;

systemd-boot це простий EFI bootloader, вбудований в systemd. Альтернатива GRUB, легший та без зайвих налаштувань.

Підтримка ZFS

boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
networking.hostId = "6148f1c1";

Це магія для підключення ZFS на етапі завантаження системи. hostId є обов’язковим для ZFS, береться командою:

head -c 8 /etc/machine-id

Налаштування nVidia

nixpkgs.config.allowUnfree = true;
# ...

# Nvidia
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = false;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
hardware.graphics.enable32Bit = true;

Тут ми обираємо пропрієтарний драйвер, бо він дасть нам максимум можливостей. Для цього нам треба дозволити встановлення закритого ПЗ через allowUnfree, та встановити атрибут open в false. enable32Bit на майбутнє для Steam. Решта карго-культ, який я скопіював не занурюючись в деталі.

Налаштування звуку

services.pipewire = {
  enable = true;
  pulse.enable = true;
  alsa.enable = true;
  alsa.support32Bit = true;
};

Pipewire замість pulseaudio, сучасніший варіант. support32Bit знову для Steam.

Налаштування локалі

i18n.defaultLocale = "C.UTF-8";
i18n.extraLocaleSettings = {
  LC_TIME = "en_DK.UTF-8";
};

C.UTF-8 мінімальна локаль без зайвого. en_DK для формату дати ISO 8601, тобто 2026-04-12 замість April 12.

Створення користувача

users.users.nxmu = {
  isNormalUser = true;
  extraGroups = [ "wheel" "networkmanager" "audio" "video" ];
};

Стандартний набір груп для поки що єдиного користувача, окрім root.

Вибір робочого столу

services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.enable = true;

Plasma 6 як робочий стіл, SDDM як менеджер входу. Обирала LLM-ка.

Мінімальний набір програм

environment.systemPackages = with pkgs; [
  vim
  git
  wget
  brave
];

Тут можна бачити мінімальний набір програм для початку роботи: vim, git, браузер. Решта буде додаватися по мірі потреби через конфіг.

Встановлення системи

Час запускати інсталятор, який створить в /mnt систему відповідно до нашого конфігу. Робиться це командою:

sudo -E env PATH=$PATH nixos-install

Єдиний нюанс: треба прокинути PATH, щоб sudo знаходив nix в поточному оточенні. Наприкінці запитає пароль root.

Все, залишилося лише перезавантажитися, зайти в консоль через Ctrl+Alt+F2, змінити пароль для нашого користувача та зайти в систему!

Ставимо Steam

Але без Steam система неповноцінна. На початку я мав побоювання, чи запуститься він взагалі. NixOS має дуже нестандартну структуру директорій: більшість Linux-програм очікують знайти бібліотеки в /usr/lib, /lib та інших звичних місцях, а в NixOS все це живе в /nix/store під хешем.

Проте LLM запропонувала магічні рядки:

programs.steam = {
  enable = true;
  gamescopeSession.enable = true;
};
hardware.steam-hardware.enable = true;

Додав у конфіг, nixos-rebuild switch, і Steam з’явився та запустився без питань з першого разу. Це дійсно гарний дістр!

При старті системи в меню завантажувача з’явився новий пункт. У нас з’явився вибір, що завантажувати:

Generation 1 NixOS Yarara 26.05pre971872.15c6719d8c60 (Linux 6.18.20), built on 2026-04-01
Generation 2 NixOS Yarara 26.05pre971119.8110df5ad7ab (Linux 6.18.20), built on 2026-04-01

Кожна зміна конфігу створює нове покоління, в нашому разі перше покоління це стара конфігурація без Steam, а друге це вже нова конфігурація з ним. Завантажитися можна в будь-яке.

Home Manager

Але це була глобальна конфігурація системи. NixOS також підтримує налаштування на рівні користувача через Home Manager. Системний конфіг лишається як є, а Home Manager його доповнює: додає програми та конфіги лише для конкретного юзера.

Home Manager по дефолту не йде, треба доставити окремо:

nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install

nix-channel це аналог PPA в Ubuntu: підключаємо новий репозиторій і оновлюємо список пакетів. Після цього з’являється ~/.config/home-manager/home.nix, який і редагуємо. Застосовується звично:

home-manager switch

Я вирішив розділити так: графічні програми це частина глобальних налаштувань, а консольні інструменти, з якими проводжу більшість часу, йдуть через Home Manager. У мене там поки що банальне додавання нових програм:

{ config, pkgs, ... }:

{
  nixpkgs.config.allowUnfree = true;

  home.username = "nxmu";
  home.homeDirectory = "/home/nxmu";

  home.stateVersion = "25.11";

  home.packages = with pkgs; [
    python3
    colordiff
    claude-code-bin
  ];

  home.file = {};

  home.sessionVariables = {};

  programs.home-manager.enable = true;

  nix.extraOptions = ''
    experimental-features = nix-command flakes
  '';
}

Рядок з flakes вмикає однойменну експериментальну фічу Nix: 100% відтворюваність оточення через хеші пакетів. Мені це не критично, оновлення пакетів не лякають. Але flakes додає корисні команди на кшталт nix search, тому нехай будуть.

Shell

Окрема тема, яка заслуговує захоплення, це nix-shell. Для кожного проєкту можна описати ізольоване середовище в shell.nix. Воно доповнює глобальну та локальну конфігурацію, дозволяючи для конкретного проєкту мати свої інструменти, змінні оточення та версії пакетів. Більше ніяких окремих юзерів cat та hask!

Щоб увійти в це середовище, достатньо виконати nix-shell в директорії з shell.nix. Nix завантажить всі залежності та запустить нову оболонку з потрібними інструментами.

Ось приклад такого конфігу для одного з проєктів:

{ pkgs ? import <nixpkgs> {} }:
let
  myNeovim = pkgs.neovim.override {
    withPython3 = true;
    extraPython3Packages = p: [ p.pynvim ];
  };
in
pkgs.mkShell {
  buildInputs = with pkgs; [
    coq_8_19
    myNeovim
    git
  ];

  shellHook = ''
    export NVIM_APPNAME=lf4nvim
    alias vim=nvim
  '';
}

Тут ми бачимо ще одну особливість NixOS: пакети можна конфігурувати та перекомпілювати під себе. На відміну від Gentoo, де все компілюється з вихідного коду, NixOS за замовчуванням завантажує готові бінарні пакети. Але якщо ти написав кастомний override, як тут, та Nix не знайде такий хеш у кеші, він скомпілює сам. Тут ми збираємо neovim з підтримкою Python, який знадобиться для плагіну Coqtail, плюс pynvim для цього Python.

shellHook виконується при вході в shell. NVIM_APPNAME=lf4nvim це фіча neovim, яка дозволяє мати окремі конфіги для різних середовищ: neovim шукатиме конфіг в ~/.config/lf4nvim/ замість стандартного ~/.config/nvim/. Також плагіни будуть шукатися у ~/.local/share/lf4nvim/. Тому в цих директоріях ми можемо налаштувати плагіни та параметри саме для цього shell. Плагін можна поставити командами:

mkdir -p ~/.local/share/lf4nvim/site/pack/vendor/start/
git clone https://github.com/whonore/Coqtail ~/.local/share/lf4nvim/site/pack/vendor/start/coqtail

Ну й трохи доналаштувати в ~/.config/lf4nvim/init.lua:

vim.cmd("source ~/.vimrc")

vim.opt.mouse = ""

vim.keymap.set('n', '<F9>', ':CoqStart<CR>', { silent = true })
vim.keymap.set('n', '<F4>', ':CoqToLine<CR>', { silent = true })
vim.keymap.set('n', '<Space>', ':CoqNext<CR>', { silent = true })
vim.keymap.set('n', '<BS>', ':CoqUndo<CR>', { silent = true })

Бонусом йде той факт, що цей shell.nix можна використати й на macOS. Налаштовуємо профіль lf4nvim для neovim, ставимо nix, викликаємо nix-shell і... вуаля, все працює на macOS!

Підсумки

NixOS мені сподобалася, сподіваюся це буде моя наступна бойова операційна система на десктопі. У порівнянні з Ubuntu є відчуття чистого аркуша. Система завантажується швидко, сервісів мало, і dmesg не засмічений десятками речей, про які ти ніколи не здогадувався. Синтаксис виявився простіше ніж я очікував, мабуть Haskell в бекграунді посприяв. LLM гарно підказує як її налаштувати, без неї було б складніше. Є ризик із програмами, для яких немає пакетів: через нестандартну структуру директорій встановити щось вручну може бути складніше ніж в Ubuntu. Але у мене поки що такого не було. Та й пакетів спільнота зібрала достатньо, більше 100 000, що перевищує навіть Arch. В цілому nix-shell це гарна альтернатива Docker для ізоляції середовищ: не псує глобальну конфігурацію, швидко й легко модифікувати.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось14
До обраногоВ обраному4
LinkedIn
Ctrl + Enter
Ctrl + Enter

А підкажіть будь-ласка чому не використовуєте nvidia-open?З цим є якісь пов’язані проблеми?Бо у мене ноутбук із дискретним чіпом 3060 то я використовую open і наче працює без нарікань, можливо приснилося але бачив рекомендацію що для вище 2000x серій краще використовувати open версію

мої NVMe справді 512-байтові

Насправді ні, то вони емулюють 512 байт всередині. На флешках великі блоки, конкретно на вашому Kingston — це 16 KB.

Я на NixOS вже рік, перевів на нього всі девайси: home-server, desktop, macos (навіть роутер www.sidorenko.me/...​naging-mikrotik-with-nix) — дуже задоволений. це інший mindset: os-as-project. Єдиний мінус — це затягує і дуже складно зупинитись.
По суті статті: для дисків я юзаю disko, а для бутстрапу nixos-anywhere — як на мене це маст хев зараз, виконувати команди ручками — це не nix-way, навіть якшо це рідко робити

а для бутстрапу nixos-anywhere — як на мене це маст хев зараз

Напевно, мене просто LLM не переконали як його ставити, перший раз хотілося більш контрольованого процесу.

Вибачаюсь за гумор, всеодно дякую що поділилися досвідом, цікаво. Бо у нас в Україні нажаль немає місць де про таке можна побалакати, навідміну від болот... нажаль(

шо значить нема, ми тут шо для красоти?

для балачок є freenode, а не якісь болота

шо значить нема, ми тут шо для красоти?

Тут іноді такі таки теми спливають, а я про побалакати

для балачок є freenode, а не якісь болота

Дякую, але це що?

Фрінода то ірц

https://libera.chat/

wiki.archlinux.org/title/Arch_IRC_channels

фрінода то похоже вже минуле, не буду лінкать, сам знайдеш якщо цікаво

але такі дістро як генту, арч і нікс мене напрягають

Дякую, тільки IRC і тільки про Арч? Я питаю про якесь комюніті україномовне на тему лінукса взагалі типу лора але з України.

Грався довго і весело з NixOS, але руки так і не дійшли перейти з Linux Mint / Rocky на неї. Плюс логічніше сидіти в тому ж середовищі, для якого збираєш софт... або це лиш чергова моя відмовка, аби не витрачати день-два на перехід, хтозна :)

Чому не розглядали Федора, сільверблу наче золота середина між оновленнями та закостенілістю ну і флатпак виглядає супер перспективним. Маю підозру виходячи зі статті що ручки чешуться з чимось погратися та шось налаштувати)

Ну... звичайний repo, які там цікаві ідеї? Flatpak + Sober поставив під Nix OS, щоб з донькою в Roblox грати, два рядки в конфігу.

Окремі середовища? У Fedora для такої ізоляції доведеться підіймати Toolbox чи Podman... важкувато... тоді як у Nix це нативна фіча пакетного менеджера.

Все ж таки Nix можна порівнювати з Docker скоріше. Але на відміну від Docker, Nix не руйнує конфігурацію та не навантажує систему.

Дякую, зрозумів чому, просто не дуже зрозумів шо саме ізоляція була мотивацією пошуку нових рішень яким став nixos

мені здається шо основна фіча Flatpak — не технічна а соціальна, чомусь його вирішили массово підтримати, можливо радхад форсив якось

Мені просто подобається ідея nix shell, який дозволяє налаштовувати для кожного проєкту саме той набір інструментів, що йому потрібен. Так легко переносити її між різними машинами та навіть операціними системами.

Мені не треба багато програм. Мені треба багато їх версії :-) Що мені треба для щастя? браузер, Steam, командний рядок, gcc, clang, python, Haskell, Coq, Agda, Idris, Lean 4, vim, плагіни, ... Проблема у тому, що різні проєкти потребують різні версії... тому часто швидко спробувати можна лише в docker. Тепер скоріше docker не потрібний.

Маю підозру виходячи зі статті що ручки чешуться з чимось погратися та шось налаштувати)

Багато хто зайшов у цю залежність, але мало хто має силу волі з неї вийти і займатися справами по роботі а не безкінечним «налаштуванням»))

Чекаємо на огляд arch )

мені теж сподобалась концептуально, але такі дістро як генту, арч і нікс мене напрягають

люблю десктоп з однією кнопкою де сідаєш і їхаєш, замість колупатись кожен ранок до наступного ранку

Краще за джобса це за 50 років ще ніхто не зробив уви

Сервери то інше діло, але там чесно не бачу що пропонує нікс в порівнянні з контейнерами. Ця битва була програна ще років 15 тому

Був в мене арч... Не оновлював рік. Увімкнув, оновив пакети — перезаванажую, бачу чорний екран.

нууу термінал він наче ж завжди чорний... )

але всерйоз це саме той кейс. Життя серед мінного поля де сьогодні злетить драйвер, завтра мережа, післязавтра віндовменеджер, а тобі всього то хочеться подивитися фільм. А на ньому як завжди збиті пермішени чомусь...

Колись то інтелектуально стимулювало, навіть мейнтейнером був в одному екзотичному лінуксі, арча тоді ще не було навіть, зараз напрягає.

В мене завжди стоїть в кутку шось тіпа кіоска, але там лєсбіан і sway. Хотів ото на нікс перетащити, але потім якось просто задовбався

Думаю нікс був би класний варіант для чогось типу гіпервізора чи роутера, де треба передбачуваний роллбек, в чомусь тіпа проксмокс чи опенврт, але без нього теж не страждається особливо, навіть якщо зламається часто простіше відновити всю ноду зразу ніж зав’язуватись на специфіку конкретної ос

Але стаття класна, тут без питань, іноді таки свербить і треба чесати

так, це буває і це типу «норма» у лінукса і не тільки на арчі трапляється)

по-перше арч це роллінг який треба оновлювати часто щоб не було подібних проблем,

по-друге якщо таке трапляється то «звичайний» лінуксовод повинен вміти завантажитися з живого ісо, увійти з під chroot у поламану систему і виправвити,

по-третє це лінукс лялечко, це лінукс...

Ну подивимося... Ідеологія nixos більше у відтворюванні, можна прибити цвяхами усе.
А так немає ніякої різніці, запускати конфігураційний файл на свіжій машині чи застарілій.

Ідеологія nixos більше у відтворюванні, можна прибити цвяхами усе.

Тобто тут можна мати неоновлену систему на якій буле працювати найновіший софт? Тобто немає залежності від стстемних бібліотек?

Так, це не проблема, для Nix OS немає проблеми мати різні версії бібліотек, тому він підтяне всі нові бібліотеки, які треба для нового пакету, а старі лишить як є.
Але... два ядра Linux ти одночасно не запустиш, якщо софт вимагає нову версію, то... граблі.

Ну це крінж, чомусь windows 10 виграє по надійності незважаючи на крики лінуксоїдів

зверху мій коментар чекніть. Арч зробив мій ноут цеглою, після звичайного sudo pacman -Syuu

ааа, ну тут то да, але ж є лінукс і є лінукс

арч ніколи й не був в принципі розрахований на роботу без топора, такойтоматєрі й півлітра самогона

він з LFS виріс, натяк на шото тіпа стабільність при апдейті там дуже умовний і йде десятим пріорітетом

арч ніколи й не був в принципі розрахований на роботу без топора

а SteamOS? ;)

steamcommunity.com/...​ons/1/597401798036229836

нууу шо сказать, тіпічний лінукс

просто трохи відлизаний

нууу шо сказать, тіпічний лінукс

Я про то що він раніше був створений на основі Дебіан але зараз він основі Арч

це для мене нічо не значить, ну на основі то й що з того?

на основі арч != арч

Валв скоріш за все відлизує що потрапляє в офіційні репи і краще тестить власне залізо, але це не лікує типові трабли в лінукс

та й все одно я сильно сумніваюсь що наівний апдейт якогось старого сетапа без проміжних апдейтів там пройде без проблем )

але це не лікує типові трабли в лінукс

Але чого вони тоді так довго його застосовують як SteamOS? А не візьмуть Він? Напевно бачать для себе переваги Лінукс які більші за його недоліки. До того ж великий + для розвитку самого Лінукса і Арча також.

Та сама причина чому гугл взяла лінукс як основу для андройда.

тому що валв хоче власну платформу, і вибирати особо ні з чого, тільки бсд і лінукс дають валв власну платформу без писання ядра з нуля власними силами. Те саме з базовою системою. Валв вибрали лінукс і арч. Ну не сподобався їм дебіан. Не факт що арч буде теж основою в майбутньому. Який там пакетний менеджер абсолютно неважливо

з часом це буде відлизано, якщо платформа виживе, просто цей час ще не настав. Звісно плюс.

Вінда також має і завжди мала вагон глюків і проблеми з апдейтами і драйверами, просто історично майкрософт монополіст на ринку десктопів, і вся індустрія додатків, заліза, периферії й написані драйвери орієнтуються на це і тестують на вінді і випускають апдейти які це швидко фіксять, ну і тепер макось уже стала нормою, в той час як лінукс — gpl, і працює зовсім по іншому в плані підтримки якогось заліза і стає поперек для всіх виробників closed-source драйверів і бібліотек і всякого супутнього блоата.

Та сама причина чому гугл взяла лінукс як основу для андройда.

Усе так, але гугл зробили форк ядра лінукса і будують андроїд саме не власному ядрі.
Так чому Валв не робить власний форк з якогось дістра?

ps Просто цікаво, а Ви які ОСі використовуєте?

так що таке форк дістра? Steamos по твоєму не форк дістра?

якщо про форк ядра, то валв просто не гугл щоб таке витягнути

використовую переважно дебіан і макос

Ну це крінж, чомусь windows 10 виграє по надійності незважаючи на крики
лінуксоїдів

це сарказм? Порівнбвати десктоп віндовс від багатомільярдної корпорації і десктоп лінукс який розробляється по базарному принципу Just for fun? Лінукс виграє поки у мобайл та серверному сегментах але конкурентного десктоп сегмента у лінукса поки нема нажаль бо, ББ — банально, бабло, Ваш кеп.

Третій раз повторюю в цьому чаті вже.. арч зробив мій ноутбук цеглою

То може проблема в Arch, а не в Linux? Це як жалітися, що я поставив програму, яка зламала Windows. Як раз в Nix OS щось зламати неможливо, завжди можна завантажитися в попередню конфігурацію.

Щоб насетапити арч повністю під себе, я потратив місяць. Щось мені підказує що з nix це займе 3 місяці

Можливо так, можливой й ні. Як на мене LLM простіше правити конфіг у файлі, ніж давати команди в консилі, які залежать від оточення, попередньої історії, ... Не кажучі про ефект зашореної коняки, коли вона відразу дає гайд на 10 кроків уперед, який ламаєтсья на першому ж.

Але перевага Nix OS полягає у тому, що перенести цей сетап на новий пристрій діло хвилин.

згоден, лінукс це біль)
і як мені вже багато разів відповідали у різних коммюніті — лінукс так і бсд,
проблема між клавіатурою і стільцем,
але я не ображався і далі воюю з ветряними млинами тобто лінуксамі

Може, в межах тих задач, на які її заточували — згоден.
Але один крок вбік і все, вона не тягне.
І діагностика проблеми в Windows в середньому значно складніше, ніж в Linux — бо все в рази заплутаніше.
А ліцензування не дозволяє просто ставити віртуалки, ускладнює перенос на інше залізо, і систематично псує життя.

Тому що Arch.
В нього найкраща документація (чи вже не так?), але все треба контролювати самому.
В переважній більшости решти такого б не було.
І до речі — що саме за «чорний екран»?
У мене одного разу було, що при оновленні убунти між релізами (а не в одному релізі!) якогось пакету не вистачало, щоб sddm зміг запустити графічний шелл. Мабуть, у вас те ж саме було. Але при цьому зберігається консольний вхід.

Це убунта лол, де є стабільні релізи. В мене поламалось все: grub, keychain, iptables, pacman і ще купа лайна

Я нічого спеціального для стабільности не роблю, але у мене таких ефектів нема навіть при release upgrade. Зізнайтесь, чим наробили, як це відтворити?
Активно підозрюю результат встановлення якогось дуже кастомного софта, який переламував систему під себе. Pacman, кажете? А що з ним ставили і як? Якщо робили щось в обхід apt, не дивуюсь...

Pacman це менеджер пакетів arch, apt це менеджер пакетів debian

Ви самі сказали спочатку про Ubuntu, а потім про pacman. От і поясніть, чому і як у вас під Ubuntu зʼявився pacman...

Ну... чесно, з нуля за пару годин я отримав робочій Desktop це й розібрався. А так не бачу великої різниці, чи набирати apt install blablabla чи додати рядок blablabla в конфігураційний файл.

Джобс... Чому ж тоді brew написали? Та ще й танці такі самі. Я навіть під macOS став користуватися nix

brew, даа цей постійно брудний куточок де збирається пил і хомік де ці всі продукти ядерного ділення і людської життєдіяльності

ну написали бо одна педаль — не досить в тих самих 20% випадків

brew bundle виручає при міграції, в решті випадків туди навіть не заглядаю поки місце на диску не закінчиться :D

не бачу великої різниці

ну ото і я погрався й не побачив, так і переставив назад потім ламповий дебіан.

люблю десктоп з однією кнопкою де сідаєш і їхаєш, замість колупатись кожен ранок до наступного ранку

Linux Mint?

Стаття супер, дякую!

А що не так з переписуванням sudo на Rust?

що не так з переписуванням sudo на Rust?

100500 comments later...

Скоріше я не хочу мати справи з комʼюніті. А так хочеться надійності? VST зробить небагато більше за Rust.

Я бачу, що пан розуміється у збоченях)

ps Насправді, подивившись на вищезгадані налаштування, я бачу, що nixos це ще одна милиця ні чим не краща за інші лінукс милиці)

pps Чим Вам Вєнда не вгадила?)

pps Чим Вам Вєнда не вгадила?)

Ок, як там відтворити середовище на іншій машині? У мене все компілюється, я хочу перенести це на іншу машину?

емм, а чому не віртулка з під мастдая?

Переносити 50G блоб замість одного конфігу? Як його діфати, щоб взяти те що тобі потрібно? Як зверзу додати свій прошарок?

при сучасних об’ємах накопичувачів це нормально, бо у вас буде образ всієї робочої ос, а як ви інакше планували перенесення всієї системи на інший пк?

Це і є шлях Nix OS: я переношу лише конфігураційний файл, потім кажу зроби мені таку ж саму систему. 50G це частина проблема. Друга проблема це оновлення Windows, які треба буде постійно тягнути за собою, системи будуть розходитися потроху.

Далі, уявимо, що на роботі мені видали ноут. Я хочу поставити на ньому усі свої домашні програми, до яких звик. Але я не хочу записувати на нього всю колекцію порнороликів. Як?

Ок, припустимо я працював з одним образом. Доставив там пару корисних програм. Потім повернувся на другий. Як мені доставити diff?

Дякую, тобто головна фішка Nix OS це зручна/автоматизована конфігурація системи під себе?

а як тут з ігорами?

чи не забагато пердолінга(вибачте) лише за для налаштувань, юзер не так часто переносить усю систему на інший пк?

Steam працює, протон також. Тому більшість ігор запуститься, навіть ті, які під Windows не запускаються. Але... якщо в грі є захист, то не факт.

Віртуалка чого?
Якщо лінукса, то нахера тоді вінда?
Якщо вінди, то як саме — так, щоб в ній було тільки потрібне? Мінімальний образ в докері це взагалі один бінарник.

Якщо лінукса, то нахера тоді вінда?

нахрена існують тоді віртуалки?

нахрена існують тоді віртуалки?

А що, вони існують для того, щоб запускати лінукс під віндою?

Жодна з систем повної віртуалізації не починалась з такою ціллю. Окрім експериментальних версій для концепції в цілому, перші були зроблені для, в першу чергу, розділення ресурсів між системами, які в принципі не можуть бачити одна одну, а далі — для пробних сетапів. До появи всяких там VMWare таку віртуалізацію, у першу чергу, можна було побачити на техніці IBM, у вигляді logical partitions (LPAR) на верхньому рівні і систем на зразок VM/370 на наступному. І лише коли попит дійшов до того, щоб вимагати щось схоже на x86, зʼявилось те, що ви бачите зараз на типовому десктопі.

І у мене WSL в роботі тільки тому, що частина софту повного сетапу працює тільки під Linux, а ставити окремий Linux зазвичай невигідно (але вимушений це робити у складних випадках дебагу: під WSL не працюють hardware watchpoints). А для експеріментів я запускаю, по більшости, один Linux під іншим. А деяке спілкування робиться в FreeBSD в Virtualbox під Linux, в якому ще один рівень власної напів-віртуалізації — 32-бітний фідошний поїнт під 64-бітним ядром :)

Підписатись на коментарі