Nix.Система сборки пакетов

Nix.Система сборки пакетов


Система сборки пакетов Nix немного напоминает систему ebuild для Gentoo, когда большую часть работы выполняет сам пакетный менеджер, который содержит информацию о том, как собирать при наличии Makefile, CMakeLists et cetera.

Сборочный файл для GNU Hello совсем не будет содержать указаний на то, как собирать:

{ stdenv, fetchurl }:
 
stdenv.mkDerivation rec {
  name = "hello-${version}";
  version = "2.10";
 
  src = fetchurl {
    url = "mirror://gnu/hello/${name}.tar.gz";
    sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
  };
 
  doCheck = true;
 
  meta = with stdenv.lib; {
    description = "A program that produces a familiar, friendly greeting";
    longDescription = ''
      GNU Hello is a program that prints "Hello, world!" when you run it.
      It is fully customizable.
    '';
    homepage = https://www.gnu.org/software/hello/manual/;
    license = licenses.gpl3Plus;
    maintainers = [ maintainers.eelco ];
    platforms = platforms.all;
  };
}

Для сборки и установки необходимо только записать эти строки в файл (hello.nix, например) и выполнить следующую команду:

  • # nix-env -r -f ./hello.nix -i