NixOS 외부에서 Nix 환경을 구성하는 방법은 무엇입니까?

NixOS 외부에서 Nix 환경을 구성하는 방법은 무엇입니까?

지금까지 저는 nix-env -i패키지를 설치하여 Nix 패키지 관리자를 사용해 보았습니다. 이제 다음과 같은 하나를 사용하여 관리하고 싶습니다 ~/configuration.nix.여기 예, 내 도트 파일에 버전을 지정할 수 있습니다. 현재 환경에서 이 구성을 생성할 수 있는 방법이 있습니까?

nixos-generate-config사용자 또는 시스템 수준 구성에 대해 찾을 수 있는 모든 정보는 NixOS에만 해당되며 파일을 생성하기 위해 실행했다고 가정합니다 . 이 도구는 nixpkgs에서 사용할 수 없기 때문에 이 도구는 NixOS 설치 생성에만 사용되며 일반 구성 파일 생성에는 사용되지 않는 것으로 보입니다.

또한 Nix 패키지 관리자가 설치 중에 이 파일을 생성하지 않는 이유는 무엇입니까? Nix(NixOS 아님) 사용자는 이 파일 없이 설치된 소프트웨어(예: Vim 플러그인)를 어떻게 구성합니까?

답변1

이 파일은 실제로 NixOS에만 해당되며 NixOS가 설치될 때 자동으로 생성됩니다. 즉, 해결책이 있습니다.

답변2

다음과 같은 nix 표현식을 사용하여 "nix 쉘" 환경을 관리할 수 있습니다.

쉘.닉스

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = [ pkgs.bash pkgs.zsh pkgs.curl pkgs.wget ];
}

그런 다음 이 환경에 "들어가려면" 다음을 실행하십시오.nix-shell shell.nix

답변3

configuration.nixBen Creasy가 제안한 도구를 사용하여 파일에 대해 [NixOS 문서](nixos-rebuild 스위치)에 설명된 작업 흐름을 복사할 수 있습니다.집 관리자.

NixOS가 아닌 Linux 배포판에 대한 옵션이 있습니다[1]:

targets.genericLinux.enable = true;

어느

NixOS가 아닌 Linux에서 nix 설치 소프트웨어를 쉽게 사용할 수 있도록 일부 환경 변수를 자동으로 설정합니다(로컬 문제 수정, XDG_DATA_DIRS 설정 등).

홈 관리자를 사용하여 패키지/프로그램을 선언적으로 관리할 수 있습니다. 다음은 home.nix설명서의 최소 예입니다.

{ pkgs, ... }:

{
  home.packages = [
    pkgs.htop
    pkgs.fortune
  ];

  programs.emacs = {
    enable = true;
    extraPackages = epkgs: [
      epkgs.nix-mode
      epkgs.magit
    ];
  };

  programs.firefox = {
    enable = true;
    profiles = {
      myprofile = {
        settings = {
          "general.smoothScroll" = false;
        };
      };
    };
  };

  services.gpg-agent = {
    enable = true;
    defaultCacheTtl = 1800;
    enableSshSupport = true;
  };

  programs.home-manager = {
    enable = true;
    path = "…";
  };
}

home-manager switch그런 다음 변경 사항을 적용합니다.

  1. https://nixos.wiki/wiki/Home_Manager#Usage_on_non-NixOS_Linux

답변4

저는 Nix를 사용하여 Ubuntu에서 도트 파일을 관리합니다. 난 달린다이 스크립트이건 그냥 포장지야이 설치 프로그램.

설치 프로그램은 도트 파일 버전을 다음으로 변환합니다.닉스 패키지, 그리고 사용GNU 저장소홈 디렉터리에 다시 연결하세요.

대부분의 사람들에게는 다소 복잡할 수도 있지만 저는 NixOS, Ubuntu 및 OSX 간의 도트 파일을 관리하는 데 사용합니다.

관련 정보