surf и st уже упакованы (здесь и здесь) в nixpkgs
Одна из вещей, за которые я люблю nix, это возможность переопределить любой шаг в процессе сборки, что также означает, что вы можете изменить источник кода (например: src
attribute).
для примера, допустим, вы клонировали surf в /path/to/surf
. default.nix
файл, который будет переопределять src
, но использовать все остальные шаги сборки, будет выглядеть так:
{ pkgs ? import {}
}:
pkgs.surf.overrideDerivation (old: {
src = /path/to/surf;
})
выше вы собираете с помощью nix-build default.nix
другой способ, который вы также можете использовать, это использовать nix-shell
. nix-shell
- это инструмент, который перебрасывает вас в среду nix, не запуская шаги сборки nix, но все зависимости (buildInputs, propagatedBuildInputs) будут доступны для вас. подробнее о nix-shell
вы можете прочитать здесь.
для использования nix-shell
вы можете сделать:
% cd /path/where/above/mentioned/default.nix/is
% nix-shell
или вы можете работать над клоном nixpkgs
% cd /path/to/nixpkgs
... here edit file pkgs/applications/misc/st/default.nix
% nix-build -A st # to build st
% nix-shell -A st # to enter development environment
я надеюсь, что вышесказанное поможет.