您可以使用
path
string
-串联。
environment.etc."sb_hosts".source =
fetchFromGitHub {
owner = "StevenBlack";
repo = "hosts";
rev = "v2.1.19";
sha256 = "1wrwlgcy46vwji0n1imnmlci03ln0v4qd27cw8cwpag57w06n4z7";
} + "/hosts";
为什么这样做有效?
您可以将路径与字符串连接以引用子路径(它也将是
路径
).派生(例如
fetchFromGitHub args
)隐式强制到构建后将生成的路径。
为什么问题中提出的解决方案不起作用?
builtins.filterSource
lib.cleanSource{,With}
)我会复印一份
路径
之后
谓词被应用。
__pycache__
或者
.git
已经
错误消息是什么意思?
/nix/store/r3xnh6ricqa7lnnbb0ka5vb0h6rw28ap-source
是派生的输出,因此Nix强制它存在(或已构建),然后才能依次构建使用它的任何对象。为什么他们选择称之为这种关系
refers
这远远超出我的理解。
解决问题
实际的
问题
您可以将额外的条目添加到
/etc/hosts
使用
networking.extraHosts
选择权。此属性要求内容直接作为字符串,但可以使用
builtins.readFile
.
networking.extraHosts = builtins.readFile
(fetchFromGitHub {
owner = "StevenBlack";
repo = "hosts";
rev = "v2.1.19";
sha256 = "1wrwlgcy46vwji0n1imnmlci03ln0v4qd27cw8cwpag57w06n4z7";
} + "/hosts");