Перейти до змісту
View in the app

A better way to browse. Learn more.

Файна Україна

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

NixOS перші кроки

Рекомендовані відповіді

Опубліковано
  • Адміністратор

Встановлення NixOS

NixOS можна встановити з live образу у графічному режимі зі звичним установником Calamares. На сьогодні є дві версії образу з DE, в яких запускається інсталятор, GNOME та KDE. Також є мінімалістичний .iso без графічної оболонки. Я вибрав Calamares для мене так простіше.

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

Усі встановлені програми, бібліотеки та інше зберігаються в /nix/store/ . Насправді вся ОС перебуває у /nix/store . В корені / нічого не зберігається, крім структури каталогів та посилань. Якщо ви щось захочете додати або редагувати в цих каталогах, це не вплине ні на що, і взагалі не працюватиме. Усі налаштування та інше потрібно прописувати лише у файлі /etc/nixos/configuration.nix .

Я встановлював NixOS на SSD диск 60Гб, розбив його так:

/boot/efi   - 512МБ, під корінь залишив / - 2 ГБ ( навіть цього виявилося багато, зараз використовується всього 450МБ), і, головне, змонтував 37ГБ /nix (сюди ОС буде встановлювати все і вся, зараз у мене використано 17 ГБ), все інше, 20ГБ ,

images.png

Під час встановлення смужка прогресу застряє на приблизно 46%, але установка продовжується, можна клікнути на кнопочку праворуч в кінці прогресу, щось на зразок log...

Ще нам запропонують поставити галочку на дозвіл на використання пропрієтарного ПЗ. Ставимо.

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

І так система встановилася, перезавантажуємося і бачимо звичну DE, яку ви вибрали на якомусь етапі установки. Я вибрав Cinnamon.

Перше, що ми зробимо, перейдемо на Unstable channels.

У Nix подібність репозиторіїв називаються channels (канали).

Перехід на Unstable версію обумовлений тим, що в стабільній версії може не виявитися потрібного та звичного ПЗ, та й версії пакетів застарілі, як Debian stable. Нестабільний, це не означає, що відразу будь-якої миті все зламається. Версії пакетів будуть щось на зразок Debian testing + sid. Та й у будь-який момент можна буде з легкістю перезавантажитись у попередній стан системи. Робочу систему неможливо зламати якимись неправильними діями. Це ще одна чудова особливість nix, але про це пізніше.

Додаємо канали:

sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos
sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixos

Оновлюємо канали:

sudo nix-channel -update

Оновлюємо всю систему:

sudo nixos-rebuild switch --upgrade

Від звичного в NixOS тільки de, яке ви можете потикати, покликати, але встановити з його допомогою нічого не вийде. Усі DE у NixOS максимально урізані. Навіть деякі штатні програми не працюють. У nix все робиться через configuration.nix 

Встановлення програм

Всі програми встановлюються простим переліком назв пакетів у configuration.nix . Але тут також є кілька особливостей:

  1. Назва програм може кардинально відрізнятися від звичних інших дистрибутивів.

  2. Деякі популярні програми існують у двох видах. У вигляді сервісів, що підключаються, і просто програм.

Дуже багато поширеного софту NixOs існує у вигляді сервісів. Steam, wine, waydroid та ін., та ін. 

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

https://search.nixos.org

Спочатку тиснемо кнопку unstable внизу форми пошуку. Потім NixOS options. Якщо нічого не знаходимо, то шукаємо Packages.

images.png

Для прикладу встановимо ігровий клієнт Steam:

Набираємо у формі пошуку Steam. Виходить багато різних назв сервісів та опцій для Steam. Потрібне нам називається programs.steam.enable . Дізнаємося з опису, натиснувши на посилання, як його включити. 

Тепер включаємо його, просто вписуючи в cofigutation.nix :

programs.steam.enable = true;

Не забуваємо дотримуватися всіх знаків пунктуації, особливо в кінці крапка з комою.

Для цього відкриємо термінал та відредагуємо файл configuration.nix у редакторі nano. 

sudo nano /etc/nixos/configuration.nix

Якщо зручніше, у Cinnamon можна відкрити штатним редактором xed. Або який знайдете залежно від обраного при встановленні DE. Але nano у системі встановлений завжди.

sudo xed /etc/nixos/configuration.nix

У ньому вже прописані купа будь-яких початкових налаштувань та блоків.

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

programs.steam.enable = true;

Для запуску деяких ігор в Steam потрібно буде встановити пакет Steam-runtime.

Знову відкриваємо сайт пошуку та шукаємо Steam-runtime. У NixOS options нічого не знаходить, тому клацаємо по Packages. Потрібний пакет називається steamPackages.steam-runtime.

І ще одна особливість. Пакети, програми вписуємо у певний блок.

Можна встановити набір програм для конкретного користувача або всієї системи. Програми для всієї системи будуть доступні всім користувачам, а програми для конкретного користувача будуть доступні лише для цього користувача.

Якщо встановлюємо програму або пакет для конкретного користувача, то назву прописуємо в блок:

users.users.evu = {

isNormalUser = true;

description = "evu";

extraGroups = [ "networkmanager" "wheel" ];

packages = with pkgs; [

steamPackages.steam-runtime 

firefox

];

};

evu – ім'я мого користувача.

extraGroups – групи користувача.

packages = with pkgs; []; - Усередині дужок вписуємо список програм.

Якщо встановлюємо для всієї системи, то прописуємо в цей блок:

environment.systemPackages = with pkgs; [

steamPackages.steam-runtime 

firefox

];

Тепер зберігаємо те, що змінили в configuration.nix і переходимо до установки. Текстовий редактор не можна закривати.

Відкриваємо термінал та запускаємо команду переконфігурації:

sudo nixos-rebuild switch

Після запуску команди усі програми встановляться. 

І тут станеться найцікавіша особливість nix. NixOS збереже атомарний знімок усієї попередньої системи до всіх внесених виправлень. Тобто, якщо ви щось не наробили, можна перезавантажитися в той стан ОС, який був до виправлень. У меню завантаження з'явиться відповідний пункт.

Налаштування, конфігурація та встановлення драйверів обладнання

Налаштування та драйвера обладнання також прописуються у файлі configuration.nix .

У встановленій системі /etc/nixos/ є ще один файл hardware-configuration.nix , який вважається частиною configuration.nix , тому що він прописаний в configuration.nix у верхніх рядках як:

imports =

[

./hardware-configuration.nix

];

Також можна підключати інші створені вами файли конфігурації. Або все перенести в один configuration.nix .

Насправді nix використовує модульну систему для своєї декларативної конфігурації, configuration.nix це теж модуль, до якого можна підключати інші модулі. 

Структура модуля виглядає так:

{ config, pkgs, ... }:

{

imports =

[ путь к импортируемуму другому модулю, например:

./hardware-configuration.nix

];

options = {

объявления опций

};

config = {

конфигурация опций

};

}

Відкриємо hardware-configuration.nix у редакторі також, як configuration.nix і розбиратимемося що там є.

boot.initrd.availableKernelModules - включаються перші під час завантаження модулі ядра.

boot.initrd.kernelModules - також модулі, що підключаються, але тільки які повинні бути завантажені після основних модулів ядра.

Тут можна увімкнути вбудований в ядро драйвер відеокарти та модуль віртуалізації процесора.

Наприклад, для включення драйвера відеокарт від AMD і віртуалізації процесора AMD, рядок буде виглядати так:

boot.initrd.kernelModules = [ "amdgpu" "kvm-amd" ];

Також можна керувати утилітою sysctl.

Наприклад, відомий трюк, щоб швидкість при копіюванні інший накопичувач, наприклад на флешку, показувала як у Windows, а чи не якісь позамежні швидкості копіювання в ОЗУ. Рядок з параметрами виглядатиме так:

boot.kernel.sysctl = { "vm.dirty_bytes" = 2097152; "vm.dirty_background_bytes" = 2097152; };

Щоб система бачила файлову систему ntfs, додамо нижче рядки:

boot.supportedFilesystems = [ "ntfs" ];

Монтування дисків

Про монтування дисків хочу попередити, ні які програми за типом gnome-disk-utility не зможуть переписати fstab. Такими утилітами можна змонтувати диск, але при наступному завантаженні системи параметри не збережуться.

Щоб змонтувати диск, який ви не змонтували під час встановлення, можна додати до конфігурації таким чином. Пишемо в hardware-configuration.nix :

fileSystems."/mnt/nvme0n1p1" =

{ device = "/dev/disk/by-uuid/5c9fc239-e0d2-45d5-a960-90869da63e99";

fsType = "ext4";

options = [ "noatime" "nodiratime" "discard" "x-gvfs-show" ];

};

Тут потрібно вказати, куди монтувати, uuid – вашого диска та параметри монтування.

Відкриваємо термінал. Застосовуємо реконфігурацію.

sudo nixos-rebuild switch

Спочатку цю команду доведеться застосовувати часто.

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Акаунт

Навігація

Пошук

Пошук

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.