Uživatelské nástroje

Nástroje pro tento web


navody:distribuce:nixos

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
navody:distribuce:nixos [2017/10/31 08:48] – [Common issues] ssh, systemd232/233 rmarkonavody:distribuce:nixos [2023/12/09 14:02] (aktuální) – Opraven odkaz na navody VPS aither
Řádek 1: Řádek 1:
-===== NixOS =====+<page>manuals:distributions:nixos</page> 
 +====== NixOS =====
 +[[https://nixos.org|NixOS]] je distribuce založená na balíčkovacím systému Nix. 
 +Konfigurace systému a všech služeb se provádí deklarativně. Tato stránka popisuje 
 +použití NixOS na vpsFree.cz VPS. Pro více informací o NixOS obecně viz 
 +[[https://nixos.org/learn.html|dokumentace]].
  
-NixOS template is available based on NixOS 17.03. NixOS allows declarative configuration management of the whole system and deployed services.+===== Podporované verze ===== 
 +Poskytujeme šablony VPS pro stabilní vydání NixOS a průběžně pro NixOS unstable.
  
-==== Configuration ====+Sami NixOS používáme na naší 
 +[[https://github.com/vpsfreecz/vpsfree-cz-configuration|infrastruktuře]]. 
 +Naše virtualizační platforma [[navody:vps:vpsadminos|vpsAdminOS]] je dokonce 
 +na NixOS a nixpkgs založená.
  
-Configuration is available at <code>/etc/nixos/configuration.nix</code>+===== Prvotní konfigurace ===== 
 +VPS je vytvořeno ze šablony, která obsahuje minimální systém a SSH. 
 +Pro přihlášení je možné použít [[navody:vps:sprava#heslo_roota|vygenerované heslo]], 
 +nebo si nechat [[navody:vps:sprava#automaticke_vlozeni_klicu|nahrát veřejný klíč]] přes 
 +vpsAdmin. Systém lze pak spravovat pomocí ''nixos-rebuild'' nebo jiného nástroje 
 +na nasazení NixOS.
  
-This can be altered to change container configuration on the fly or for next rebootTry changing container hostname and running <code>nixos-rebuild switch</code> to build new configuration and directly switch to itTo switch to new configuration after reboot (set as a default boot profile) use <code>nixos-rebuild boot</code>+Naše VPS jsou linuxové kontejnery, není zde zavaděč, jádro je sdílené a je potřeba 
 +určité nastavení pro správnou funkci NixOSŠablona obsahuje tuto konfiguraci 
 +v souboru ''/etc/nixos/vpsadminos.nix'', který je naimportován z ''/etc/nixos/configuration.nix''
 +Aktuální modul s konfigurací je vždy možné stáhnout 
 +z [[https://github.com/vpsfreecz/vpsadminos/blob/staging/os/lib/nixos-container/vpsadminos.nix]].
  
-==== Package installation ====+===== Upgrade mezi verzemi =====
  
-Packages can be installed system wide via configuration.nix or for local profile via <code>nix-env</code>+Upgrade probíhá standardním způsobem ve VPS, v průběhu aktualizace (načtení channel s balíčky, zbuildění konfigurace) však může být třeba ve vpsAdminu v detailu VPS změnit použitou verzi distribuce na novější (právě instalovanou).
  
-To install vim use <code>nix-env -iA nixos.vim</code>+Nejprve si vylistujeme stávající channel a zjistíme tak verzi a název kanálu:
  
-To search for a package use <code>nix-env -qaP postgre</code>+<code>sudo nix-channel --list</code>
  
-==== Manual ====+Poté můžeme přidat channel nové verze na stejném kanálu (v případě VPS u vpsFree je to vždy nixos):
  
-Consult NixOS manual for more https://nixos.org/nixos/manual/+<code>sudo nix-channel --add https://nixos.org/channels/nixos-23.05 nixos</code>
  
-==== Common issues ====+Následně můžeme udělat update (načtení kanálu a balíčků z něj):
  
-=== SSH public key deployment fails ===+<code>sudo nix-channel --update</code>
  
-This can occur on first boot of the template when there's no ''/root'' yet. Disable automatic key deployment and deploy key manually **after** the containers boot.+A samotný upgrade systému:
  
-=== error: while setting up the build environment: unable to load seccomp BPF program: Invalid argument ===+<code>sudo nixos-rebuild switch --upgrade</code>
  
-Nix ≥ 1.11.10 requires seccomp, which is not available on vpsFree. To fix thispin Nix to 1.11.9 by adding the following option to ''configuration.nix'' and rebuilding the system:+V této fázi bude třeba velmi pravděpodobně změnit distribuci v detailu vps ve vpsAdminu a také upravit konfiguraci podle doporučení (různá změna konfiguracetvarů názvů hodnot..) která vyskočí v terminálu.
  
-<code> +===== Správa VPS ===== 
-    nix.package (import (pkgs.fetchFromGitHub { +Přejdi na [[:domu|návody VPS]] pro více informací o naší infrastruktuře a možnostech VPS.
- owner "NixOS"; +
- repo "nixpkgs"; +
- rev "300fa462b31ad2106d37fcdb4b504ec60dfd62aa"; +
- sha256 "1cbjmi34ll5xa2nafz0jlsciivj62mq78qr3zl4skgdk6scl328s"; +
-    }) {}).nix; +
-</code>+
  
-In the future, it will be possible to [[https://github.com/NixOS/nix/commit/1dd29d7aebae706f3e90a18bbfae727f2ed03c70|disable seccomp usage]]. 
- 
-=== systemd 233+ compatibility issues === 
- 
-Causes boot failures, workaround is pinning systemd to version 232: 
-<code> 
-    nixpkgs.config.packageOverrides = super:  
- let systemdGperfCompat = super.systemd.override { gperf = super.gperf_3_0; }; 
- in { 
-          systemd = systemdGperfCompat.overrideAttrs ( oldAttrs: rec { 
-            version = "232"; 
-            name = "systemd-${version}"; 
-            src = pkgs.fetchFromGitHub { 
-              owner = "nixos"; 
-              repo = "systemd"; 
-              rev = "66e778e851440fde7f20cff0c24d23538144be8d"; 
-              sha256 = "1valz8v2q4cj0ipz2b6mh5p0rjxpy3m88gg9xa2rcc4gcmscndzk"; 
-            }; 
-          }); 
-    }; 
-</code> 
- 
-==== Details ==== 
- 
-Log contents 
-<code> 
-Failed to canonicalize path /etc/systemd/system/local-fs.target.d: Too many levels of symbolic links 
- 
-$ journalctl -o verbose 
-    _EXE=/nix/store/n5ksbh1hx275zfbqbalhghzpxp1w73lf-systemd-234/lib/systemd/systemd 
-    _CMDLINE=/run/current-system/systemd/lib/systemd/systemd --system --deserialize 19 
-    CODE_FILE=src/shared/dropin.c 
-    CODE_LINE=133 
-    CODE_FUNC=unit_file_find_dir 
-    ERRNO=40 
-    MESSAGE=Failed to canonicalize path /etc/systemd/system/local-fs.target.d: Too many levels of symbolic links 
- 
-$ # strace output    
-open("/etc/systemd/system/local-fs.target", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = -1 ELOOP (Too many levels of symbolic links) 
-readlinkat(AT_FDCWD, "/etc/systemd/system/local-fs.target", "/nix/store/n5ksbh1hx275zfbqbalhg"..., 99) = 94  
-open("/nix/store/n5ksbh1hx275zfbqbalhghzpxp1w73lf-systemd-234/example/systemd/system/local-fs.target", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = 12  
-fcntl(12, F_GETFL)              = 0xa8000 (flags O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC) 
-fstat(12, {st_mode=S_IFREG|0444, st_size=507, ...}) = 0 
-fstat(12, {st_mode=S_IFREG|0444, st_size=507, ...}) = 0 
-getpid()                        = 1 
-fstat(12, {st_mode=S_IFREG|0444, st_size=507, ...}) = 0 
-read(12, "#  This file is part of systemd."..., 512) = 507 
-open("/dev/urandom", O_RDONLY|O_NOCTTY|O_CLOEXEC) = 13  
-read(13, "\26\265jV\260\276\7\3300\22J\264m~j\37", 16) = 16  
-close(13)                       = 0 
-read(12, "", 512)               = 0 
-close(12)                       = 0 
-open("/", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 12  
-openat(12, "etc", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 13  
-fstat(13, {st_mode=S_IFDIR|0755, st_size=50, ...}) = 0 
-close(12)                       = 0 
-openat(13, "systemd", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 12  
-fstat(12, {st_mode=S_IFDIR|0755, st_size=10, ...}) = 0 
-close(13)                       = 0 
-openat(12, "system", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = -1 ELOOP (Too many levels of symbolic links) 
-close(12)                       = 0 
-writev(3, [{"Failed to canonicalize path /etc"..., 104}, {"\n", 1}], 2) = 105 
-open("/", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 12  
-openat(12, "etc", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 13  
-fstat(13, {st_mode=S_IFDIR|0755, st_size=50, ...}) = 0 
-close(12)                       = 0 
-openat(13, "systemd", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = 12  
-fstat(12, {st_mode=S_IFDIR|0755, st_size=10, ...}) = 0 
-close(13)                       = 0 
-openat(12, "system", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|0x200000) = -1 ELOOP (Too many levels of symbolic links) 
-close(12)                       = 0 
-writev(3, [{"Failed to canonicalize path /etc"..., 100}, {"\n", 1}], 2) = 101 
-open("/etc/systemd/system/emergency.target", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = -1 ELOOP (Too many levels of symbolic links) 
-readlinkat(AT_FDCWD, "/etc/systemd/system/emergency.target", "/nix/store/n5ksbh1hx275zfbqbalhg"..., 99) = 95  
-open("/nix/store/n5ksbh1hx275zfbqbalhghzpxp1w73lf-systemd-234/example/systemd/system/emergency.target", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = 12  
-fcntl(12, F_GETFL)              = 0xa8000 (flags O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC 
-</code> 
navody/distribuce/nixos.1509439727.txt.gz · Poslední úprava: 2017/10/31 08:48 autor: rmarko