5 KiB
title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
Nixpkgs Tools | An overview of the various functions unrelated to building source code available in Nixpkgs. | true | 2024-06-29T14:50:41.540Z | nix, nixpkgs | markdown | 2024-06-22T16:41:59.925Z |
Introduction to Nixpkgs' tools
This page is an overview of various functionality included in Nixpkgs, that is not directly related to building packages from source code.
Fetchers (pkgs.fetch*
)
Fetchers such as pkgs.fetchurl
allow to download content such as package sources, by specifying an expected hash of the content.
Resources:
Wrappers (pkgs.runCommand*
, pkgs.write*
)
Functions such as pkgs.runCommand
or pkgs.writeShellScript
are use-case specific wrappers around pkgs.stdenv
with simple arguments.
Not to be confused with pkgs.writers
.
Resources:
Data Formats (pkgs.writers
)
Data format or application focussed writers that transform Nix expressions into the respective format.
Not to be confused with pkgs.write*
.
Resource:
Config File Formats (pkgs.formats
)
Produce various config file formats from nix expressions.
Resources:
Custom Build Environments (pkgs.mkShell
)
Convenience wrapper around mkDerivation
for usage with nix-shell
/ nix develop
.
Resources:
Creating Hooks (pkgs.makeSetupHook
)
Helper to produce hooks for the stdenv
build phases.
(For more info on hooks in general, see Language/Framework Specific Builders in Nixpkgs#Hooks).
Resources:
Test Utilities (pkgs.testers
)
Derivation builders for testing various properties of other derivations.
Resources:
fakeNss
Including this derivation in, e.g. docker images or other environments without them, provides a simplistic set of user/group entries, to allow binaries expecting them to exist to work.
Resources:
Standard Filesystem Layout Wrapper (buildFHSEnv
)
Wraps binaries that expect a FHS-compatible filesystem layout to run unpatched on NixOs.
Resources:
Run AppImages (pkgs.appimageTools
)
A set of functions to run or extract AppImages.
Resources:
Docker Images (pkgs.dockerTools
)
A set of functions to create, modify, import or export docker images.
Resources:
- Nixpkgs manual
- Xe Iaso's Talk: Nix is a better Docker image builder than Docker's image builder (Transcript & Recording)
- nix.dev Tutorial: Building and running Docker images)
- Xe Iaso's Blog Post: Nix Flakes: Packages and How to Use Them
Build OCI Containers (pkgs.ociTools
)
A set of function to create OCI containers.
Resources:
Build Portable Services (pkgs.portableService
)
A function to create systemd's Portable Services.
Resources:
Build Disk Images (make-disk-image.nix
)
This function creates disk images in various formats (e.g. raw, QCOW2 (QEMU), VDI (VirtualBox), etc.).
Resources:
Run Derivations inside a VM (pkgs.vmTools
)
Various tools to run derivations inside a Qemu/KVM backed virtual machine.
Resources:
Incremental Builds (pkgs.checkpointBuildTools
)
Resources:
Flat-file Binary Cache (pkgs.mkBinaryCache
)
Create Nix flat-file binary caches.
Resources: