微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nixos vm 中的 nixos-shell 似乎无法识别存在的存储路径?

如何解决nixos vm 中的 nixos-shell 似乎无法识别存在的存储路径?

我正在使用 https://github.com/Mic92/nixos-shell 构建/运行 VM。

在此 VM 中,我尝试运行 nixos-shell,但在添加后最初失败并出现错误

{...}: {
  nix.nixPath = [
    "nixpkgs=${pkgs.path}"
  ];
}

它现在可以工作了,但是当尝试通过 nix-shell 调用某些东西时,它似乎正在下载应该已经存在于主机中的依赖项。

nix-shell -p vim                                                                                       /bambie
these paths will be fetched (7.00 MiB download,33.13 MiB unpacked):
  /nix/store/1cbk7i6dg26cygss2b6w8xq4dnj50z31-vim-8.2.1522
copying path '/nix/store/1cbk7i6dg26cygss2b6w8xq4dnj50z31-vim-8.2.1522' from 'https://cache.nixos.org'...
^Cerror: interrupted by the user

为什么会出现这种情况?当 VM 上存在路径 (/nix/store/1cbk7i6dg26cygss2b6w8xq4dnj50z31-vim-8.2.1522) 时(我这么说是因为它在我执行 ls /nix/store/1cbk7i6dg26cygss2b6w8xq4dnj50z31-vim-8.2.1522 时存在)?

解决方法

不是真正的解决方案,但我相信这可以解释为什么会发生这种行为:

这里的问题是,当您在 VM 中使用 Nix 时,存储 来自主机的路径未在 Nix 的 SQLite 数据库中注册。在 另一方面,来自主机的所有存储路径都应该是 在 VM 中可用(当然,如果 VM 在内部运行,则除外) Nix 构建过程)。

https://discourse.nixos.org/t/how-to-build-a-nixos-vm-with-nix-in-which-nixos-rebuild-is-a-no-op/7937/2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。