有时候搜索问题会检索到 nix 的社区,印象很活跃
有了解下,nixos 似乎承诺了更多的自由度 和 构建能力
1
huangmingyou 238 天前
看用来做什么用,自己使用随便用,做服务器还是要看厂商或者社区支持力度。
|
2
bearice 238 天前 3
我现在的公司就是从开发到 CI 到生产一水儿 nixos
我家用的笔记本服务器软路由也都是 nixos 大部分时间都挺好用,但是少部分时候也挺折磨,比如处理一些旧的依赖或者二进制分发的软件 |
4
libook 238 天前
看到自由度和构建能力我想到的是 Gentoo……
|
5
Donaldo 238 天前
请问这个发行版的特点是什么?一直用 Arch ,没机会体验这个。
|
6
Merrkry 238 天前 3
|
7
whenov 238 天前
声明式的管理起来很方便,回滚也容易,但感觉 NixOS 抽象程度太高了不太敢用,怕出问题不好解决
|
9
ztmzzz 238 天前 via iPhone
nixpkg 的更新速度不算快,unstable 是真的不稳定,打包的自己也不测测。用了几个月,jetbrain 系列的构建出错遇到 2 次了。开发中不是大部分人用的软件基本上靠自己打包。
|
11
ryan4yin 238 天前 5
我个人 Homelab 与桌面电脑目前是 All in NixOS ,macOS 也都 All in nix-darwin ,门槛比较高,但入门后体验绝佳。感兴趣的话可以看看我的配置仓库:
https://github.com/ryan4yin/nix-config |
12
Vy68n0dq58N7crH6 238 天前
@ryan4yin #11 都是看你博客安利的哈哈,二花
|
13
xxb 238 天前
有个问题没搞懂
如果有多台机,根据 hostName 加载不同的配置,并且使用 Git 管理配置文件。 那么多台机的整套文件就一模一样,而 hostName 是配置文件里设置的,那么如何个性化每台机器的 hostName ? |
14
james122333 238 天前 via Android 1
个人不觉得是 以配置生成配置是一个很糟糕的行为
还保留 systemd |
15
james122333 238 天前 via Android
糟糕的点在于很可能会有配置的配置的配置...无止尽下去
|
16
ck65 238 天前
nix 镜像是真的小,甚至 linux 根目录下的一堆文件夹都消除了,很美
|
17
secondwtq 237 天前 2
不同 distro 方向不同不能比较
比如对我更有吸引力的可能是 CachyOS 和 Clear Linux 这种 Nix 的问题我觉得是 UNIX 生态下很多程序是依赖于这套文件系统的,强行变成另一种模式让人觉得这玩意是一个巨大的 hack ,反而不 cool 了,所以我试了两天就不再用了。 |
18
ltkun 237 天前 via Android
服务器用 Debian+pve
桌面用 Arch 和 Debian 虽然很喜欢追求新事物但是这个 nix 感觉有点超前或者说和传统 Linux 完全不是一个东西 |
19
ryan4yin 237 天前
@james122333 #14 不敢苟同,抽象与模块化是计算机进步的阶梯,最古老的计算机是打孔纸带,再进化到把程序本身当成数据存储在计算机里面,再从机器代码进化到 C 语言,又进一步出现带 GC 的编程语言。
本质上说,计算机领域前进的每一步都是在「以配置生成配置」,如果认为这很糟糕的话,那就否定了所有现代编程语言 以及 GCC LLVM 等为现代编程语言服务的工具。 人能掌控的复杂度是有限的,你不愿意把事情交给机器干的话,那你就得自己干所有的事,结果就是你能处理的事情规模上限就固定死了。 |
21
ryan4yin 237 天前 1
@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 配置文件,以及自定义某些参数,获得不同的功能。 大概这样,想了解更细节的建议自己去学一学。 |
22
zuiwu 237 天前
请问 nix 是可以通过配置列表的形式管理系统么。
比如我在 a 电脑有 1 ,2 ,3 ,4 个软件,每个软件有不同的配置。 能否通过 nix 的配置列表将 1 ,2 ,3 ,4 软件同步到 b 电脑,同时保留 1 ,2 ,3 ,4 软件的配置和 a 电脑相同。 |
23
ityspace 237 天前 via Android
可以
|
24
james122333 237 天前 via Android
@ryan4yin
这是很不同的 配置与语言在现在流行的体系是很不同的 配置只是个资料供程序取用而已 当你使用过多层这样的程序 配置的一个小细节会坑你程序的运作限制也会坑你 并且你难以对其除错 通常你也必需花很多时间找原因 与程序语言这种本身也可以写配置的是很不同的 外部设置的资料并不在抽象化的一环 程序肯定是抽象化但你只是个使用者不会了解这么多 更别说某些语言模糊了程序与资料的界线如 lisp 以及很多现代的动态语言 更适合干这种事(包含 shell 在内) 造 nix 轮子我不知道意义在哪 因为其貌似统整了所有配置? |
25
moonjourney 237 天前
@secondwtq 桌面包是有点 hack ,即使这样 nixpkgs 的包数量也已经超越所有发行版了。
而且随着 flatpak 流行,fedora 不可变发行版推广,需要额外 hack 的包只会越来越少。 |
26
james122333 237 天前 via Android
|
27
secondwtq 237 天前
@moonjourney 我不是说个别包里的个别 hack ,而是 nix 的整个 approach 像个 hack
|
28
ecloud 237 天前
奇技淫巧,只能自己玩自己,随便装个商业软件就抓瞎。就算不是商业软件,一些特殊领域的软件也装不上,比如生物,光学,EDA 什么的
|
29
snylonue 237 天前
倒是很期待 nix 什么时候支持 windows
(最近好像已经有一些进展了) |
30
SaltyKitkat 236 天前
NixOS 已经用了挺长时间了,总体而言上手之后还是挺香的。只要是用的人稍微多一点的东西,一定会有一个现成的模块可以方便进行各种配置。进可无状态,退可 fhs 、nix-ld ;整个系统配置好了之后非常方便、顺手,配合各种工具,几乎不会遇到什么奇怪的问题。
配置开发环境也方便,而且不用担心开发环境的东西漏到外面影响日常使用和其他项目的开发环境。 哦对,顺带一提,nixpkgs 前一阵子还有空投来着( x 缺点就是官方文档一坨,而且短期内貌似没有变好的倾向,导致新人很难上手;基本就是开局一个 configuration.nix ,升级全靠抄。最近貌似有人写过一系列东西,大家都说写的很不错而且初学者友好,但我暂时还没看过 |
31
Greendays 235 天前
刚在虚拟机上安装了试一下,结果装完了一直看不到桌面环境。。。
|
32
sunzhenyucn 234 天前
虽然 Nix 的理念是好的,但是还是脱离了主流发行版的固定模式了,表面看起来的优雅带来的是无尽的兼容性的痛苦,Nix 的想法太超前了,以至于发展这么长时间也没有大面积的流行起来,受众面积还是太小了,适合实验和学习,真正投入生产还是需要观望
|
33
EyebrowsWhite 233 天前 1
Google 的 Project IDX 使用了 nix ,https://idx.dev/blog/article/nix-on-idx
|