Searching packages: Difference between revisions

From NixOS Wiki
imported>Vater
imported>Berquist
m packages and options links under flakes were switched
Line 8: Line 8:
:* NixOS options at [https://search.nixos.org/options search.nixos.org/options]
:* NixOS options at [https://search.nixos.org/options search.nixos.org/options]
: with [[flakes]]
: with [[flakes]]
:* packages at [https://search.nixos.org/flakes?type=options search.nixos.org/flakes?type=options]
:* packages at [https://search.nixos.org/flakes?type=packages search.nixos.org/flakes?type=packages]
:* options at [https://search.nixos.org/flakes?type=packages search.nixos.org/flakes?type=packages]
:* options at [https://search.nixos.org/flakes?type=options search.nixos.org/flakes?type=options]


; pros:
; pros:

Revision as of 17:07, 5 September 2023

There are multiple ways to search for a package name in nixpkgs.

Using search.nixos.org website

There is a web service to search for

with channels
with flakes
pros
  • easy to use
  • allows filters
cons
  • requires Internet connection

Using the nix search command

While this command is still experimental, you can use it to search for a package. It may be slow the first time, but further runs will use cached results.

nix --extra-experimental-features "nix-command flakes" search nixpkgs firefox

Using the nix-env command

It's possible to search for a package using nix-env -qaP

pros
  • works offline
cons
  • it's very slow and requires a lot of memory

Using the nix repl environment

With the read–eval–print loop (REPL) of nix you can browse packages interactively.

Starting the nix repl

nix repl
Welcome to Nix 2.8.1. Type :? for help.

nix-repl>

Loading the repository for nixpkgs

nix-repl>
:load <nixpkgs>
Added 16519 variables.

Type the first letters of a package

nix-repl>
firef

Press Tab ↹ key for auto completion

Reverse search: searching which package provides a file

There is a third party program nix-index to find which package provides a given file. This is particularly useful when you are looking for a very specific file but you don't know which package installs it.