Flakes/ru: Difference between revisions
Created page with "Nix flakes обеспечивают единую структуру для Nix-проектов, фиксируют версии зависимостей в лок-файле и делают более удобным написание воспроизводимых Nix-выражений." |
Created page with "=== Входная схема ===" |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
Nix flakes обеспечивают единую структуру для Nix-проектов, фиксируют версии зависимостей в лок-файле и делают более удобным написание воспроизводимых Nix-выражений. | Nix flakes обеспечивают единую структуру для Nix-проектов, фиксируют версии зависимостей в лок-файле и делают более удобным написание воспроизводимых Nix-выражений. | ||
* [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 55: | 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 76: | 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 128: | 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 144: | 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 208: | Line 186: | ||
</div> | </div> | ||
В которой: | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 632: | 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"> |