command-not-found 不工作,因为缺少 programs.sqlite

command-not-found not working because programs.sqlite is missing

我在不稳定的 nix 频道:

# nix-channel --list
nixos https://nixos.org/channels/nixos-unstable
# nix-channel --update
downloading Nix expressions from ‘https://nixos.org/releases/nixos/unstable/nixos-16.09pre78848.9549257//nixexprs.tar.xz’...
downloading ‘https://nixos.org/releases/nixos/unstable/nixos-16.09pre78848.9549257//nixexprs.tar.xz’... [ [6192/6921 KiB, 6143.1 KiB/s]
unpacking channels...

出于某种原因,command-not-found 不起作用:

$ command-not-found
/home/fabian command-not-found 
DBI connect('dbname=/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite','',...) failed: unable to open database file at /run/current-system/sw/bin/command-not-found line 13.
cannot open database `/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' at /run/current-system/sw/bin/command-not-found line 13.

的确,/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite 不存在。这可能是什么原因?

显然它已在最近的 channels/nixos 版本中删除并等待替换 - 参考 (1) (2)

FWIW,似乎 nixos-install 没有正确生成 programs.sqlite

我在全新的 17.03 安装上看到了同样的错误,即使它在我拥有的其他系统上也能在 17.03 上运行。

手动 运行宁 nix-channel --update 是为我修复它所需要的全部。 (我没有 运行 nixos-rebuild 或任何会改变 command-not-found 版本的东西。)