WSL环境下NixOS安装Visual Studio Code失败问题求助
解决NixOS WSL中安装VSCode的非自由许可证问题
问题原因
NixOS默认禁止安装非自由许可证软件,官方Visual Studio Code(pkgs.vscode)属于非自由软件包,因此触发了安装拦截。
解决方案
方案1:全局允许非自由软件包
在/etc/nixos/configuration.nix中添加全局允许非自由包的配置项,所有非自由软件即可正常安装:
修改后的完整配置示例:
{ config, lib, pkgs, ... }: { imports = [ <nixos-wsl/modules> ]; wsl.enable = true; wsl.defaultUser = "nixos"; # 开启全局非自由包支持 nixpkgs.config.allowUnfree = true; environment.systemPackages = [ pkgs.git pkgs.vscode ]; system.stateVersion = "23.05"; }
方案2:仅允许VSCode单个非自由包
若不想全局放开非自由软件权限,可通过规则仅允许VSCode安装:
修改后的配置示例:
{ config, lib, pkgs, ... }: { imports = [ <nixos-wsl/modules> ]; wsl.enable = true; wsl.defaultUser = "nixos"; # 仅允许VSCode的非自由许可证 nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "vscode" ]; environment.systemPackages = [ pkgs.git pkgs.vscode ]; system.stateVersion = "23.05"; }
方案3:使用开源替代版本
如果不想启用非自由软件,可以安装VSCode的开源版本vscode-foss,无需非自由许可证:
修改environment.systemPackages部分:
environment.systemPackages = [ pkgs.git pkgs.vscode-foss ];
生效步骤
修改完配置文件后,执行以下命令应用更改:
sudo nixos-rebuild switch
内容的提问来源于stack exchange,提问作者Pierre-olivier Gendraud
相关产品推荐
相关产品推荐

