【问题标题】:NixOS - How to configure config property which is a type of types.linesNixOS - 如何配置属于 types.lines 类型的配置属性
【发布时间】:2022-08-06 15:42:00
【问题描述】:

尝试安装 Flexget。在 Options 网站上,它显示有 config 定义 here

它是如何工作的?它说类型是types.lines。尝试写入一些随机文本,但未创建配置文件并且守护程序无法启动。

编辑:

所以这是我在configuration.nix 中的配置:

  services.flexget = {
    enable = true;
    config = \"asdas\\n asdas\";
  };

当我运行sudo nixos-rebuild switch 时,会发生以下情况:

building Nix...
building the system configuration...
NOT restarting the following changed units: systemd-fsck@dev-disk-by\\x2dlabel-FuHua.service, systemd-fsck@dev-disk-by\\x2duuid-25A4\\x2d32EA.service
activating the configuration...
setting up /etc...
reloading user units for shalva...
setting up tmpfiles
reloading the following units: dbus.service
the following new units were started: flexget-runner.timer, flexget.service
warning: the following units failed: flexget-runner.service

× flexget-runner.service - FlexGet Runner
     Loaded: loaded (/etc/systemd/system/flexget-runner.service; linked; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2022-04-28 10:34:20 UTC; 129ms ago
TriggeredBy: ● flexget-runner.timer
    Process: 92136 ExecStart=/nix/store/1pdq67nfjw2mad5s679dfgm5h98bm4xm-flexget-3.1.153/bin/flexget -c /var/lib/deluge/flexget.yml execute (code=exited, status=217/USER)
   Main PID: 92136 (code=exited, status=217/USER)
         IP: 0B in, 0B out
        CPU: 799us

Apr 28 10:34:20 Lenovo-7200 systemd[1]: Started FlexGet Runner.
Apr 28 10:34:20 Lenovo-7200 systemd[92136]: flexget-runner.service: Failed to determine user credentials: No such process
Apr 28 10:34:20 Lenovo-7200 systemd[92136]: flexget-runner.service: Failed at step USER spawning /nix/store/1pdq67nfjw2mad5s679dfgm5h98bm4xm-flexget-3.1.153/bin/flexget: No such process
Apr 28 10:34:20 Lenovo-7200 systemd[1]: flexget-runner.service: Main process exited, code=exited, status=217/USER
Apr 28 10:34:20 Lenovo-7200 systemd[1]: flexget-runner.service: Failed with result \'exit-code\'.
warning: error(s) occurred while switching to the new configuration

我认为问题出在/nix/store/1pdq67nfjw2mad5s679dfgm5h98bm4xm-flexget-3.1.153/bin/flexget -c /var/lib/deluge/flexget.yml。因为没有创建配置文件。这是它的输出:

shalva in Lenovo-7200 in ~ took 16s
❯ /nix/store/1pdq67nfjw2mad5s679dfgm5h98bm4xm-flexget-3.1.153/bin/flexget -c /var/lib/deluge/flexget.yml
Could not instantiate manager: Config `/var/lib/deluge/flexget.yml` does not appear to be a file.

我的期望是config = \"asdas\\n asdas\"; 至少应该在/var/lib/deluge/flexget.yml 创建配置文件,对吧?我知道它仍然会失败,因为它不是有效的配置,但至少应该创建它......

  • 您能否提供更多详细信息,例如配置的相关部分和服务中的任何日志?为了确定,请原谅我:您是否将services.flexget.enable 选项设置为true
  • 您好,感谢您的回复,我已经更新了问题。是的,我有enable = true;
  • 根据source file responsible for this option,配置文件确实是在\"${services.flexget.homeDir}/flexget.yml\" 创建的。默认情况下,services.flexget.homeDir/var/lib/deluge,因此应该在正确的位置创建文件。请检查您没有覆盖services.flexget.homeDir。我认为您甚至可以使用nixos-option 检查它的最终值是多少(您必须安装它,默认情况下它不捆绑)。

标签: nix nixos


【解决方案1】:

Flexget 是一个旨在与 deluge 一起运行的软件,因此它希望用户 deluge 及其主目录可用。该服务不会自行创建用户deluge

启用 deluge 和 flexget 将正确启动:

services.deluge.enable = true;
services.deluge.package = pkgs.deluge-2_x;

如果您只想在没有 deluge 的情况下运行 flexget,您需要创建目录并更改 flexget 用户并手动创建用户 deluge。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2017-12-10
    • 2010-11-29
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多