Nix 入门指南

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

本文介绍了Nix世界的工具和使用方法,包括Nix Package Manager、NixOS、Home Manager和Flakes。新旧两种使用方式分别使用Flakes和CLI命令、经典的Nix命令。文章提供了进一步阅读的链接。

🎯

关键要点

  • Nix Package Manager 是核心工具,支持声明式和可重现的包管理。

  • NixOS 是完全基于 Nix 包管理器的 Linux 发行版,建议先使用 Nix 包管理器再切换到 NixOS。

  • Home Manager 管理用户包、点文件、环境变量和 shell 配置,支持跨不同机器的可移植用户环境。

  • Flakes 提供 Nix 项目的标准化结构,提高可重现性和组合性,尽管仍处于实验阶段,但已被广泛采用。

  • 使用 Nix 有两种方式:旧的经典方式和新的 Flakes 方式。

  • 新方式使用 flake.nix 和 flake.lock 文件,命令以 'nix' 开头,旨在提高可重现性和组合性。

  • 旧方式使用 nix-channel、nix-env、nix-shell 和 nix-build,依赖于通道进行包管理,结构不够标准化。

  • 新方式是 Nix 的演变,解决了经典方式的一些局限性,并借鉴了其他现代包管理器的理念。

  • 在 macOS 上使用 home-manager 管理用户特定的包和配置,项目使用 flake.nix 文件定义开发环境和依赖。

  • 可以通过搜索 nixos.org 查找包,并在 home.nix 文件中添加,运行 home-manager switch 应用更改。

  • 要安装特定版本的包,可以在 nixhub.io 搜索并在 home.nix 文件中指向所需版本。

  • 提供了进一步阅读的链接,包括 Flakes 介绍和 Nix 包管理器的官方指南。

延伸问答

Nix Package Manager 的主要功能是什么?

Nix Package Manager 是一个核心工具,支持声明式和可重现的包管理。

NixOS 和 Nix Package Manager 有什么关系?

NixOS 是完全基于 Nix Package Manager 的 Linux 发行版,建议先使用 Nix Package Manager 再切换到 NixOS。

Flakes 在 Nix 中的作用是什么?

Flakes 提供了 Nix 项目的标准化结构,提高可重现性和组合性,尽管仍处于实验阶段,但已被广泛采用。

如何在 macOS 上使用 Home Manager?

在 macOS 上,可以使用 Home Manager 管理用户特定的包和配置,项目使用 flake.nix 文件定义开发环境和依赖。

Nix 的新旧使用方式有什么区别?

旧方式依赖于通道进行包管理,使用命令如 nix-channel 和 nix-env,而新方式使用 flake.nix 和 flake.lock 文件,命令以 'nix' 开头,旨在提高可重现性和组合性。

如何安装特定版本的包?

可以在 nixhub.io 搜索特定版本的包,并在 home.nix 文件中指向所需版本。

🏷️

标签

➡️

继续阅读