Nix (package manager)/zh-hans: Difference between revisions
Loxodoromy (talk | contribs) Created page with "为了搭建一致的用户或系统环境,Nix将Nix存储的条目符号链接到''配置文件''。这是Nix允许回滚功能的前端:由于存储不可变,先前版本的配置文件被保留,恢复到更早的状态只需要改变符号链接到先前的配置文件。更精确地说,Nix将二进制文件符号链接到Nix存储中表示用户环境的条目。这些用户环境随之被符号链接到<code>/nix/var/nix/profiles</code>里被标记的配..." |
Loxodoromy (talk | contribs) Created page with "==== 有效的Nix存储名称 ====" |
||
(7 intermediate revisions by the same user not shown) | |||
Line 52: | Line 52: | ||
=== 配置文件(Profiles) === | === 配置文件(Profiles) === | ||
为了搭建一致的用户或系统环境,Nix将Nix存储的条目符号链接到''配置文件'' | 为了搭建一致的用户或系统环境,Nix将Nix存储的条目符号链接到''配置文件''。这是Nix允许回滚功能的前端:由于存储不可变,先前版本的配置文件被保留,恢复到更早的状态只需要改变符号链接到先前的配置文件。更精确地说,Nix将二进制文件符号链接到Nix存储中表示用户环境的条目。然后这些用户环境被符号链接到<code>/nix/var/nix/profiles</code>里被标记的配置文件,后者又被符号链接到该用户的<code>~/.nix-profile</code>。 | ||
< | <span id="Sandboxing"></span> | ||
=== | === 沙盒化 === | ||
当启用沙盒构建时,Nix会为每个构建过程设置一个隔离的环境。它用于移除构建环境中额外的隐藏依赖,以提高可复现性。这包括在构建过程中禁止<code>fetch*</code>函数之外对网络的访问,和Nix存储之外对文件的访问。根据操作系统的不同,对其他资源的访问也会被阻止(例如,进程间通信在Linux上被隔离);详细信息见Nix手册里的[https://nixos.org/nix/manual/#sec-conf-file nix.conf部分] | |||
沙盒化在Linux上默认启用,在macOS上默认禁用。 | |||
Nixpkgs的拉取请求(pull requests)中,要求在沙盒化启用条件下测试构建(见拉取请求模板中的<code>Tested using sandboxing</code>),因为在[https://nixos.org/hydra/ 官方Hydra构建]中使用了沙盒化。 | |||
为Nix配置沙盒化,在<code>/etc/nix/nix.conf</code>里设置<code>sandbox = true</code>。为NixOS配置沙盒化,在<code>configuration.nix</code>里设置<code>nix.useSandbox = true;</code>。从NixOS 17.09开始,<code>nix.useSandbox</code>选项默认为<code>true</code> | |||
</ | |||
< | <span id="Alternative_Interpreters"></span> | ||
=== | === 可选的解释器 === | ||
一项用Rust从零开始重新实现Nix的工作正在进行。 | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 83: | Line 73: | ||
</div> | </div> | ||
Nix 2.18有一个名叫Lix的社区领导分支,专注于正确性、易用性和成长性。尽管它也将一些Nix组件移植到Rust,它不是Tvix那样从零开始的重写版本。 | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 91: | Line 79: | ||
</div> | </div> | ||
更早的尝试可在riir-nix找到 | |||
== 备注 == | |||
<references /> | <references /> | ||