We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
【科技爱好者周刊】中最近已经有过几份 NixOS 相关的资料,NixOS 是个非常特殊的 Linux 发行版,,它构建在 Nix 包管理器之上,设计哲学也跟传统的 Ubuntu, CentOS, Arch Linux 等发行版大相径庭。
NixOS 相比其他发行版最大的优势,是它的可复现能力(即在多台机器上复现出一致的系统环境的能力)以及声明式配置。
NixOS 很强大,但它的强大也带来了系统复杂度的提升,提高了使用门槛。一方面你在 Linux 发行版上积累很多经验很难在 NixOS 上复用,另一方面 NixOS 又一直因为官方文档与社区文档的散乱陈旧而饱受诟病。这些问题都困扰着许多 NixOS 新手。
再说到 Nix 包管理器的实验特性 Flakes,它借鉴了 npm/cargo 等包管理器的设计思路,使用 flake.nix 记录所有外部依赖项,使用 flake.lock 锁定所有依赖的版本,极大地增强了 Nix 包管理器及 NixOS 的可复现能力跟配置可组合能力。 因为 Flakes 的好处很大,社区非常喜欢它。据官方调查,目前 GitHub 新建的 nix 仓库超过半数都使用了 Flakes,传统的 Nix 配置方式已经不再是主流。
但是另一方面 Flakes 作为一个实验性能力存在不确定性,官方文档为了保持稳定性,几乎未包含任何 Flakes 相关的内容。 这使许多 Nix/NixOS 用户感到相当困惑——他们看到大家都在用 Flakes,也想学习下它,但却发现无处学起,只能到处拼凑零散的资料、翻 Nixpkgs 源码,或者找前辈高人请教。
本书最初源于我入坑 NixOS 时的一份零散学习笔记。
我在今年(2023) 4 月份入坑 NixOS 时就深深地爱上了它的设计哲学,同时在朋友的推荐下我了解到了 Nix 的 Flakes 实验特性。 在对比了 Flakes 与传统的 NixOS 配置方式后,我意识到只有带上了 Flakes 的 NixOS 才符合我对它的期待。 于是我完全忽略掉了传统的 Nix 配置方式,在入门阶段就直接学习使用 Flakes 来配置我的 NixOS 系统。
在学习的过程中,我发现适合新手的 Flakes 文档几乎没有,大量的文档都是传统的 Nix 配置方法,我需要从 NixOS Wiki、Zero to Nix、Nixpkgs Manual、Nixpkgs 源码等各种资料中提取出我需要的信息,同时还要忽略掉所有非 Flakes 的内容。 这个学习过程非常曲折痛苦。为了避免后面再次踩坑,我在学习过程中记录了大量的零散笔记。
在拥有了一定使用经验后,今年 5 月初的时候我将自己的主力 PC 切换到了 NixOS,然后将这份写了大半个月的 NixOS 新手笔记整理润色后发布到了我的博客,并分享到了 NixOS 中文社区。 中文社区的朋友们表示写得很棒,在他们的建议下,我又将这篇文章翻译成了英文并分享到了 Reddit,收到了非常强烈的正反馈。
这份笔记分享出来后好评不断,这让我备感振奋,继续完善它的热情也高涨。 在我的持续更新下这份笔记的内容不断增多,逐渐扩充到了 2 万多字,有读者反馈阅读体验不太好,于是在他的建议下, 我将文章内容迁移到了一个 GitHub 仓库,搭建了一个专门的文档站点,方便大家阅读与贡献。 同时也调整了内容的表述,去掉了一些过于个人化的内容,使其更贴近一本新手指南的风格,而不是一份随性而为的个人笔记。
至此,一本中英双语的开源书籍诞生了,我给它取名叫 <NixOS & Flakes Book>,中文名叫《NixOS 与 Flakes 新手指南》。
这本开源书藉的特点是:
书籍地址如下:
https://github.com/ryan4yin/nixos-and-flakes-book
The text was updated successfully, but these errors were encountered:
No branches or pull requests
先简单介绍下 NixOS 与其实验特性 Flakes
【科技爱好者周刊】中最近已经有过几份 NixOS 相关的资料,NixOS 是个非常特殊的 Linux 发行版,,它构建在 Nix 包管理器之上,设计哲学也跟传统的 Ubuntu, CentOS, Arch Linux 等发行版大相径庭。
NixOS 相比其他发行版最大的优势,是它的可复现能力(即在多台机器上复现出一致的系统环境的能力)以及声明式配置。
NixOS 很强大,但它的强大也带来了系统复杂度的提升,提高了使用门槛。一方面你在 Linux 发行版上积累很多经验很难在 NixOS 上复用,另一方面 NixOS 又一直因为官方文档与社区文档的散乱陈旧而饱受诟病。这些问题都困扰着许多 NixOS 新手。
再说到 Nix 包管理器的实验特性 Flakes,它借鉴了 npm/cargo 等包管理器的设计思路,使用 flake.nix 记录所有外部依赖项,使用 flake.lock 锁定所有依赖的版本,极大地增强了 Nix 包管理器及 NixOS 的可复现能力跟配置可组合能力。
因为 Flakes 的好处很大,社区非常喜欢它。据官方调查,目前 GitHub 新建的 nix 仓库超过半数都使用了 Flakes,传统的 Nix 配置方式已经不再是主流。
但是另一方面 Flakes 作为一个实验性能力存在不确定性,官方文档为了保持稳定性,几乎未包含任何 Flakes 相关的内容。
这使许多 Nix/NixOS 用户感到相当困惑——他们看到大家都在用 Flakes,也想学习下它,但却发现无处学起,只能到处拼凑零散的资料、翻 Nixpkgs 源码,或者找前辈高人请教。
开源书籍《NixOS 与 Flakes 新手指南》
本书最初源于我入坑 NixOS 时的一份零散学习笔记。
我在今年(2023) 4 月份入坑 NixOS 时就深深地爱上了它的设计哲学,同时在朋友的推荐下我了解到了 Nix 的 Flakes 实验特性。
在对比了 Flakes 与传统的 NixOS 配置方式后,我意识到只有带上了 Flakes 的 NixOS 才符合我对它的期待。
于是我完全忽略掉了传统的 Nix 配置方式,在入门阶段就直接学习使用 Flakes 来配置我的 NixOS 系统。
在学习的过程中,我发现适合新手的 Flakes 文档几乎没有,大量的文档都是传统的 Nix 配置方法,我需要从 NixOS Wiki、Zero to Nix、Nixpkgs Manual、Nixpkgs 源码等各种资料中提取出我需要的信息,同时还要忽略掉所有非 Flakes 的内容。
这个学习过程非常曲折痛苦。为了避免后面再次踩坑,我在学习过程中记录了大量的零散笔记。
在拥有了一定使用经验后,今年 5 月初的时候我将自己的主力 PC 切换到了 NixOS,然后将这份写了大半个月的 NixOS 新手笔记整理润色后发布到了我的博客,并分享到了 NixOS 中文社区。
中文社区的朋友们表示写得很棒,在他们的建议下,我又将这篇文章翻译成了英文并分享到了 Reddit,收到了非常强烈的正反馈。
这份笔记分享出来后好评不断,这让我备感振奋,继续完善它的热情也高涨。
在我的持续更新下这份笔记的内容不断增多,逐渐扩充到了 2 万多字,有读者反馈阅读体验不太好,于是在他的建议下,
我将文章内容迁移到了一个 GitHub 仓库,搭建了一个专门的文档站点,方便大家阅读与贡献。
同时也调整了内容的表述,去掉了一些过于个人化的内容,使其更贴近一本新手指南的风格,而不是一份随性而为的个人笔记。
至此,一本中英双语的开源书籍诞生了,我给它取名叫 <NixOS & Flakes Book>,中文名叫《NixOS 与 Flakes 新手指南》。
这本开源书藉的特点是:
书籍地址如下:
https://github.com/ryan4yin/nixos-and-flakes-book
The text was updated successfully, but these errors were encountered: