HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
NixOS
nixpkgs
Nix2013–2026
NixOS / nixpkgs

nixpkgs

Nix Packages collection & NixOS

360Distinct people
597Mentions
11Explicit recommenders
26.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Nix Packages collection & NixOS

GitHub

Where it is used

  • NixOS — NixOS uses Nixpkgs as a core part of the distribution; it is built around Nixpkgs. This powers its reproducible, declarative system configuration. Source

What people are saying

I love NixOS, it's my daily driver on my personal laptop, but it definitely has given me more than its fair share of headaches. If everything you're going to do is in Nixpkgs,…

tombert used a recommendation phrase. 11 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 9:28:18 AM UTC.

A technical vision for the Haskell ecosystem direct repository linkDebated

Commenters debate whether Haskell's primary bottleneck is technical performance, such as compile time and incremental builds, or its lack of a coherent, polished ecosystem for building diverse applications like web and desktop software. While some argue that foundational libraries and better developer experience are the missing pieces, others contend that the language's utility is constrained by fragmented tooling and unclear positioning compared to more universal alternatives.

17 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year597 dated mentions

Observed mentions: 2013-12-15 16:18:08 UTC to 2026-10-21 00:27:48 UTC.

02550751001252013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 23 mentions; 1 submissions, 22 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 22 mentions; 0 submissions, 22 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 21 mentions; 0 submissions, 21 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 31 mentions; 1 submissions, 30 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 59 mentions; 1 submissions, 58 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 112 mentions; 3 submissions, 109 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 72 mentions; 3 submissions, 69 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 81 mentions; 5 submissions, 76 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 77 mentions; 3 submissions, 74 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 53 mentions; 5 submissions, 48 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 25 mentions; 2 submissions, 23 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC716
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC13112
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC23122
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC22022
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC21021
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC31130
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC59158
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC1123109
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC72369
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC81576
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC77374
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC53548
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC25223

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
Nixpkgs is a collection of over 140,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution. Manuals NixOS Manual - how to install, configure, and maintain a purely-functional Linux distribution Nixpkgs Manual - contributing to Nixpkgs and using programming-language-specific Nix expressions Nix Package Manager Manual - how to write Nix expressions (programs), and how to use Nix command line tools Community Discourse Forum Matrix Chat Official wiki Community-maintained list of ways to get in touch (Discord, Telegram, IRC, etc.) Other Project Repositories The sources of all official Nix-related projects are in the NixOS organization on GitHub. Here are some of the main ones: Nix - the purely functional package manager NixOps - the tool to remotely deploy NixOS machines nixos-hardware - NixOS profiles to optimize settings for different hardware Nix RFCs - the formal process for making substantial changes to the community NixOS homepage - the NixOS.org website hydra - our continuous integration system NixOS Branding - NixOS branding Continuous Integration and Distribution Nixpkgs and NixOS are built and tested by our continuous integration system, Hydra. Continuous package builds for unstable/master Continuous package builds for the NixOS 26.05 release Tests for unstable/master Tests for the NixOS 26.05 release Artifacts successfully built with Hydra are published to cache at https://cache.nixos.org/. When successful build and test criteria are met, the Nixpkgs expressions are distributed via Nix channels. Contributing Nixpkgs is among the most active projects on GitHub. While thousands of open issues and pull requests might seem like a lot at first, it helps to consider it in the context of the scope of the project. Nixpkgs describes how to build tens of thousands of pieces of software and implements a Linux distribution. The GitHub Insights page gives a sense of the project activity. Community contributions are always welcome through GitHub Issues and Pull Requests. For more information about contributing to the project, please visit the contributing page. Donations The infrastructure for NixOS and related projects is maintained by a nonprofit organization, the NixOS Foundation. To ensure the continuity and expansion of the NixOS infrastructure, we are looking for donations to our organization. You can donate to the NixOS Foundation through SEPA bank transfers or by using Open Collective: License Nixpkgs is licensed under the MIT License. NoteMIT license does not apply to the packages built by Nixpkgs, merely to the files in this repository (the Nix expressions, build scripts, NixOS modules, etc.). It also might not apply to patches included in Nixpkgs, which may be derivative works of the packages to which they apply. The aforementioned artifacts are all covered by the licenses of the respective packages.
Read the full README on GitHub

What Hacker News says

21 sources
You might be interested in this PR: "[nixpkgs] elementary: init a 5.0 Juno" https://github.com/NixOS/nixpkgs/pull/48637 I'm actively trying to build some cool things with Nix/NixOS and then write up a series of blog posts. Several recent discussions on the Discourse and at NixCon have been focused around Nix/NixOS user experience, at least. I've recently been building a package set of tip builds of Wayland stuff (sway, screenshot/screenrecord/notification utilities), including instructions for using them on Ubuntu via Nix. I'm also building out a set of packages and modules for Kube/Containerd/Kata-Containers for perfectly repeatable offline-first clusters. I think these two projects can be leveraged to evangelize Nix and NixOS nicely, and dovetails into UX efforts as I build my list of rough spots and fix a number of issues in nixpkgs an
Read the rest
d random OSS projects along the way. Also, Gnome-Shell and KDE work perfectly in NixOS anyway, and can be easily made to look just like they do on any other distro... I just recently switched to Sway, coming from KDE (~1.5 years) after GNOME (6+ years?). Not any significant visual differences than when I was using Arch Linux.
In Elementary OS – Fast, open, privacy-respecting replacement for Windows and macOS
If you look at the ISO url, you'll notice something that looks like a short Git SHA hash. That's the exact git checkout of `nixpkgs` used to build the ISO. All system-level artifacts built with nixpkgs wind up with it as part of their name. Very handy. This means you can plug the sha from the ISO that you link to (nixos-graphical-18.09.776.6a3f5bcb061-x86_64-linux) and get this URL: https://github.com/NixOS/nixpkgs/commits/6a3f5bcb061 And the ISO URL from NixOS.org ([...]/nixos-graphical-18.09.1023.06fb0253afa-x86_64-linux.iso) leads us to https://github.com/NixOS/nixpkgs/commits/06fb0253afa If you check both, you'll see they're both commits from the upstream `nixpkgs` repository, just a couple weeks apart. So it looks like your torrent is likely an old official ISO that could be upgraded in place the same way the newer ISO would need. (N
Read the rest
ote, I haven't confirmed that, someone could've uploaded a malicious file with a nice filename, etc. Don't take my word for it, etc.) (edit: ah, and if I had to guess, the 776 and 1023 as part of the filename is probably the number of commits since the original 18.09 tag was created.)
In NixOS – Purely Functional Linux Distribution
I use NixOS on my desktop, laptop, and on all new server deployments. It's definitely a learning curve, especially considering the documentation is nowhere near as good as it should be yet, but absolutely worth it in the long run; and I rarely run into unavailability of software. Security updates are indeed sometimes slow to arrive, for the reasons that aidenn0 already described. However! One thing that's particularly interesting about the security update process for NixOS, is that it's an open collaborative effort: https://github.com/NixOS/nixpkgs/issues/23334 More eyeballs are definitely needed for handling security issues, especially since LWN stopped doing their reports, but the process itself is definitely one that has significant potential.
In NixOS – Purely Functional Linux Distribution
1. I use it for my laptop. It works great 2. This will take a bit First with the naive, as-described nix there are two options: * For updates to propagate through all the build servers takes a day or two, so you can just be insecure for 48 hours * Or, you can always build your packages yourself by setting your update channel to just be the head of the nix repository, but now you won't get binary caches for anything that has had its source updated since the last build. This actually works better than you might think, but is still a no-go for most people. Both of those suck, so there is something called replaceDependency[1] that lets you define a package in terms of the already built-package and a new version of the library. This lets you quickly get a security update in a shared-library out to multiple slow-to-build packages quickly. 1:
Read the rest
https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-supp... The existing way is to use replaceDependency(), which takes an input as an already built package and as an output the same binary but with different RPATHs for the shared objects. This however is just stopgap, as other approaches are being discussed. Since I'm not running a server, I haven't followed it as closely as I perhaps should
In NixOS – Purely Functional Linux Distribution
Another fascinating thing about NixOS is their system of automated integration tests for the whole distribution. You can quite easily set up declarative virtual machines with Nix expressions, and the test suites use this in very cool ways. Graham Christensen mentions some of these tests here: https://grahamc.com/blog/an-epyc-nixos-build-farm > The NixOS release process is novel in that package updates happen automatically as an entire cohesive set. We of course test that specific software compiles properly, but we are also able to perform fully automatic integration tests. We test that the operating system can boot, desktop environments work, and even server tests like validating that our MySQL server replication is still working. These tests happen automatically on every release and is a unique benefit to the Nix build system being appli
Read the rest
ed to an operating system. > These tests use QEMU and KVM, and spawn one or more virtual machines running NixOS. He goes on to describe (1) the KDE desktop test that boots a real graphical environment and uses scripted OCR to detect activity; (2) the MySQL replication test that verifies correct replication between three separate MySQL servers on three separate virtual machines; and (3) a BitTorrent test that starts four virtual machines—namely one tracker with Apache serving a torrent file, one NAT router with UPnP (!), two peers of which one is routed through the NAT—and verifies the full process of peer 1 downloading from the seeder and peer 2 downloading from peer 1. Those tests can all run automatically on a build server for every commit to the package tree... it's quite something! The whole BitTorrent test is a 116-line Nix expression that's eminently pleasant to read: https://github.com/NixOS/nixpkgs/blob/49a6964a4250d98644da61...
In NixOS – Purely Functional Linux Distribution
So the real versions here is in the `import <nixpkgs> {};` You need to pin it to a specific version or even commit from nixpkgs github repo. So instead of that, you can find the commit that has all your desired versions and pin it that way. with import (builtins.fetchTarball https://github.com/NixOS/nixpkgs/archive/9a5f7b1630c138a82cb...) {}; This way, all your versions of packages will be pinned to this specific revision, and you can also use multiple revisions at the same time.
In NixOS 18.09 Jellyfish Released
It's our custom tool. NixOS has testing infrastructure built on top of QEMU, and you can use Perl scripts like this in order to automate aspects of testing inside that environment by talking to the QEMU monitor -- for example, you can not only wait for a window, but click a button in that window, then also wait for a service to start afterwords, for example. (If you were testing GUI functionality). Tests are written in a mix of Nix and Perl automation scripts like this; the Perl scripts control QEMU, but the Nix code describes what is put into the disk images. It's fairly bespoke and tuned to our own needs. The source code for the Perl driver is here: https://github.com/NixOS/nixpkgs/blob/f148c5c4a1ffa353836bfd... It can even do multi-machine test setups as another comment pointed out, and it's pretty fun for writing functional demonstrat
Read the rest
ions; for example I've been meaning to use these tools to write examples of doing PostgreSQL replication and failover, etc.
In An EPYC NixOS Build Farm
Yes. NixOS can be set up to output a ready-to-run AMI with your customizations, as well as any other kind of image. For example, there are official binaries at https://nixos.org/nixos/download.html, which I believe are built by https://github.com/NixOS/nixpkgs/blob/master/nixos/maintaine.... You can then either replace the images as needed, or redeploy in place. NixOps can also automatically create and destroy EC2 VMs, EBS disks, and so on for you, based on your NixOS config. NixOps also makes it very easy to set up a local copy of your network using Virtualbox. Personally I use a common baseline image that is preseeded with my SSH key, and then deploy whatever setup I need using NixOps. You can read more about that approach at https://nixos.wiki/wiki/Virtualization_in_NixOS.
In NixOS 18.03 Released

Showing the 15 most recent of 21 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.