尽管Nix/OS的维基和手册提供了大量优秀的信息,我仍然无法获得架构概述。抱歉问题的数量和幼稚,您可以自由地回答其中的一部分:
1. 什么构成了一个Nix软件包?
根据手册的阅读,Nix软件包包括:
i. 获取构建所需的源码和依赖项的Nix表达式。
ii. 一个构建器脚本。
iii. 在all-packages.nix
中列出。
源代码、二进制文件以及生成的导出文件都被放置在nix/store
中,并且通道通过使用共享二进制缓存自动更新它们,有效地使它们保持最新状态。
a. 这是正确而完整的吗?
b. .nix表达式存储在哪里?
c. 如果它们具有相同的体系结构,我是否可以在不同机器的nix/store
之间简单复制软件包文件夹?
2. 什么构成了一个Nix环境?
a. 环境在哪里以及如何定义?
b. 用户配置文件怎么办?
c. nix-shell
命令是如何工作的?它是否与nix-env
命令相关?
3. NixOS的configuration.nix
和Nix环境之间的关系是什么?
从手册和维基中我得知,NixOS是一个Nix软件包,并且Nix基于configuration.nix
创建一个基本系统环境。
a. 这是否属实,如果是的话nixos-rebuild
和nixos-install
除此之外还有什么作用?
b. 是否可能反向操作,即从环境中生成简洁的软件包或配置文件?
c. 我可以使用NixOS做哪些事情而无法使用Nix?
4. 在使用Nix创建便携和可复制环境与同事分享时,有哪些最佳实践?
a. 共享桌面、服务器和开发环境的各种方法是什么?
b. 这些方法的适用场景是什么?
c. 相对于可移植性和可访问性,它们的优缺点是什么?
5. 开放性加分问题:关于Nix / OS体系结构还有什么需要注意的?