← Retour au blog
tech 10 August 2026

nixpkgs-multiverse: Every Version That Ever Existed

Explore nixpkgs-multiverse, a groundbreaking solution to manage all NixOS package versions in a single flake. A must-have for developers and system administrators.

Article inspired by the original source
nixpkgs-multiverse: every version that ever existed ↗ fzakaria.com

Introduction

Dependency and package version management can quickly become a nightmare for developers and system administrators. Imagine updating your system only to find that a crucial package is no longer available in the version you depend on. This is the problem that nixpkgs-multiverse aims to solve. This project provides access to every version of every package ever existed in Nixpkgs, all from a single flake.

The Problem with Package Versions

In the world of Linux distributions, managing package versions is a complex task. Most distributions choose to update packages for security or feature reasons, but this can break tools or workflows that depend on specific versions. With NixOS, although flakes offer some flexibility, each Nixpkgs entry in a flake is like a distinct universe. If you need multiple versions, you have to juggle between several inputs.

The Idea Behind nixpkgs-multiverse

The concept of nixpkgs-multiverse is simple yet powerful: have every version of every package at your fingertips without having to manage multiple Nixpkgs inputs. For instance, if you need Python 3.6.2 for a legacy project but also want to test Python 3.14.6, nixpkgs-multiverse allows you to do so effortlessly. You can simply run a command like:

``bash $ nix run 'github:fzakaria/nixpkgs-multiverse#versions.python3."3.6.2"' -- --version ``

Concrete Benefits for Developers

This approach offers several advantages. Firstly, it eliminates the need to add multiple Nixpkgs inputs and reduces the complexity of dependency management. It also allows you to test new package versions without much hassle. For a developer, this means less time spent debugging version issues and more time focusing on developing features.

How Does It Work?

Nixpkgs-multiverse works by using a single flake that references all available package versions. You can easily query the flake to get a list of all versions of a given package. For example:

``bash $ nix eval --json --apply 'f: f "python3"' \ github:fzakaria/nixpkgs-multiverse#multiverse.x86_64-linux.versionsOf ``

This kind of functionality is particularly useful for regression testing and backward compatibility, where ensuring that new software versions work correctly with specific dependency versions is crucial.

Real-World Use Case

Consider a company using a specific set of tools for embedded software development. These tools depend on precise versions of certain C++ libraries. By using nixpkgs-multiverse, this company can easily maintain a stable development environment while experimenting with new versions for future improvements.

Conclusion

Nixpkgs-multiverse is a significant advancement for those who require fine-grained package version management. It greatly simplifies the process and offers flexibility rarely seen in other package management systems. Whether you are an individual developer or managing large-scale infrastructure, adopting this solution could transform how you manage dependencies.

Let's discuss your project in 15 minutes.

nixpkgs-multiverse version management NixOS dependency management software development
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call