首页 > 解决方案 > Nix 使用 ~/.nixpkgs/config.nix 安装不稳定的软件包

问题描述

如何使用nix-env -i allvia安装来自不稳定通道的软件包~/.nixpkgs/config.nix

标签: nix

解决方案


在您的开头添加以下部分~/.nixpkgs/config.nix

let unstable = import <nixpkgs> {}; in

不稳定的通道名称在哪里nixpkgs(通过 nix-channel --list 检查其名称)。

并在您希望通过不稳定安装的软件包前加上unstable..

示例 - 还可以访问不稳定的用法nix-env -i

let
  config = {
    allowUnfree = true;

    packageOverrides = pkgs: with pkgs; 
      let jdk = openjdk11; in rec {
      unstable = import <nixpkgs-unstable> { inherit config; };

      all = pkgs.buildEnv {
        name = "all";

        paths = [
          htop
          nox
          nix-info
          nix-index
          haskell.compiler.ghc864
          haskellPackages.cabal-install
          unstable.haskellPackages.stack
          haskellPackages.hoogle
          haskellPackages.ghcid
          unstable.haskellPackages.cabal2nix
        ];
      };
    };
  };
in config

或者你也可以这样做:

let unstable = import <nixpkgs> {}; in
{
  allowUnfree = true;

  packageOverrides = pkgs_: with pkgs_;
    let jdk = openjdk11; in {

    all = with pkgs; buildEnv {
      name = "all";

      paths = [
        htop
        nox
        nix-info
        nix-index
        haskell.compiler.ghc864
        haskellPackages.cabal-install
        unstable.haskellPackages.stack # this comes from the unstable channel
        haskellPackages.hoogle
        haskellPackages.ghcid
        unstable.haskellPackages.cabal2nix
      ];
    };
  };
}

推荐阅读