08-11-2020

Unu semajno de NixOS

4 minutoj

Kiel vi eble vidis ĉe Mastodon, mi provas NixOS dum pli ol semajno nun kaj jen kelkaj komentoj pri kiel funkcias la distro kaj kio ne funkcias por mi.

Unue ĉio estas NixOS deklarita en agorda dosiero situanta ĉe /etc/nixos/configuration.nix kie vi deklaras pakaĵojn, kiujn vi volas instali, servojn por starti, udev-regulojn, ECT, vi ricevas ĝin.

Ĉi tio estas la unua tre stranga afero, ĉar vi ne vere instalas pakojn kun la CLI rekte (eĉ se vi povas), anstataŭe vi modifas la agordan dosieron kaj rekonstruas la sistemon per `nixos-rebuild switch ‘.

NixOS estas kreita tiel, ke ĉio celas esti reproduktebla. Ekzemplo: se vi volas akiri la saman aranĝon kiel mi, vi povas simple preni [mian agordan repostaron] (https://forge.tedomum.net/jae/nixos-configs), kloni ĝin ĉe via instalado de NixOS, rulu `nixos-rebuild switch ‘kaj voilà, vi havos la samajn programojn kiel mi instalitaj same kun la sama versio (proksimume).

En ĉi tiu distro, aldoni uzanton estas vere facila kaj tiel funkcias:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{ config, pkgs, ... }:

{

    users.groups.plugdev = {};

    users.users.jae = {
        isNormalUser = true;
        extraGroups = [ "wheel" "docker" "adbusers" "plugdev" ];
        shell = pkgs.zsh;
        packages = with pkgs; [
            # Games
            minetest stepmania lutris-free pcsx2
            # Misc audio / video / image
            pulseeffects ffmpeg-full obs-studio inkscape krita
            # Useful software
            mumble qbittorrent libreoffice ledger-live-desktop
            # Dev
            jetbrains.idea-community lazygit gnome3.zenity insomnia jetbrains.rider mono msbuild dotnet-sdk_3 ganttproject-bin kubectx
            # SDR
            rtl-sdr gqrx gpredict noaa-apt welle-io
        ];
    };
    users.extraGroups.vboxusers.members = [ "jae" ];
}

Ni vidu, kion ĉio faras!

1
 users.groups.plugdev = {};
Kreas grupon nomatan plugdev, ne atentu ĝin, ĝi estas nur provo por la programo Ledger Live.

1
 isNormalUser = true;
Diras al la os, ke la nuna uzanto estas normala. Ĝi kreos hejman dosierujon kaj agordos la aprioran ŝelon.

1
 extraGroups = [ "wheel" "docker" "adbusers" "plugdev" ];
Ĉi tie ni starigas la grupojn, en kiuj la uzanto donas specialajn permesojn.

1
 shell = pkgs.zsh;
Kiel vi eble divenis, ni agordas la defaŭltan uzantan ŝelon al ZSH.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 packages = with pkgs; [
            # Games
            minetest stepmania lutris-free pcsx2
            # Misc audio / video / image
            pulseeffects ffmpeg-full obs-studio inkscape krita
            # Useful software
            mumble qbittorrent libreoffice ledger-live-desktop
            # Dev
            jetbrains.idea-community lazygit gnome3.zenity insomnia jetbrains.rider mono msbuild dotnet-sdk_3 ganttproject-bin kubectx
            # SDR
            rtl-sdr gqrx gpredict noaa-apt welle-io
        ];
Tie ni instalas po-uzantajn pakaĵojn ĉar jes, NixOS subtenas tion, ĉiu uzanto povas havi siajn proprajn pakaĵojn, al kiuj aliaj uzantoj ne povas aliri.

Korekto de hvdijk pri Hacker News, “Aliaj uzantoj povas aliri tiujn pakaĵojn se ili volas. Tiuj pakaĵoj ne aperos en $ PATH de aliaj uzantoj, do aliaj uzantoj ne estos trafitaj de ili, sed ili povus vidu, kio estas en / nix / store, se ili volus. Ĉi tio gravas, kiam vi pensas meti privatajn datumojn (kiel ĉifran ŝlosilon) en pakon: estas grave, ke vi ne faru tion en pluruzanta sistemo. "

Agordi NixOS por ĉiutaga uzo finfine estas tre facila (kvankam mi havas iom da problemo ekfunkciigi Ledger Live; kiu estas la plej granda problemo, kiun mi havis ĝis nun).

Nun ni parolu pri tio, kie mi ekhavis problemojn. Kiel vi eble scias, mi estas programisto kaj ĉiutage mi bezonas kompili, testi, kuri ktp. NixOS donis al mi iom da problemo nur ruli iujn programojn de fonto kiel Element DesktopTeDomum IMG kiel la sistemo estas konstruita , multaj dosierujoj estas nurlegeblaj kaj programoj ne povas esti instalitaj tutmonde per NPM aŭ PIP. Mi finis uzi Docker por krei la programojn (eĉ se ĝi bezonis iom pli da tempo).

Necesas diri, ke preskaŭ ĉiuj aliaj projektoj funkciis. Se vi volas, ke NodeJS lanĉu projekton ekzemple, vi povas simple fari nix-shell -p nodejs kaj jen vi, ŝelo kun nodejs instalita, preta fari tion, kion vi volas.

Je la fino, NixOS alportas tre interesajn konceptojn kiel vere grandan reprodukteblon, sed novaj uzantoj povas senti sin perditaj, ĉar ĝia maniero labori estas vere malsama ol konvenciaj Linuksaj distribuoj. Mi donos al NixOS pli da tempo kaj skribos sekvaĵon post iom da tempo por vidi kiel ĉio iris.

Se vi volas provi ĝin, la oficiala retejo de NixOS atendas vin!

Jen ĉio por hodiaŭ, Ni revidos vin venontfoje! Se vi ŝatas mian enhavon, ne forgesu aboni per RSS!

Parolu pri ĝi ĉe Hacker News