Это известная проблема, описанная в Red Hat Bugzilla :
нас поражает отсутствие в systemd функции случайной задержки в cron. Я видел, что для этого есть запрос на добавление функции. Но до тех пор кажется, что вручную переводить в спящий режим перед запуском updateb - это обходной путь . Я бы предложил либо вернуться к использованию cron для запуска updatedb, либо поставить случайный или конкретный сон перед запуском updatedb: например. sleep 1h
Временное решение :
sed 's / daily / weekly /' /usr/lib/systemd/system/mlocate-updatedb.timer> /etc/systemd/system/mlocate-updatedb.timer { {1}}
Теперь мне нужно только терпеть медленную загрузку в понедельник.
С точки зрения реализации environment.systemPackages
, я предполагаю, что это значение будет получено из различных сценариев, таких как установка nixos -, перестройка nixos -и т. д., которые можно найти здесь :https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/installer/tools
Но, похоже, это просто список (на языке Nix ).
Посмотрев на них лично, вероятно, было бы полезно сначала понять, как работает Nix, а затем функциональность, связанную с Nixos.
users.users.
Я попытаюсь перефразировать вторую часть моего вопроса (, что сделало его довольно запутанным, извините за это)
Предположим, у меня есть что-то вроде:
blah = [ pkgs.hello ];
есть ли функция f, которую я мог бы сделать:
f blah
и это сделало бы package hello присутствующим в системе.
К настоящему времени я понял, что это своего рода противоречие, потому что, если бы оно было, Никс не был свободен от побочных -эффектов. Так что я полагаю, что Крис Стричински прав, есть какой-то внешний инструмент, для которого environment.systemPackages подходит, а бла — нет. Однако я, вероятно, могу реализовать f как
environment.systemPackages ++ blah
или что-то в этом роде (рассматривают образцы кода как псевдокод, а не как синтаксически правильный Nix ).