在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包的权限:
之后重新运行Home-Manager构建命令。sudo chmod -R a+rX /nix/store/42yqjb325cpgs1gycv3sk9dki1y0qli0-neovim-0.8.0
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
相关产品推荐
相关产品推荐

