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

WSL环境下NixOS无法更新Nix至2.11.0版本求助

问题原因与解决方案

在WSL环境的NixOS中,你遇到的升级无效问题核心在于系统级Nix与用户级Nix的优先级冲突:

  • 你通过nix-env安装的是用户环境的Nix版本,但WSL的NixOS默认使用系统级路径(如/run/current-system/sw/bin/nix)的Nix,该路径在PATH中的优先级高于用户级的~/.nix-profile/bin
  • 仅重启nix-daemon不会更新系统级的Nix,因为NixOS的系统组件需通过nixos-rebuild来部署变更

解决步骤

  1. 确认当前Nix的调用路径
    执行以下命令查看正在使用的Nix位置:

    which nix
    

    如果输出是/run/current-system/sw/bin/nix,说明确实在使用系统级Nix。

  2. 更新NixOS系统配置
    编辑系统配置文件/etc/nixos/configuration.nix,添加或修改Nix包的指定版本:

    # 直接指定2.11.0版本
    nix.package = pkgs.nixVersions."2.11.0";
    # 或者如果使用最新稳定频道,可直接用pkgs.nix(需确保频道同步到对应版本)
    # nix.package = pkgs.nix;
    
  3. 同步频道并重建系统
    先确保频道是对应版本的NixOS频道(比如23.05版本自带Nix 2.11.0):

    # 若频道不正确,先添加正确频道(可选)
    nix-channel --add https://channels.nixos.org/nixos-23.05 nixos
    # 更新频道
    nix-channel --update
    # 重建系统并应用变更
    nixos-rebuild switch
    
  4. 重启WSL实例
    在Windows终端执行:

    wsl --terminate NixOS
    

    重新打开WSL的NixOS终端后,执行nix --version即可看到版本已更新。


内容的提问来源于stack exchange,提问作者Pierre-olivier Gendraud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:10:41