diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index dcf173f865f2..1488a09982ad 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -95,6 +95,27 @@ installPhase() { genericBuild ``` +### Building a `stdenv` package in `nix-shell` {#sec-building-stdenv-package-in-nix-shell} + +To build a `stdenv` package in a [`nix-shell`](https://nixos.org/manual/nix/unstable/command-ref/nix-shell.html), use + +```bash +nix-shell '' -A some_package +eval ${unpackPhase:-unpackPhase} +cd $sourceRoot +eval ${patchPhase:-patchPhase} +eval ${configurePhase:-configurePhase} +eval ${buildPhase:-buildPhase} +``` + +To modify a [phase](#sec-stdenv-phases), first print it with + +```bash +type buildPhase +``` + +then change it in a text editor, and paste it back to the terminal. + ## Tools provided by `stdenv` {#sec-tools-of-stdenv} The standard environment provides the following packages: