Linux
NixOS 可重現的使用者和軟體包?
我是NixOS的新手,正在嘗試學習它的概念。我對此感到興奮的原因之一是我希望它能夠為我提供可重現的系統配置,類似於使用Ansible 進行 localhost。但是,我不確定如何實現這一目標。
我知道
environment.systemPackages
in/etc/nixos/configuration.nix
,但這些只是系統範圍的包。我也知道該nix-env
命令可以為使用者安裝一個包,但我寧願在一個可以簽入原始碼控制的文件中聲明這樣的包。是否有我可以配置的特定文件(類似於劇本),我可以在其中為使用者聲明一組包?或者至少指定它的“使用者環境”或“配置文件”(不確定哪個術語是正確的)?
理想情況下,我可以獲取一些文件,將它們複製到另一台電腦,執行命令,並且它與舊電腦處於相同狀態,包括具有不同包集的多個使用者。
最後,我的案例是否意味著我永遠不應該使用
nix-env
來安裝包?
所以我問了 Freenode #nixos IRC 頻道上的人們,他們讓我得到了這個答案。
我需要創建一個
~/.nixpkgs/config.nix
文件。在該文件中,我需要使用buildEnv 函式創建一個包集合併使用.nix-env
安裝 ad-hoc 包 using
nix-env
不會更新~/.nixpkgs/config.nix
,所以對於我的案例,我想避免這樣做。雖然,值得注意的是安裝臨時包使用nix-env
仍然對實驗有用,因為使用--remove-all
開關安裝包集合將刪除該包集合中沒有的所有內容。