刚刚知道了有个发行版:NixOS, 这里有人用吗?

桌面的话就 Nix => Home-manager => NixOS。

服务器或者虚拟机就直接用 NixOS。

「每次启动都相当于新系统」,用了 impermanence 之类的吧,类似 windows 上的还原精灵。

「存储越用越大」,这叫我怎么说,如果你不断加各种 GUI,当然会用很多磁盘,用 CLI 会少很多,不改不会增加。NixOS 还需要一些磁盘保留前几次用过的文件,好让系统复原。

neovim 之类的就尽量用 nix 安装二进制文件,其它无所谓。

一般,home-manager 是桌面的核心,服务器是 NixOS。

home-manager 写的差不多了可以去其它 Linux 分支转转,好用的话就用下去,省得玩 NixOS。

桌面的 NixOS 算是锦上添花,写完了可以找点二手板子玩 NixOS 服务器。

这东西你写多少是多少,没时间玩也没什么,随便一扔就完了。喜欢用命令就用 Nix,不喜欢 NixOS 单用 home-manager 也没事。

1 个赞

我觉得你跟我对「成熟包管理器」这个词的理解有些不同,如果你写过 python,那 python 从 pip conda pipenv poetry 一路搞到现在新出的 pdm,你真觉得它们有哪个能算得上成熟算得上好用?如果成熟了那新包管理器怎么层出不穷呢?

同理,我们看看 vim 社区的 pathogen vundle vim-plug dein 到现在最流行的 lazyvim,一直有新包管理器取代老的,这你也觉得是成熟吗?

我理解的「成熟包管理器」是 rust 的 cargo, go 的 gomod 这种社区统一、官方支持的包管理器,尤其是 cargo 做得体验也非常好,那 Nix 就没啥可插足的。

所以为什么会有人想用 Nix 做 vim/emacs/lisp/r/haskell 的包管理呢? 我的理解是,因为这些社区没有统一的方案,已有的这些包管理器都不具有绝对优势,而 Nix 相比这些社区中已经存在的包管理器,有它自己吸引人的地方。

1 个赞

以下回复无关 nixos 和 nix 包管理器。crates.io 上包不能重名这事儿其实也受人诟病,没有东西是完美的。

1 个赞

是的,任何东西都有缺点,但目前来说 cargo 在 rust 社区具有绝对优势,没有第三方包管理器的生存空间。

1 个赞

我就反过来讲讲什么样的情况不需要用 nix 吧:

  • 全局只需要装一个版本的编译器,一般是最新 release
  • 最新 release 不会有 breaking change,如果有则在 beta 版本就让社区里重要的库处理好了,常用的包都能用安装的版本运行
  • 安装的包不会互相冲突/包管理器以项目为单位做了隔离。

主要是三,scala, go, python, java, clojure, rust, nodejs 等等都能做到,实在不行还有 docker。

看我顺藤摸瓜把你抓嘿!

我自己从2012年开始是ubuntu重度用户,一直不折腾那种。 但是今年换nixos了。 换了以后感觉,其实挺好的,不折腾。 就是有时候要打包就会比较麻烦,但是因为telegram群活跃度极高可以问,而且我自我克制比较强不做超过自己能力的事儿。所以就是说,我的需求其实是完全满足的。以后再也不用折腾各种版本的包的兼容问题以及对环境的洁癖问题了。

1 个赞

nixos出了问题更折腾, 因为他对用户的要求很高

1 个赞

我还没有遇到nixos出问题折腾,我都是自己给自己提问题折腾。举个例子,我做的这个benchmark用flake防止污染我本地的环境。 折腾么?当然折腾,但是很明显在nixos的能力范围之内,在Ubuntu下面我不会去折腾这个事儿的。因为ubuntu没这个能力。

有人用,我就在用。 Nix 致力于统一解决长久以来存在的软件分发的问题。 NixOS 基于 Nix, 需要懂 Nix 语言才能配置好系统。

我的理解,更具体一点来说: NixOS 是在自己想要解决某个,其它发行版已解决,但 NixOS 未解决的问题的时候,相对比较折腾,会不可避免地要熟悉 NixOS 的打包方式。

但是对于 “出了问题” 这种情况,我还没遇到过不能复现 “出问题之前” 的系统状态的情况。我现在都是一个 Git 仓库保存所有 NixOS 配置,试验完新配置后提交代码,即使由于升级了内核或系统库导致系统挂了,也可以重启选之前 N 次配置启动, revert 配置。

确实,我过去在 NixOS 中把自己用的 Xorg 环境换成了 Wayland 环境。

像这种第一次尝试可能失败,中途放弃还可能需要很多未知的清理流程,尝试完不满意还会换回去的大的系统变更。

用别的系统是折腾不了一点儿。

2 个赞

git当然好, nix就是硬链接嘛, 我想知道的是 nix 有 archlinux 的包丰富吗?

我一直坚持用 archlinux, 但是半年前, archlinux因为N卡把内核 panic 了, 还是很烦人多的。

Reddit 上的讨论是 nixpkgs 官方集成包的数量已经超过 aur 了

除此之外,在 NixOS 里,编译安装是一等公民,通过 nix 代码全自动完成,如果某个 package 的编译与缓存的二进制分发将会完全等效(输入的 sha256 相同),则该 package 会自动切换到从缓存下载。

理论上你能获取源代码的任何 Linux 软件,都可以像 emacs 里的 use-package 一像集成到 NixOS 的配置代码里。

预编译的软件也有 autoPatchelfHook 经常可以补丁完直接用。

如果不考虑 git revert 的能力, 日常跟着大家的配置用稳定不? 现在年纪大了, 喜欢看书写代码, 不喜欢折腾系统了。

1 个赞

仓库上 Nixpkgs 和 AUR 感觉半斤八两。只要不是很偏都可以覆盖的到。

我多年的配置都是用 Dropbox / Syncthing 同步过来的,随着对 nix 的熟悉,往回看以前遇到的都不是问题。

理论上讲,这个系统只有稳定地正常和稳定地失败两种状态。

专业的介绍可以看看这篇博主的系列:

我目前是只用 home-manager 在共享的机器上管理自己的家目录,有以下几个好处:

  • 与机器上的其他用户隔离,完全自己安装软件,并且很好的管理
  • 很方便地在不同机器之间复制环境,我们在出差的每个城市几乎都有一个小主机,可以随时同步配置
  • 在 Ubuntu 这类系统上可以通过 nix 安装到最新的软件
  • 在 Archlinux 这类系统上可以通过 nix 安装到过去的软件

我是2018年,我本站发的第一帖,听了的大佬的推荐切换到 manjaro 的,用的很满意。

之前从 fedora core 用了好多年 2018 切换的 manjaro. 以前 fedora 每半年一年就要升级一次,是我换 archlinux 的理由。

虽早也听说了 NixOS, 但是心态老了,厌烦折腾,只想写代码看代码。

或许,下次某时听到大佬也切换到了NixOS,我再跟一次。

1 个赞