Dasar-dasar Packaging
Packaging perangkat lunak untuk Nix melibatkan penulisan Nix expression yang mendeskripsikan cara membangun paket.
Struktur Dasar Paket
Paket Nix dasar terlihat seperti ini:
nix
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "hello";
version = "2.12";
src = fetchurl {
url = "mirror://gnu/hello/${pname}-${version}.tar.gz";
sha256 = "sha256-abc123...";
};
meta = with lib; {
description = "A program that produces a familiar, friendly greeting";
homepage = "https://www.gnu.org/software/hello/";
license = licenses.gpl3Plus;
platforms = platforms.all;
};
}Build Phases
Nix memiliki beberapa build phase:
unpackPhase- Ekstrak source codepatchPhase- Terapkan patchconfigurePhase- Jalankan skrip konfigurasibuildPhase- Kompilasi perangkat lunakinstallPhase- Instal binaryfixupPhase- Perbaikan pasca-install
Override Build Phases
Anda dapat override phase apa pun:
nix
stdenv.mkDerivation {
pname = "my-package";
version = "1.0";
src = ./.;
buildPhase = ''
make build
'';
installPhase = ''
mkdir -p $out/bin
cp my-app $out/bin/
'';
}