를 확인해 보세요. 에서 제공하는 Nix 플레이크를 발견하고 게시할 수 있는 최고의 장소입니다.

We use a single, first-party analytics cookie to focus our limited time and energy on the most important documentation. Check out our privacy policy .

5. Nix 패키지 검색

Quick start / Nix 패키지 검색
Guide 5 of 8
In this guide

nix search 명령을 사용하여 Nixpkgs에서 패키지를 찾으세요.

search.nixos.org 웹 인터페이스를 살펴보세요.

nix flake show 명령을 사용하여 flakes에서 출력된 패키지를 살펴보세요.

Nix의 장점 중 하나는 [Nix 생태계][생태계]에 엄청나게 많은 [패키지]가 있으며, Nix 개발 환경, NixOS 설치 등에서 사용할 수 있다는 것입니다. Nixpkgs는 단연코 가장 큰 Nix 패키지 컬렉션으로, 10만 개가 넘는 패키지가 있으며 그 수는 계속 늘어나고 있습니다. 😎] 모든 [Nix 플레이크][플레이크]는 패키지 [출력]을 제공할 수 있습니다.

하지만 이 모든 것을 탐색하는 것은 까다로울 수 있으므로, 이 가이드에서는 nix search 명령과 search.nixos.org 웹 애플리케이션을 사용하여 Nixpkgs에서 패키지를 검색하는 방법을 알아보겠습니다. 그런 다음 다른 플레이크에서 패키지를 탐색하는 방법을 알아보겠습니다.

nix 검색 명령어

Nix CLI에는 플레이크에서 검색어를 기반으로 패키지를 검색할 수 있는 search 명령어가 있습니다. 원하는 패키지를 찾을 가능성이 가장 높은 Nixpkgs부터 검색해 보겠습니다. 다음 명령어는 Nixpkgs에서 cargo를 사용할 수 있는지 여부를 알려줍니다.

검색어로 cargo를 사용하여 Nixpkgs 검색
nix 검색 "https://flakehub.com/f/NixOS/nixpkgs/*" cargo

이 명령에서 nixpkgs [플레이크 참조][플레이크-참조]는 github:NixOS/nixpkgs의 약어입니다.

시간이 좀 걸릴 수 있습니다

nix search를 처음 실행할 때 Nix CLI는 Nixpkgs(또는 검색 중인 플레이크)의 전체 Nix 코드 내용을 다운로드한 다음 캐시해야 합니다. 향후 Nixpkgs에 대한 nix search 실행 속도는 훨씬 빨라질 것입니다. 더욱이 Nixpkgs는 현존하는 가장 큰 플레이크이며, 다른 플레이크에서 nix search를 실행하는 속도는 전반적으로 훨씬 빨라질 것입니다.

이렇게 하면 legacyPackages.{system}.{package} 형식의 결과가 많이 나오는데, 그 중 첫 번째 결과는 Apple Silicon(aarch64-darwin) 시스템에서 다음과 같이 표시되어야 합니다.

Example search result
* legacyPackages.aarch64-darwin.cargo (1.65.0)
Downloads your Rust project's dependencies and builds your project

다른 플랫폼에서는 시스템 속성이 [다릅니다](#시스템별 특성). x86_64-linux 또는 다른 이름이 표시될 수 있습니다. 첫 번째 결과 이후에는 cargo-aboutcargo-audit와 같은 패키지를 포함한 다른 여러 결과가 표시될 것입니다.

legacyPackages는 레거시 소프트웨어가 아닙니다

The legacyPackages attribute that you see in the search output is a bit misleading. The packages prefaced with that aren’t “legacy” packages; instead, Nixpkgs uses a special legacyPackages attribute to output packages instead of the usual packages output for reasons laid out here.

--json 플래그를 사용하여 검색 결과를 JSON으로 출력할 수도 있습니다.

Output search results as JSON
nix search --json nixpkgs cargo

jq와 같은 도구를 사용하여 출력을 구문 분석하려는 경우 유용할 수 있습니다.

search.nixos.org

search.nixos.org 웹 인터페이스는 nix search 명령어에 비해 몇 가지 장점이 있습니다.

  • 25.05unstable과 같은 Nixpkgs의 릴리스 채널을 선택할 수 있습니다.
  • Nixpkgs 외에도 다양한 [공개 플레이크][공개 플레이크]를 검색할 수 있습니다(해당 플레이크는 [여기][플레이크 목록]에 나열되어 있습니다).

nix flake show 명령어를 사용하여 플레이크 탐색하기

예를 들어, Wayland 윈도우 시스템 프로토콜에서 널리 사용되는 플레이크를 살펴보겠습니다.

Display the flake outputs for the nixpkgs-wayland flake
nix flake show "github:nix-community/nixpkgs-wayland"

출력을 JSON으로 표시할 수도 있습니다.

Display the flake outputs for the nixpkgs-wayland flake as JSON
nix flake show --json "github:nix-community/nixpkgs-wayland"
시간이 좀 걸릴 수 있습니다

nix flake show를 처음 실행할 때 Nix CLI는 nixpkgs-wayland 또는 nix flake show를 실행 중인 플레이크의 전체 내용을 다운로드한 다음 캐시해야 합니다. 이후 동일한 flake reference에 대한 nix flake show 실행은 훨씬 더 빨라질 것입니다.

nix searchnix flake show를 사용할 때

nix flake shownix search 중 무엇을 사용해야 할까요? 좋은 경험 법칙은 Nixpkgs에서는 항상 nix search를 사용하고, 다른 플레이크에서는 처음에는 nix flake show를 사용하는 것입니다. nix flake show의 패키지 출력이 너무 커서 탐색하기 어려운 경우, 해당 플레이크에 대해 nix search를 대신 사용하세요.

시스템 특정성

nix search, search.nixos.org, nix flake show 검색 결과에서 눈에 띄는 점 하나는 쿼리 결과에 나열된 모든 패키지가 현재 시스템용이라는 것입니다(AMD/Intel Linux 시스템의 경우 x86_64-linux, Apple Silicon 시스템의 경우 aarch64-darwin 등). 이는 Nix가 근본적으로 [시스템 특정적] 방식으로 작동하기 때문입니다. Linux 시스템의 cargo 패키지는 Linux가 아닌 시스템의 cargo와 _다른 패키지_로 간주됩니다.


Was this page helpful?