You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Home-Manager配置中添加Neovim引发权限问题

macOS Nix环境下Home-Manager配置Neovim权限错误排查

问题场景

在macOS的Nix环境中,通过Home-Manager添加Neovim配置,配置代码如下:

programs.neovim = {
    enable = true;
    package = pkgs.neovim;
    viAlias = true;
    extraPackages = [
      pkgs.rnix-lsp
    ];
  };

执行构建后出现权限拒绝错误,日志如下:

these 5 derivations will be built:
  /nix/store/7z24wy5ccgjhkw8zc39926z5r0pqfd59-neovim-0.8.0.drv
  /nix/store/18kwwzrpsqaa6whyz3shlmidz0lp5sx5-home-manager-fonts.drv
  /nix/store/zq40m1z7bl7azgay2gd39c769j5ypszd-home-manager-path.drv
  /nix/store/37hvbw396bp6j89grhyqqxb772vbj6j4-activation-script.drv
  /nix/store/dghqgkn78cpzq2fwclbg1rkjybwg7dr4-home-manager-generation.drv
building '/nix/store/7z24wy5ccgjhkw8zc39926z5r0pqfd59-neovim-0.8.0.drv'...
/nix/store/lig4bdiwsr9lfb8x8plpnasg95vrw98q-hook/nix-support/setup-hook: line 115: /nix/store/42yqjb325cpgs1gycv3sk9dki1y0qli0-neovim-0.8.0/bin/nvim-python3: Permission denied
error: builder for '/nix/store/7z24wy5ccgjhkw8zc39926z5r0pqfd59-neovim-0.8.0.drv' failed with exit code 1;
       last 1 log lines:
       > /nix/store/lig4bdiwsr9lfb8x8plpnasg95vrw98q-hook/nix-support/setup-hook: line 115: /nix/store/42yqjb325cpgs1gycv3sk9dki1y0qli0-neovim-0.8.0/bin/nvim-python3: Permission denied
       For full logs, run 'nix log /nix/store/7z24wy5ccgjhkw8zc39926z5r0pqfd59-neovim-0.8.0.drv'.
error: 1 dependencies of derivation '/nix/store/18kwwzrpsqaa6whyz3shlmidz0lp5sx5-home-manager-fonts.drv' failed to build
error: 1 dependencies of derivation '/nix/store/zq40m1z7bl7azgay2gd39c769j5ypszd-home-manager-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/dghqgkn78cpzq2fwclbg1rkjybwg7dr4-home-manager-generation.drv' failed to build

可能原因及解决方法

1. Nix存储路径权限异常

/nix/store下的文件默认是全局可读可执行的,出现权限拒绝通常是目标文件nvim-python3的权限被意外篡改,或是Nix存储的挂载权限存在问题。

  • 修复权限:执行以下命令重置该Neovim包的权限:
    sudo chmod -R a+rX /nix/store/42yqjb325cpgs1gycv3sk9dki1y0qli0-neovim-0.8.0
    
    之后重新运行Home-Manager构建命令。

2. Nix缓存损坏

之前构建Neovim时产生的缓存文件损坏,导致生成的推导文件权限不符合预期。

  • 清理缓存:执行以下命令清理旧的推导和缓存:
    nix-collect-garbage -d
    
    清理完成后重新尝试构建。

3. 旧版本Nix/Home-Manager兼容性问题

你使用的Neovim版本是0.8.0,旧版本的Nix或Home-Manager在macOS平台可能存在Python相关的权限处理bug。

  • 升级组件:更新Nix和Home-Manager到最新版本,之后重新配置Neovim。

内容的提问来源于stack exchange,提问作者wirrbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:25:35