Из-за ошибки кажется, что вы пропустили ...
в списке аргументов, поэтому это должно работать:
{ config, pkgs, ... }:
{
environment.systemPackages = [
pkgs.firefox
];
}
(попытка более подробного объяснения следует :)
Ваш packages.nix
является функцией, а config
и pkgs
являются некоторыми из ее параметров.Однако, при более быстром тестировании я получил config, pkgs, lib, options, modulesPath
в качестве полного списка аргументов.
Ваш /etc/nixos/configuration.nix
является просто одним из многих модулей NixOS, и он оценивается с использованием механизма модулей NixOS вlib.evalModules
(определено в <nixpkgs/lib/modules.nix>
).Это немного особенный (но только немного), и он не оценивается напрямую, а через <nixpkgs/nixos/lib/eval-config.nix>
, который является точкой входа для оценки всей конфигурации NixOS (также используется в NixOps и при создании установочного носителя).для NixOS).Вы можете прочитать больше о модулях NixOS в руководстве в главе «Написание модулей NixOS» , хотя это на самом деле не нужно просто для использования NixOS.Возможно, было бы хорошо прокрутить его, прежде чем углубляться в исходный код модулей NixOS, что я узнал слишком поздно.