Nix (package manager)/zh: Difference between revisions

Weijia (talk | contribs)
Created page with "由 Nix 构建的软件包会被放置在只读的 ''Nix store'' 中,通常位于 <code>/nix/store</code>。每个软件包都会被赋予一个唯一的地址,该地址由加密哈希值、软件包名称和版本组成,例如 <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>。这些前缀对构建过程中的所有输入进行哈希,包括源文件、完整的依赖树、编译器参数等。这使得 Nix 能够同时安装同一软件包的..."
Ardenet (talk | contribs)
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 33: Line 33:
由 Nix 构建的软件包会被放置在只读的 ''Nix store'' 中,通常位于 <code>/nix/store</code>。每个软件包都会被赋予一个唯一的地址,该地址由加密哈希值、软件包名称和版本组成,例如 <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>。这些前缀对构建过程中的所有输入进行哈希,包括源文件、完整的依赖树、编译器参数等。这使得 Nix 能够同时安装同一软件包的不同版本,甚至是同一版本的不同构建(例如使用不同编译器构建的变体)。在添加、移除或更新软件包时,存储中的内容不会被删除;相反,''profiles'' 中指向这些软件包的符号链接会被添加、移除或更改。
由 Nix 构建的软件包会被放置在只读的 ''Nix store'' 中,通常位于 <code>/nix/store</code>。每个软件包都会被赋予一个唯一的地址,该地址由加密哈希值、软件包名称和版本组成,例如 <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>。这些前缀对构建过程中的所有输入进行哈希,包括源文件、完整的依赖树、编译器参数等。这使得 Nix 能够同时安装同一软件包的不同版本,甚至是同一版本的不同构建(例如使用不同编译器构建的变体)。在添加、移除或更新软件包时,存储中的内容不会被删除;相反,''profiles'' 中指向这些软件包的符号链接会被添加、移除或更改。


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Cleaning_the_Nix_store"></span>
==== Cleaning the Nix store ====
==== 清理 Nix store ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
有关清理 Nix store 的信息,请参阅 {{NixOS Manual|name=NixOS 手册:章节 - 清理 Nix 存储|anchor=#sec-nix-gc}}
For information relating to cleaning the Nix store, refer to {{NixOS Manual|name=NixOS Manual: Chapter - Cleaning the Nix Store|anchor=#sec-nix-gc}}.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Nix_store_corruption"></span>
==== Nix store corruption ====
==== Nix store 损坏 ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
有关修复 Nix store 损坏的信息,请参阅 {{NixOS Manual|name=NixOS 手册:章节 - Nix store 损坏|anchor=#sec-nix-store-corruption}}
For information relating to fixing a corrupted Nix store, refer to {{NixOS Manual|name=NixOS Manual: Chapter - Nix Store Corruption|anchor=#sec-nix-store-corruption}}.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Valid_Nix_store_names"></span>
==== Valid Nix store names ====
==== 有效的 Nix store 名称 ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{main|Valid Nix store path names}}
{{main|Valid Nix store path names}}
</div>


=== Profiles ===
=== Profiles ===
Line 64: Line 55:
=== 沙盒 ===
=== 沙盒 ===


启用沙盒构建,Nix 为每个构建过程设置一个隔离环境。这样可以去除构建环境中额外的隐藏依赖,以提高可复现性。这包括在构建过程中禁止访问 <code>fetch*</code> 函数之外的网络,以及禁止访问 Nix store 之外的文件。根据操作系统的不同,对其他资源的访问也会被阻止(例如在 Linux 上进程间通信被隔离);详细信息请参阅 Nix 手册中的 [https://nixos.org/nix/manual/#sec-conf-file nix.conf 章节]
启用沙盒构建,Nix 为每个构建过程设置一个隔离环境。这用于移除构建环境中的的其它隐藏依赖,以提高构建结果的可复现性。这包括在构建过程中<code>fetch*</code> 函数之外的网络访问,以及Nix Store 之外的文件访问的不可行。根据操作系统的不同,对其他资源的访问也会被阻止(例如在 Linux 上进程间通信也是被隔离)。


沙盒在 Linux 上預設是開啟的,在 macOS 上則否。
沙盒在 Linux 上預設是開啟的,在 macOS 上則否。
Line 84: Line 75:
早期的尝试可以在 [https://riir-nix.github.io/ riir-nix] 找到。
早期的尝试可以在 [https://riir-nix.github.io/ riir-nix] 找到。


<div lang="en" dir="ltr" class="mw-content-ltr">
== 备注 ==
==Notes==
<references />
<references />
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Pedias]]
[[Category:Pedias]]
[[Category:Nix]]
[[Category:Nix]]
[[Category:Incomplete]]
[[Category:Incomplete]]
[[Category:Software]]
[[Category:Software]]
</div>