(ref-pinning-nixpkgs)=

# Nixpkgs 고정하기

Nixpkgs가 제공하는 것과 같은 원격 Nix 표현식은 여러 가지 방법으로 지정할 수 있습니다:

- [`$NIX_PATH` 환경 변수](https://nix.dev/manual/nix/stable/command-ref/env-common.html#env-NIX_PATH)
- `nix-build`, `nix-shell` 등 대부분의 명령에 사용하는 [`-I` 옵션](https://nix.dev/manual/nix/stable/command-ref/opt-common.html#opt-I)
- Nix 표현식 안의 [`fetchurl`](https://nix.dev/manual/nix/stable/language/builtins.html#builtins-fetchurl), [`fetchTarball`](https://nix.dev/manual/nix/stable/language/builtins.html#builtins-fetchTarball), [`fetchGit`](https://nix.dev/manual/nix/stable/language/builtins.html#builtins-fetchGit) 또는 [Nixpkgs 페처](https://nixos.org/manual/nixpkgs/stable/#chap-pkgs-fetchers)

## 사용 가능한 URL 값

- 로컬 파일 경로:

  ```
  ./path/to/expression.nix
  ```

  `./.`를 사용하면 표현식이 현재 디렉터리의 `default.nix` 파일에 있다는 뜻입니다.

- 특정 커밋에 고정:

  ```
  https://github.com/NixOS/nixpkgs/archive/eabc38219184cc3e04a974fe31857d8e0eac098d.tar.gz
  ```

- 최신 채널 버전 사용(모든 테스트를 통과했다는 뜻입니다):

  ```
  http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz
  ```

- 채널 축약 문법:

  ```
  channel:nixos-22.11
  ```

- GitHub에 호스팅된 최신 채널 버전 사용:

  ```
  https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz
  ```

- 릴리스 브랜치의 최신 커밋 사용(아직 테스트되지 않음):

  ```
  https://github.com/NixOS/nixpkgs/archive/release-21.11.tar.gz
  ```

## 예시

- ```shell-session
  $ nix-build -I ~/dev
  ```

- ```shell-session
  $ nix-build -I nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz
  ```

- ```shell-session
  $ nix-build -I nixpkgs=channel:nixos-22.11
  ```

- ```shell-session
  $ NIX_PATH=nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz nix-build
  ```

- ```shell-session
  $ NIX_PATH=nixpkgs=channel:nixos-22.11 nix-build
  ```

- Nix 언어에서:

  ```nix
  let
    pkgs = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz") {};
  in pkgs.stdenv.mkDerivation { ... }
  ```

## 특정 커밋과 릴리스 찾기

[status.nixos.org](https://status.nixos.org/)에서 제공하는 정보:

- 각 릴리스에서 테스트를 통과한 최신 커밋 - 특정 커밋에 고정할 때 사용합니다
- 활성 릴리스 채널 목록 - 최신 채널 버전을 따라갈 때 사용합니다

전체 채널 목록은 [nixos.org/channels](https://nixos.org/channels)에서 확인할 수 있습니다.

:::{tip}
Nixpkgs 및 NixOS 릴리스에 대한 자세한 정보: [](channel-branches)
:::

