Flakes/ru: Difference between revisions

Unabomberlive (talk | contribs)
Created page with "====Создание файла flake.nix===="
Tags: Mobile edit Mobile web edit
Unabomberlive (talk | contribs)
Created page with "=== Входная схема ==="
 
(19 intermediate revisions by 2 users not shown)
Line 2: Line 2:
'''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''' это [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 см. Примечания к выпуску]).


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Introduction"></span>
====Introduction====
==== Введение ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Nix flakes обеспечивают единую структуру для Nix-проектов, фиксируют версии зависимостей в лок-файле и делают более удобным написание воспроизводимых Nix-выражений.
Nix flakes enforce a uniform structure for Nix projects, pin versions of their dependencies in a lock file, and make it more convenient to write reproducible Nix expressions.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html#description flake] это файловая структура, корневая директория которой содержит спецификацию Nix в файле <code>flake.nix</code>.
* A [https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html#description flake] refers to a file-system tree whose root directory contains the Nix file specification called <code>flake.nix</code>.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* Содержимое файла <code>flake.nix</code> следует единой схеме наименования для объявления пакетов и их зависимостей на языке Nix.
* The contents of <code>flake.nix</code> file follow a uniform naming schema for declaring packages and their dependencies in the Nix language.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Флейки вводят [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html#flake-references синтаксис, похожий на URL] для указания удалённых источников.
*  Flakes introduce a [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html#flake-references URL-like syntax] for specifying remote sources.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* Чтобы упростить длинный синтаксис URL с помощью более коротких названий, [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-registry.html флейки используют реестр] символических идентификаторов.
* To simplify the long URL syntax with shorter names, [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-registry.html flakes uses a registry] of symbolic identifiers.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* Флейки также позволяют фиксировать ссылки и версии, которые затем могут быть запрошены и обновлены программно.
* Flakes also allow for locking references and versions that can then be queried and updated programmatically.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
[https://nixos.org/manual/nix/stable/command-ref/new-cli/nix.html Экспериментальный интерфейс командной строки] принимает ссылки на флейки для выражений, которые создают, запускают и развёртывают пакеты.
* An [https://nixos.org/manual/nix/stable/command-ref/new-cli/nix.html experimental command-line interface] accepts flake references for expressions that build, run, and deploy packages.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Enable_flakes_temporarily"></span>
====Enable flakes temporarily====
==== Временно включить поддержку Flakes ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
При использовании любой команды <code>nix</code> добавьте следующие параметры командной строки:
When using any <code>nix</code> command, add the following command-line options:
</div>
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
  --experimental-features 'nix-command flakes'
  --experimental-features 'nix-command flakes'
</syntaxhighlight>
</syntaxhighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Enable_flakes_permanently_in_NixOS"></span>
====Enable flakes permanently in NixOS====
====Включить flakes на постоянной основе в NixOS====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 58: Line 39:


<span id="Other_Distros,_with_Home-Manager"></span>
<span id="Other_Distros,_with_Home-Manager"></span>
===== Другие Дистрибутивы, с Home-Manager =====
===== В других Дистрибутивах, с Home-Manager =====


Добавьте следующее в свою конфигурацию Home-Manager:
Добавьте следующее в свою конфигурацию Home-Manager:
Line 79: Line 60:
</syntaxHighlight>
</syntaxHighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Basic_Usage_of_Flake"></span>
===Basic Usage of Flake===
=== Основное Использование Flake ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Прежде чем выполнять какие-либо команды nix на этом этапе, обратите внимание на два предупреждения ниже: одно для шифрования, другое для git.
Before running any nix commands at this point, please note the two warnings below: one for encryption and the other for git.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 113: Line 91:
====Создание файла flake.nix====
====Создание файла flake.nix====


<div lang="en" dir="ltr" class="mw-content-ltr">
Чтобы начать базовое использование Flakes, выполните команду flake в каталоге проекта:
To start the basic usage of flake, run the flake command in the project directory:
</div>


<syntaxHighlight lang=text>
<syntaxHighlight lang=text>
Line 133: Line 109:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>description</code> это строка описывающая flake.
* <code>description</code> is a string describing the flake.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 149: Line 123:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Input_schema"></span>
=== Input schema ===
=== Входная схема ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 213: Line 186:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
В которой:
Where:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 637: Line 608:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Importing_packages_from_multiple_nixpkgs_branches"></span>
== Importing packages from multiple nixpkgs branches ==
== Импорт пакетов из нескольких веток nixpkgs ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">