Как установить sysctl fs.notify.max_user_watches в GUIX? (система guix: ошибка: служба «sysctl» предоставлена более одного раза)
IDE, такие как PyCharm, работают лучше, когдаfs.inotify.max_user_watches
установлен на высоком уровне. Как это сделать в GUIX?
Я помню, что подход Draketo работал еще несколько месяцев назад: https://www.draketo.de/software/guix-config.html
(service sysctl-service-type
(sysctl-configuration
(settings '(("fs.file-max" . "500000")
("fs.inotify.max_user_watches" . "524288")))))
в .
Например, этот минимальныйconfig.scm
(use-modules (gnu))
(use-service-modules desktop xorg)
(operating-system
(locale "en_US.utf8")
(timezone "Europe/Amsterdam")
(keyboard-layout
(keyboard-layout "us" "us-intl"))
(host-name "abcd")
(services
(append
(list (service gnome-desktop-service-type)
(service sysctl-service-type
(sysctl-configuration
(settings '(("fs.file-max" . "500000")
("fs.inotify.max_user_watches" . "524288")))))
)
%desktop-services))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout keyboard-layout)))
(file-systems
(cons* (file-system
(mount-point "/")
(device
(uuid "11111111-1111-1111-1111-111111111111"
'btrfs))
(type "btrfs"))
(file-system
(mount-point "/boot/efi")
(device (uuid "1111-1111" 'fat32))
(type "vfat"))
%base-file-systems)))
выдаст эту ошибку при использованииguix system build -n config.scm
:
error: sysctl-service-type: unbound variable
hint: Did you forget `(use-modules (gnu services sysctl))'?
Однако добавив эту строку вверху:
(use-modules (gnu))
(use-service-modules desktop xorg)
(use-modules (gnu services sysctl))
(operating-system
...
или это
(use-modules (gnu))
(use-service-modules desktop xorg sysctl)
(operating-system
...
приведет к этой ошибке:
guix system: error: service 'sysctl' provided more than once
Гикс недавно:
$ guix -V
guix (GNU Guix) 1b6e7157cd30ffc2b29779fe6d5cb4ddbbc6f331
Редактировать:
Возможно, связанный с этим отчет об ошибке: «[ИСПРАВЛЕНИЕ] gnu: усиление ссылок на файловую систему». https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47013
Возможно, связанная ветка электронной почты: «Как составить тип sysctl-service?» https://lists.gnu.org/archive/html/help-guix/2021-03/msg00066.html
Очевидно устаревшая документация: https://guix.gnu.org/manual/en/html_node/Miscellaneous-Services.html#Miscellaneous-Services , в которой есть этот сломанный (?) пример.
(service sysctl-service-type
(sysctl-configuration
(settings '(("net.ipv4.ip_forward" . "1")))))
Существует более новая документация https://git.savannah.gnu.org/cgit/guix.git/tree/doc/guix.texi со следующими инструкциями:
С
sysctl-service-type
используется в списках служб по умолчанию,%base-services
и%desktop-services
, вы можете использоватьmodify-services
чтобы изменить его конфигурацию и добавить нужные параметры ядра.
с этим примером
(modify-services %base-services
(sysctl-service-type config =>
(sysctl-configuration
(settings (append '(("net.ipv4.ip_forward" . "1"))
%default-sysctl-settings)))))
Однако мне неясно, куда это положить. Поставив его послеservices
определение дает эту ошибку:
error: (modify-services %base-services (sysctl-service-type config => (sysctl-configuration (settings (append (quote (("net.ipv4.ip_forward" . "1"))) %default-sysctl-settings))))): invalid field specifier