# Package management

_Package management_ is the art of building and distributing software [packages].

[Nix] is different from package managers like [apt], [dpkg], and [yum] in several important ways:

- Nix always builds all [packages] from scratch, including the entire [closure], or dependency tree, of that package.
  But if a dependency is already present in the [Nix store][store] or in a remote cache, Nix can use that instead of rebuilding it, which means that Nix can provide [incremental builds][incremental].
- Nix has a [language]&mdash;also called _Nix_&mdash;that you can use to define your own package builds
- Nix works on several platforms, including Linux, macOS, and Windows WSL.

[apt]: https://en.wikipedia.org/wiki/APT_(software)
[closure]: /concepts/closures
[dpkg]: https://man7.org/linux/man-pages/man1/dpkg.1.html
[incremental]: /concepts/incremental-builds
[language]: /concepts/nix-language
[nix]: /concepts/nix
[packages]: /concepts/packages
[store]: /concepts/nix-store
[yum]: https://es.wikipedia.org/wiki/Yum_(software)