Flakes/ru: Difference between revisions

Unabomberlive (talk | contribs)
Created page with "=====Другие Дистрибутивы, без Home-Manager====="
Unabomberlive (talk | contribs)
Created page with "=== Входная схема ==="
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />
<languages />
<div lang="en" dir="ltr" class="mw-content-ltr">
'''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''' is an [https://nixos.org/manual/nix/stable/contributing/experimental-Features.html experimental feature] that was introduced with Nix 2.4 ([https://nixos.org/manual/nix/unstable/release-notes/rl-2.4.html see release notes]).
</div>


<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 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:
Добавьте следующее в свою конфигурацию Home-Manager:
Line 75: Line 54:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Добавьте следующее в <code>~/.config/nix/nix.conf</code> или <code>/etc/nix/nix.conf</code>:
Add the following to <code>~/.config/nix/nix.conf</code> or <code>/etc/nix/nix.conf</code>:
</div>


<syntaxHighlight lang=text>
<syntaxHighlight lang=text>
Line 83: 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 114: Line 88:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Generate_flake.nix_file"></span>
====Generate flake.nix file====
====Создание файла flake.nix====
</div>


<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 138: 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 154: 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 218: 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 529: Line 495:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Допустим, в вашем проекте есть файл <code>shell.nix</code>, который выглядит следующим образом:
Let’s say that your project has a <code>shell.nix</code> file that looks like this:
</div>


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
Line 644: 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">