Flakes/ru: Difference between revisions
Created page with "=====Другие Дистрибутивы, без Home-Manager=====" |
Created page with "=== Входная схема ===" |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
'''Nix flakes''' это [https://nixos.org/manual/nix/stable/contributing/experimental-Features.html экспериментальная особенность] которая была представлена с Nix 2.4 ([https://nixos.org/manual/nix/unstable/release-notes/rl-2.4.html см. Примечания к выпуску]). | |||
'''Nix flakes''' | |||
< | <span id="Introduction"></span> | ||
==== | ==== Введение ==== | ||
Nix flakes обеспечивают единую структуру для Nix-проектов, фиксируют версии зависимостей в лок-файле и делают более удобным написание воспроизводимых Nix-выражений. | |||
Nix flakes | |||
* [https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html#description flake] это файловая структура, корневая директория которой содержит спецификацию Nix в файле <code>flake.nix</code>. | |||
* | |||
* Содержимое файла <code>flake.nix</code> следует единой схеме наименования для объявления пакетов и их зависимостей на языке Nix. | |||
* | |||
Флейки вводят [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html#flake-references синтаксис, похожий на URL] для указания удалённых источников. | |||
* Чтобы упростить длинный синтаксис URL с помощью более коротких названий, [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-registry.html флейки используют реестр] символических идентификаторов. | |||
* | |||
* Флейки также позволяют фиксировать ссылки и версии, которые затем могут быть запрошены и обновлены программно. | |||
* | |||
[https://nixos.org/manual/nix/stable/command-ref/new-cli/nix.html Экспериментальный интерфейс командной строки] принимает ссылки на флейки для выражений, которые создают, запускают и развёртывают пакеты. | |||
< | <span id="Enable_flakes_temporarily"></span> | ||
==== | ==== Временно включить поддержку Flakes ==== | ||
При использовании любой команды <code>nix</code> добавьте следующие параметры командной строки: | |||
<syntaxhighlight lang="shell"> | <syntaxhighlight lang="shell"> | ||
--experimental-features 'nix-command flakes' | --experimental-features 'nix-command flakes' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
< | <span id="Enable_flakes_permanently_in_NixOS"></span> | ||
==== | ====Включить flakes на постоянной основе в NixOS==== | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 60: | Line 39: | ||
<span id="Other_Distros,_with_Home-Manager"></span> | <span id="Other_Distros,_with_Home-Manager"></span> | ||
===== | ===== В других Дистрибутивах, с Home-Manager ===== | ||
Добавьте следующее в свою конфигурацию Home-Manager: | Добавьте следующее в свою конфигурацию Home-Manager: | ||
Line 75: | Line 54: | ||
</div> | </div> | ||
Добавьте следующее в <code>~/.config/nix/nix.conf</code> или <code>/etc/nix/nix.conf</code>: | |||
<syntaxHighlight lang=text> | <syntaxHighlight lang=text> | ||
Line 83: | Line 60: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
< | <span id="Basic_Usage_of_Flake"></span> | ||
=== | === Основное Использование Flake === | ||
Прежде чем выполнять какие-либо команды nix на этом этапе, обратите внимание на два предупреждения ниже: одно для шифрования, другое для git. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 114: | Line 88: | ||
</div> | </div> | ||
< | <span id="Generate_flake.nix_file"></span> | ||
==== | ====Создание файла flake.nix==== | ||
Чтобы начать базовое использование Flakes, выполните команду flake в каталоге проекта: | |||
<syntaxHighlight lang=text> | <syntaxHighlight lang=text> | ||
Line 138: | Line 109: | ||
</div> | </div> | ||
* <code>description</code> это строка описывающая flake. | |||
* <code>description</code> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 154: | Line 123: | ||
</div> | </div> | ||
< | <span id="Input_schema"></span> | ||
=== | === Входная схема === | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 218: | Line 186: | ||
</div> | </div> | ||
В которой: | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 529: | Line 495: | ||
</div> | </div> | ||
Допустим, в вашем проекте есть файл <code>shell.nix</code>, который выглядит следующим образом: | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
Line 644: | Line 608: | ||
</div> | </div> | ||
< | <span id="Importing_packages_from_multiple_nixpkgs_branches"></span> | ||
== | == Импорт пакетов из нескольких веток nixpkgs == | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> |