ΠΠ΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° NixOS 21.11, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Nix ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° ΡΠ΅Π΄ΠΈΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ NixOS ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» (configuration.nix), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π±ΡΡΠ·ΠΎ Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (ΠΏΠ°ΠΊΠ΅ΡΡΡ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠ° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ³Π»ΠΎΠ±ΠΊΠΈ. Π Π°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΏΡΠ»Π½ΠΎΡΠΎ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ KDE Π΅ 1.6 GB, GNOME Π΅ 2 GB, Π° ΡΡΠΊΡΠ°ΡΠ΅Π½Π°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π΅ 765 MB.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- Π Π°Π±ΠΎΡΠ½ΠΈΡΡ ΠΏΠ»ΠΎΡ Π½Π° KDE Plasma Π΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ΅Π½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ GNOME 41 ΠΈ Pantheon 6 (ΠΎΡ Elementary OS 6).
- ΠΠΌΠ΅ΡΡΠΎ iptables ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°Π±ΠΎΡΡΡ iptables-nft, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΡΡ ΡΡΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄, Π½ΠΎ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ nf_tables.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Systemd 249, PHP 8.0, Python 3.9, PostgreSQL 13, bash 5, OpenSSH 8.8p1.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ LXD. ΠΠ½Π΅Π΄ΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° LXD ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° nixpkgs. Π‘ΡΠ·Π΄Π°Π²Π° nixOS ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° nixos-rebuild, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 40 Π½ΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Git, btrbk (btrfs Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅), clipcat (ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΊΠ»ΠΈΠΏΠ±ΠΎΡΠ΄Π°), dex (Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° OAuth 2.0), Jibri (ΡΡΠ»ΡΠ³Π° Π·Π° Π·Π°ΠΏΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π½Π° Jitsi Meet), Kea (DHCP ΡΡΡΠ²ΡΡ), owncast (ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³) Π²ΠΈΠ΄Π΅ΠΎ) , PeerTube, ucarp (ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° CARP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°), opensnitch (Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π°), Hockeypuck (OpenPGP ΠΊΠ»ΡΡΠΎΠ² ΡΡΡΠ²ΡΡ), MeshCentral (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π° TeamViewer), influxdb2 (Π‘Π£ΠΠ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ), fluidd (ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° 3D ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ), postfixadmin (ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈ ΡΡΡΠ²ΡΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Postfix), seafile (ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊ).
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Nix, ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π΄ΡΡΠ²ΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /nix/store ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡΡ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ /nix/store/a2b5...8b163-firefox-94.0.2/, ΠΊΡΠ΄Π΅ΡΠΎ "a2b5..." Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅. ΠΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°. ΠΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ GNU Guix, ΠΊΠΎΠΉΡΠΎ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Nix.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΡΠ΅Π· ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Ρ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π²Π΅ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΊΠ°ΠΊΡΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ (ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΡΠ°ΠΌΠΎ Π΄Π΅Π»ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ), ΡΠ°ΠΊΠ° ΠΈ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° Ρ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ»Π΅ΠΊΡΠΈΡΡΠ° ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Nixpkgs.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru