lix/src/nix/search.md
Fishhh b42358b9be
Add --exclude flag to nix search
If a package's attribute path, description or name contains matches for any of the
regexes specified via `-e` or `--exclude` that package is excluded from
the final output.
2022-06-07 18:25:48 +02:00

2.1 KiB

R""(

Examples

  • Show all packages in the nixpkgs flake:

    # nix search nixpkgs
    * legacyPackages.x86_64-linux.AMB-plugins (0.8.1)
      A set of ambisonics ladspa plugins
    
    * legacyPackages.x86_64-linux.ArchiSteamFarm (4.3.1.0)
      Application with primary purpose of idling Steam cards from multiple accounts simultaneously
    
  • Show packages in the nixpkgs flake containing blender in its name or description:

    # nix search nixpkgs blender
    * legacyPackages.x86_64-linux.blender (2.91.0)
      3D Creation/Animation/Publishing System
    
  • Search for packages underneath the attribute gnome3 in Nixpkgs:

    # nix search nixpkgs#gnome3 vala
    * legacyPackages.x86_64-linux.gnome3.vala (0.48.9)
      Compiler for GObject type system
    
  • Show all packages in the flake in the current directory:

    # nix search
    
  • Search for Firefox or Chromium:

    # nix search nixpkgs 'firefox|chromium'
    
  • Search for packages containing git and either frontend or gui:

    # nix search nixpkgs git 'frontend|gui'
    
  • Search for packages containing neovim but hide ones containing either gui or python:

    # nix search nixpkgs neovim -e 'python|gui'
    

    or

    # nix search nixpkgs neovim -e 'python' -e 'gui'
    

Description

nix search searches installable (which must be evaluatable, e.g. a flake) for packages whose name or description matches all of the regular expressions regex. For each matching package, It prints the full attribute name (from the root of the installable), the version and the meta.description field, highlighting the substrings that were matched by the regular expressions. If no regular expressions are specified, all packages are shown.

Flake output attributes

If no flake output attribute is given, nix search searches for packages:

  • Directly underneath packages.<system>.

  • Underneath legacyPackages.<system>, recursing into attribute sets that contain an attribute recurseForDerivations = true.

)""