我正在从 ubuntu 迁移到 nixos。我想保留位于另一个磁盘上的以前的主目录。
我成功安装了 nixos。然后我添加了
fileSystems."/home" = {
device= "/dev/disk/by-uuid/123...;
fsType = "ext4";
};
至configuration.nix
,这似乎正确安装了磁盘。
然而,我无法登录 kde不再与我的用户联系。这是
users.users.manuel = {
isNormalUser = true;
uid = 1000; # all files in /home/manuel have uid 1000
home=/home/manuel;
extraGroups = [ "wheel" "networkmanager ];
};
该组不匹配:
> ll /home
drwxr-rxr-x 55 manuel 1000 4.0K Mar 7 16:58 manuel/
用户可以登录控制台并写入/home/manuel
。但它的主页~
位于/nix/store/1gr0...-manuel
。
我怎样才能解决这个问题?
答案1
使用字符串(而非路径)值作为属性值users.users.manuel.home
。
home = "/home/manuel";
Nix 具有原生路径类型。路径文字(例如)/home/manuel
会内置到不可变包中,并且生成的只读 nix 存储路径将用作值。这对于在包中包含源文件很有用,但不是这里需要的。相反,请使用字符串文字(例如)"/home/manuel"
。