当前最性感的发行版是否是 NixOS

59 天前
 Rorysky

有时候搜索问题会检索到 nix 的社区,印象很活跃

有了解下,nixos 似乎承诺了更多的自由度 和 构建能力

5066 次点击
所在节点    Linux
33 条回复
ryan4yin
58 天前
@xxb #13 你可以把 NixOS 的配置理解为一个巨大的 json ,比如

{host-a: config-a, host-b: config-b}

部署的时候 NixOS 默认根据 hostname 从这个 json 中查找对应的配置,所以不同机器之间不同的内容,加在自己对应的 config 里就行了。

每个 config 也可以看成一个 json ,只是 nix 语言提供了一些便利的功能使我们能在各机器的 config 里复用一些配置。

python/java/c 等许多语言都能通过类似 `import xxx` `#include xxx` `use xxx` 等指令导入其他的代码文件或依赖库,
nix 的配置复用也是使用的同样的设计,不同的 host 能通过导入不同的 nix 配置文件,以及自定义某些参数,获得不同的功能。
大概这样,想了解更细节的建议自己去学一学。
zuiwu
58 天前
请问 nix 是可以通过配置列表的形式管理系统么。
比如我在 a 电脑有 1 ,2 ,3 ,4 个软件,每个软件有不同的配置。
能否通过 nix 的配置列表将 1 ,2 ,3 ,4 软件同步到 b 电脑,同时保留 1 ,2 ,3 ,4 软件的配置和 a 电脑相同。
ityspace
58 天前
可以
james122333
58 天前
@ryan4yin

这是很不同的 配置与语言在现在流行的体系是很不同的 配置只是个资料供程序取用而已 当你使用过多层这样的程序 配置的一个小细节会坑你程序的运作限制也会坑你 并且你难以对其除错 通常你也必需花很多时间找原因 与程序语言这种本身也可以写配置的是很不同的 外部设置的资料并不在抽象化的一环 程序肯定是抽象化但你只是个使用者不会了解这么多 更别说某些语言模糊了程序与资料的界线如 lisp 以及很多现代的动态语言 更适合干这种事(包含 shell 在内) 造 nix 轮子我不知道意义在哪 因为其貌似统整了所有配置?
moonjourney
58 天前
@secondwtq 桌面包是有点 hack ,即使这样 nixpkgs 的包数量也已经超越所有发行版了。
而且随着 flatpak 流行,fedora 不可变发行版推广,需要额外 hack 的包只会越来越少。
james122333
58 天前
@ryan4yin

纯为配置而生的 dsl 不如一些已存在的 dsl 写 java 的就知道了 maven 不坑你吗 spring 设置不坑你吗 springboot 假程序配置不坑你吗
secondwtq
58 天前
@moonjourney 我不是说个别包里的个别 hack ,而是 nix 的整个 approach 像个 hack
ecloud
58 天前
奇技淫巧,只能自己玩自己,随便装个商业软件就抓瞎。就算不是商业软件,一些特殊领域的软件也装不上,比如生物,光学,EDA 什么的
snylonue
58 天前
倒是很期待 nix 什么时候支持 windows

(最近好像已经有一些进展了)
SaltyKitkat
57 天前
NixOS 已经用了挺长时间了,总体而言上手之后还是挺香的。只要是用的人稍微多一点的东西,一定会有一个现成的模块可以方便进行各种配置。进可无状态,退可 fhs 、nix-ld ;整个系统配置好了之后非常方便、顺手,配合各种工具,几乎不会遇到什么奇怪的问题。
配置开发环境也方便,而且不用担心开发环境的东西漏到外面影响日常使用和其他项目的开发环境。
哦对,顺带一提,nixpkgs 前一阵子还有空投来着( x
缺点就是官方文档一坨,而且短期内貌似没有变好的倾向,导致新人很难上手;基本就是开局一个 configuration.nix ,升级全靠抄。最近貌似有人写过一系列东西,大家都说写的很不错而且初学者友好,但我暂时还没看过
Greendays
56 天前
刚在虚拟机上安装了试一下,结果装完了一直看不到桌面环境。。。
sunzhenyucn
55 天前
虽然 Nix 的理念是好的,但是还是脱离了主流发行版的固定模式了,表面看起来的优雅带来的是无尽的兼容性的痛苦,Nix 的想法太超前了,以至于发展这么长时间也没有大面积的流行起来,受众面积还是太小了,适合实验和学习,真正投入生产还是需要观望
EyebrowsWhite
54 天前
Google 的 Project IDX 使用了 nix ,https://idx.dev/blog/article/nix-on-idx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1033236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX